Python space 入侵者游戏试图将所有敌人的 x 坐标与墙的 x 坐标进行比较
Python space invaders game trying to compare the x-coordinates of all enemies to wall's
我正在制作一个 space 入侵者克隆,我正在尝试实现敌人的墙壁碰撞,但我似乎无法将所有 x 坐标与墙壁进行比较(我使用乌龟绘制了所有敌人并将他们在列表中)我收到错误(如果 enemies_coordinates[i] > -280:IndexError: 列表索引超出范围)这让我感到困惑,因为我将敌人坐标附加到 enemies_coordinates 列表但它只输出一个。我可能在做一些奇怪的事情,感谢您的帮助。
#FIXME Check the cordainates of all enemies for wall collison
def enemy_coor():
i = 0
for alien in enemies:
global enemies_coordinates
enemies_coordinates = []
enemies_coordinates.append(enemies[i].xcor())
print(enemies_coordinates)
i += 1
#FIXME Wall collioson
def alien_wall_collison():
i = 0
for alien in enemies:
print(i)
if enemies_coordinates[i] > -280:
print("turn Right")
i += 1
您的错误之一是您在 enemy_coor
中的每个循环中都重置了 enemies_coordinates
。我会建议一个没有这个错误的代码,我也使用枚举来获得更好的编程习惯,一般来说我不鼓励你使用全局变量,但我坚持你当前的实现。
enemies_coordinates = []
def enemy_coor():
global enemies_coordinates
for alien in enemies:
enemies_coordinates.append(alien.xcor())
print(enemies_coordinates)
def alien_wall_collison():
for i, alien in enumerate(enemies):
if enemies_coordinates[i] > -280:
print("turn Right")
你将值附加到 enemies_coordinates = [] 但你没有定义敌人或者你可以尝试这个 enemies_coordinates.append(alien[i].xcor()) 而不是在之后这样做定义敌人
并减小 if 条件的值
我正在制作一个 space 入侵者克隆,我正在尝试实现敌人的墙壁碰撞,但我似乎无法将所有 x 坐标与墙壁进行比较(我使用乌龟绘制了所有敌人并将他们在列表中)我收到错误(如果 enemies_coordinates[i] > -280:IndexError: 列表索引超出范围)这让我感到困惑,因为我将敌人坐标附加到 enemies_coordinates 列表但它只输出一个。我可能在做一些奇怪的事情,感谢您的帮助。
#FIXME Check the cordainates of all enemies for wall collison
def enemy_coor():
i = 0
for alien in enemies:
global enemies_coordinates
enemies_coordinates = []
enemies_coordinates.append(enemies[i].xcor())
print(enemies_coordinates)
i += 1
#FIXME Wall collioson
def alien_wall_collison():
i = 0
for alien in enemies:
print(i)
if enemies_coordinates[i] > -280:
print("turn Right")
i += 1
您的错误之一是您在 enemy_coor
中的每个循环中都重置了 enemies_coordinates
。我会建议一个没有这个错误的代码,我也使用枚举来获得更好的编程习惯,一般来说我不鼓励你使用全局变量,但我坚持你当前的实现。
enemies_coordinates = []
def enemy_coor():
global enemies_coordinates
for alien in enemies:
enemies_coordinates.append(alien.xcor())
print(enemies_coordinates)
def alien_wall_collison():
for i, alien in enumerate(enemies):
if enemies_coordinates[i] > -280:
print("turn Right")
你将值附加到 enemies_coordinates = [] 但你没有定义敌人或者你可以尝试这个 enemies_coordinates.append(alien[i].xcor()) 而不是在之后这样做定义敌人
并减小 if 条件的值