游戏中的 while 循环问题。
Issue with while loop in game.
我正在制作一个游戏,它显然有不同的方块。但是我在我的主游戏 while 循环中遇到了一个问题。
def play():
player = player1()
while True:
room = ClubWorld.tile_at(player.x, player.y)
print(room.intro_text())
choose_action(room, player)
我的游戏中的 Tile 示例:
class GirlTile(MapTile):
def __init__(self,x,y):
self.meet_girl = Girls()
super().__init__(x, y)
def intro_text(self):
return "Hey whats up, my name is {}".format(self.meet_girl.name)
只要我在游戏板块上,这个循环就会一直持续下去。它会生成您拥有的可用操作,并让其他功能知道您的位置。它还会输出我的问题所在的平铺介绍文本。我希望游戏仅在进入图块时输出介绍文本,一旦发生这种情况,我只希望它显示可用的操作。建议?
你可以保留previous_room
并与room
比较:
def play():
player = player1()
previous_room = None
while True:
room = ClubWorld.tile_at(player.x, player.y)
if room != previous_room:
print(room.intro_text())
previous_room = room
choose_action(room, player)
或者保持玩家之前的位置 previous_x
, previous_y
并与新位置进行比较
def play():
player = player1()
previous_x = None
previous_y = None
while True:
if player.x != previous_x or player.y != previous_y :
room = ClubWorld.tile_at(player.x, player.y)
print(room.intro_text())
previous_x = player.x
previous_y = player.y
choose_action(room, player)
我正在制作一个游戏,它显然有不同的方块。但是我在我的主游戏 while 循环中遇到了一个问题。
def play():
player = player1()
while True:
room = ClubWorld.tile_at(player.x, player.y)
print(room.intro_text())
choose_action(room, player)
我的游戏中的 Tile 示例:
class GirlTile(MapTile):
def __init__(self,x,y):
self.meet_girl = Girls()
super().__init__(x, y)
def intro_text(self):
return "Hey whats up, my name is {}".format(self.meet_girl.name)
只要我在游戏板块上,这个循环就会一直持续下去。它会生成您拥有的可用操作,并让其他功能知道您的位置。它还会输出我的问题所在的平铺介绍文本。我希望游戏仅在进入图块时输出介绍文本,一旦发生这种情况,我只希望它显示可用的操作。建议?
你可以保留previous_room
并与room
比较:
def play():
player = player1()
previous_room = None
while True:
room = ClubWorld.tile_at(player.x, player.y)
if room != previous_room:
print(room.intro_text())
previous_room = room
choose_action(room, player)
或者保持玩家之前的位置 previous_x
, previous_y
并与新位置进行比较
def play():
player = player1()
previous_x = None
previous_y = None
while True:
if player.x != previous_x or player.y != previous_y :
room = ClubWorld.tile_at(player.x, player.y)
print(room.intro_text())
previous_x = player.x
previous_y = player.y
choose_action(room, player)