如何解决玩家在 pygame 中指向鼠标时出现故障
我正在尝试制作一个指向鼠标的精灵,但是当我运行游戏时,玩家疯狂旋转,出现故障,然后出现 pygame.error: Out of memory。为什么会出现错误?我四处搜索,但得到相同的结果。
我的播放器类和事件循环:
class Player(pygame.sprite.Sprite):
def __init__(self,window,x,y,image="player.png",size=(100,100)):
pygame.sprite.Sprite.__init__(self)
self.screen = window
self.x = x
self.y = y
self.pos = (self.x,self.y)
self.image = pygame.image.load(image)
self.image = pygame.transform.scale(self.image,size)
self.rect = self.image.get_rect()
self.rect.center = (self.x,self.y)
def update(self):
self.rect.center = (self.x,self.y)
self.screen.blit(self.image,self.rect)
def point_to_mouse(self):
mouse_x,mouse_y = pygame.mouse.get_pos()
x,y = mouse_x - self.x,mouse_y - self.y
angle = (180 / math.pi) * -math.atan2(y,x)
self.image = pygame.transform.rotate(self.image,int(angle))
self.rect = self.image.get_rect(center=(self.x,self.y))
def movement_checks(self,speed):
key = pygame.key.get_pressed()
if key[K_a]:
self.x -= speed
if key[K_s]:
self.y += speed
if key[K_d]:
self.x += speed
if key[K_w]:
self.y -= speed
player = Player(screen,400,500,size=(400,230))
running = True
clock = pygame.time.Clock()
while running:
for event in pygame.event.get():
if event.type == QUIT:
running = False
screen.fill(THECOLORS["white"])
player.update()
player.movement_checks(11)
player.point_to_mouse()
pygame.display.update()
clock.tick(40)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。