我试图在pygame中制作一个简单的对话系统。我有一个简单的对话类
class Dialog:
def __init__(self, npc, player):
self.player = player
self.npc = npc
self.step = 0
self.text_counter = 0
self.text = ["Hi ",
"Hello",
"are you boss or something!?!",
"What!"]
def update(self, key):
if step and self.player.colliderect(self.npc):# if pressed key and if player hits npc
self.step += 1 # skip to next text
if self.step > len(self.text)-1:
self.step = 0
def draw(self, screen):
draw_text(
screen,
self.text[self.step],
50,
(255, 0, 0),
50,
50
)`
merchant = Dialog(merchant,player)#call dialog class
while True:
merchant.update(space_key)
merchant.draw(screen)
但是它显示了第一个文本,没有在字符上悬停,我知道问题是什么,但我找不到解决方法,我面临这个问题,因为self.step自动为0,你有什么办法解决这个问题吗
可以这样做:
您可以首先将索引设置为
-1
,如果索引位于该位置,则不显示文本,那么当您增加索引时,它将从0
开始,您还需要在离开该框时重置它,以便下次它从开头开始(如果您需要的话)相关问题 更多 >
编程相关推荐