如何在JavaScript画布中将相同的键用于不同的事物?

问题描述 投票:0回答:1

在画布中,我希望能够使用Enter键来做一件事,然后再次按它来做另一件事。

例如,

如果(enterPressed){

做一件事

}

如果(enterPressed){

做其他事情

}

问题是,当我按Enter键时,它会自动同时自动执行两项操作,而我希望它希望它分别执行每个语句。

为了获得更多的上下文,我想要做的类似于口袋妖怪游戏中的文本样式,在该游戏中,游戏将显示一些文本,然后等待您按下按钮,然后显示下一组文本。

javascript html5-canvas draw
1个回答
0
投票

您的问题并非特定于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++;
}

这是一种保持程序状态并根据用户操作在这些状态之间切换的方法。

© www.soinside.com 2019 - 2024. All rights reserved.