微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

精灵的时间延迟

如何解决精灵的时间延迟

我只学习pygame几周,主要是按照不同的街机风格的游戏教程学习。改用乒乓球比赛,并尝试插入两个延迟,一个延迟是当球击中边界(球拍后面的屏幕边缘),然后是重置和时间延迟,直到球再次从中心移开。这样,玩家可以看到球与屏幕边缘接触的位置,然后将所有精灵重置为原始位置,然后再次移动。

这是当前代码

class Paddle(pygame.sprite.Sprite):
    def reset(self):
        paddleA.rect.x = 20
        paddleA.rect.y = 200
        paddleB.rect.x = 670
        paddleB.rect.y = 200
class Ball(pygame.sprite.Sprite):
    def reset(self):  
        ball.rect.x = 345
        ball.rect.y = 195
        pygame.time.delay(1000)
        self.veLocity = [randint(4,8),randint(-8,8)]
    def hit(self):
        self.veLocity = 0
        pygame.time.delay(500)    
asl = pygame.sprite.Group()
asl.add(paddleA)
asl.add(paddleB)
asl.add(BorderA)        
asl.add(BorderB)
asl.add(ball)

while GameOn:
    
    asl.update()
    if pygame.sprite.collide_mask(ball,BorderA):
        scoreB+=1
        ball.hit()
        paddleA.reset()
        paddleB.reset()
        ball.reset()
    if pygame.sprite.collide_mask(ball,BorderB):
        scoreA+=1
        ball.hit()
        paddleA.reset()
        paddleB.reset()
        ball.reset()

我的猜测是那里需要更新,但是我尝试在几个不同的地方添加asl.update()和pygame.display.flip(),以尝试使其在重置之前重置精灵。到第二次。延迟,但它永远不会起作用,延迟只会持续更长的时间,并且只要球回到中心位置,球仍然会移动。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。