gpt4 book ai didi

python - 我的 pygame Sprite 可以左右移动,但我无法让它停在屏幕末尾

转载 作者:行者123 更新时间:2023-12-01 05:57:12 28 4
gpt4 key购买 nike

主程序:

player = Player("player.png",[10,650])
players = pygame.sprite.Group()
players.add(player)

while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_RIGHT:
player.goright()
if event.key == K_LEFT:
player.goleft()
if event.type == KEYUP:
if event.key == K_RIGHT:
player.cangoright = False
if event.key == K_LEFT:
player.cangoleft = False

players.update()
players.draw(SCREEN)
pygame.display.update()
clock.tick(FPS)

相关 Sprite 的功能:

def update(self):
if self.cangoright:
self.rect.left += self.speed
if self.cangoleft:
self.rect.left -= self.speed

def goright(self):
if self.rect.right <= 1024:
self.cangoright = True
else:
self.cangoright = False

def goleft(self):
if self.rect.left >= 0:
self.cangoleft = True
else:
self.cangoleft = False

问题是“cangoright”和“cangoleft”标志似乎无法正常工作。当 Sprite 超出屏幕边缘(左侧 0,右侧 1024)时,标志应设置为 false,因此更新函数中的 ifs 应返回 false,但这不会发生。

最佳答案

This answer有一些示例 move 方法。也许看看它们是如何写的会有帮助?

Paddle.move()

def move(self, *, up=False, down=False):
if up or (not down and self.keys.up and
self.position.y - self.size.y > 0):
self.position -= Point(0, self.move_by)
if down or (not up and self.keys.down and
self.position.y + self.size.y < self.height):
self.position += Point(0, self.move_by)

Ball.move()

def move(self):
self.position += self.velocity
self.bounce()

关于python - 我的 pygame Sprite 可以左右移动,但我无法让它停在屏幕末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11890731/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com