【问题标题】:Pygame: How to move an image left to right again and againPygame:如何一次又一次地从左到右移动图像
【发布时间】:2021-08-28 05:17:28
【问题描述】:

我正在尝试将 pygame 中的图像从左向右移动,然后再向左移动,等等...基本上,我只是希望它从屏幕的一端移动到另一端,然后返回原来的位置,并一直这样做,直到它被击中。所以我一直在尝试编写代码,但没有任何效果!

它向右移动,然后停止。这是我用来来回移动敌人的代码。我的屏幕尺寸是宽度 = 800,高度 = 600,所以如果我的敌人在 x 轴上介于 0 和 730 之间,我会告诉它向右移动 0.6。但是如果我的敌人在 730 以上的位置,我希望它反转它的速度,因此是 -0.6。如果它小于 0,那么我希望它向右移动。

# move the enemy
if enemy_x >= 0 and enemy_x <= 730:
    enemy_diff = 0.6
    enemy_x = enemy_x + enemy_diff
if enemy_x > 730:
    enemy_x = 730
    enemy_diff = -0.6
    enemy_x = enemy_x + enemy_diff
if enemy_x < 0:
    enemy_x = 0
    enemy_diff = 0.6
    enemy_x = enemy_x + enemy_diff

我在这里做错了什么?

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    您的代码中的问题是enemy_diff = 0.6 在条件if enemy_x &gt;= 0 and enemy_x &lt;= 730: 下。如果图像要向后移动,也满足条件。

    在应用循环之前初始化变量:

    enemy_diff = 0.6
    enemy_x = 0
    

    更改enemy_diff if enemy_x 在应用程序循环中越界:

    while True:
    
        # move the enemy
        enemy_x += enemy_diff
        if enemy_x <= 0:
            enemy_x = 0
            enemy_diff = 0.6
        if enemy_x >= 730:
            enemy_x = 730
            enemy_diff = -0.6
    

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多