在pygame中使用y坐标在屏幕上移动项目符号

hadesa2014

我正在使用名为“ Python崩溃课程”的书来学习python。这本书的一部分是使用Pygame制作游戏的,我是为船用子弹模块的子弹模块编写代码的人。这是我有些困惑的代码。

def __init__(self, ai_game):
    --snip--
    # Create a bullet rect at (0, 0) and then set correct position.
    self.rect = pygame.Rect(0, 0, self.settings.bullet_width,
        self.settings.bullet_height)
    self.rect.midtop = ai_game.ship.rect.midtop
    --snip--
def update(self):
    """Move the bullet up the screen."""
    # Update the decimal position of the bullet.
    self.y -= self.settings.bullet_speed

最后一行“ self.y-= self.settings.bullet_speed”,为什么要减去?子弹的起始位置在底部,并且应该沿y轴上升。我想念什么?

科梅尔·马吉迪

我们习惯于位于网格左下角的坐标系(0,0)中的原点。在Pygame和许多图形框架中,原点位于左上角。因此,在1200x800游戏窗口上,左上角为(0,0),左下角为(0,800)。如果要从屏幕上移,请稳步减小y值。

原点放置在顶部,因为窗口的顶部通常在屏幕上是静态的。人们调整窗口大小时,通常会拖动屏幕底部,并且所有溢出都会在底部发生。

如果您想查看任何游戏对象的实际坐标,可以将一条线插入_update_screen()方法,如下所示:

print(f"Ship coordinates: {ship.rect.x} {ship.rect.y}")

您会在这里找到有趣的历史事实

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章