Python2.7如何在循环中使用多个变量?

时间:2016-10-07 22:36:33

标签: python loops variables pygame

我通过pygame libraby用Python2.7制作自己的游戏。 这是一款1v1格斗游戏,玩家使用相同的键盘。

游戏在每秒重复60次的主循环中工作,每次循环执行时,它会计算很多东西,例如位置,问题是我有2个玩家,所以我必须写两次线

  

此处示例:

     

如果p1direction ==' right'和p1XS< p1Attributes [1]:p1XS + =   p1Attributes [0]

     

     

如果p2direction =='对'和p2XS< p2Attributes [1]:p2XS + =   p2Attributes [0]

参见差异p1和p2,它们分别是属于播放器1和播放器2的变量。

我只想找到一个解决方案,不要每次都为p2写相同的行。我正在考虑for功能,所以我甚至可以轻松添加玩家,但在这种情况下我不知道该怎么做......

有人能帮助我吗? :)请

2 个答案:

答案 0 :(得分:2)

创建一个班级玩家。 然后将每个玩家的属性添加到课程中。 使用播放器1和2实例化您的课程。

class Player():
    direction = "right"
    etc.
    def shoot(self):
        if self.direction == "right"
             shoot_right()

playerOne = Player()
playerTwo = Player()

direction = playerOne.direction

如果您还没有使用过类,我建议不要使用它们。继承可能变得非常讨厌......

希望有所帮助, Narusan

编辑: 如果你还没有在Python中使用过类,我建议先在那里使用,然后继续你的游戏开发。我也在pygame中编写了几个游戏,并且课程非常有用。事实上,如果不使用适当的类(或无限的if-clauses和for循环使得一切都变得非常慢),几乎不可能创建pygame游戏。

祝你好运

答案 1 :(得分:0)

如何将变量(例如p1direction和p2direction)存储在由玩家编号索引的矢量(player_directions)中并使用循环访问它,例如:

number_of_players  = 2
playersXS = function_that_fills_playersXS() # return a vector containing your p1XS and p2XS  variables in a vector

for player_number in xrange(number_of_players):
    if player_directions[player_number]=='right' and playersXS[player_number]< Attributes[player_number][1]:
        playersXS[player_number]+=Attributes[player_number][0]