在画布中,我希望能够使用Enter键来做一件事,然后再次按它来做另一件事。
例如,
如果(enterPressed){
做一件事
}
如果(enterPressed){
做其他事情
}
问题是,当我按Enter键时,它会自动同时自动执行两项操作,而我希望它希望它分别执行每个语句。
为了获得更多的上下文,我想要做的类似于口袋妖怪游戏中的文本样式,在该游戏中,游戏将显示一些文本,然后等待您按下按钮,然后显示下一组文本。
您的问题并非特定于JavaScript或Canvas,而是与一般编程技术有关。您所描述的是程序的不同状态,而不是作为对事件的反应而执行的2个动作。
因此,您的程序包含多个状态:Displayed first text to user -> Displayed second text to user
您将根据用户执行的某些操作(在您按Enter的情况下,在这些状态之间切换)。有很多方法可以保存程序状态,并在这些状态之间切换,但是我可以举一个最简单的例子:将文本保存在数组中,并使用一个索引值保存当前的索引:
var currentIndex = 0;
var texts = ["This is first message", "This is second message"]
if (enterPressed) {
//you need to have boundary checks of course, skipping for simplicity
displayText(texts[currentIndex])
currentIndex++;
}
这是一种保持程序状态并根据用户操作在这些状态之间切换的方法。