【问题标题】:How to make this object collide with a bottom of the screen? (Pygame)如何使该对象与屏幕底部发生碰撞? (游戏)
【发布时间】:2017-07-23 15:44:30
【问题描述】:

如何让这个对象与屏幕底部发生碰撞?

def update(self):
    """Atualiza a posição do foguete de acordo com a flag"""
    # Atualiza o valor  centro da espaçonave, e não o retângolo

    if self.moving_right and self.rect.right < self.screen_rect.right:
        self.centerx += self.ai_settings.foguete_speed_factor

    if self.moving_left and self.rect.left > 0:
        self.centerx -= self.ai_settings.foguete_speed_factor

    if self.moving_top and self.rect.top > 0:
        self.centery -= self.ai_settings.foguete_speed_factor

    if self.moving_bottom:
        self.centery += self.ai_settings.foguete_speed_factor

【问题讨论】:

    标签: pygame collision-detection


    【解决方案1】:

    如果您在火箭尚未击中屏幕底部时尝试继续向下移动,那么:

    if self.moving_bottom and self.rect.bottom < self.screen_rect.bottom:
        self.centery += self.ai_settings.foguete_speed_factor
    

    【讨论】:

    • 它看起来应该是self.rect.centery 而不是self.centery,但除非我们看到一个完整的例子@MikaelAndrade,否则我们不能肯定地说这个。并将火箭底部精确设置到屏幕底部添加:self.rect.bottom = self.screen_rect.bottom
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多