Javascript游戏:如何“暂停”while循环以等待用户输入
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript游戏:如何“暂停”while循环以等待用户输入,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
我正在用javascript编写一个基于文本的游戏,其中一个主要的“功能”是一个接受用户输入的输入框,并通过按钮标记提交输入.在我的主游戏循环中,调用按钮的onclick:
var game_u = new game_util();
function Game_Main(){
while(active){
input = game_u.getText();
//p = new player();
active = false;
}
}
function game_util(){
this.getText = function(){
//The Submit button
confirm_plr.onclick = function(){
//Input value
return player_in.value;
}
}
}
这种方式的问题是,while循环不会“等待”单击提交按钮以获取来自`game_u.getText()的输入;功能并继续循环.
有没有更好的方法让我这样做,这是我在基于文本的游戏中的第一个怪癖?我不想使用提示方法,因为它打破了游戏玩法的沉浸感.
我也来自Java,一种面向对象的编程语言,这就是我使用while循环的原因.
任何帮助表示赞赏.
解决方法:
如果要暂停用户输入,可以使用简单的提示符()框.
试试这个:
var input = prompt("Enter data here", "");
这将等待输入并将其存储到变量输入中.
请参阅JSFiddle.net上的working example.
根据this SO post,AFAIK,同步JS是不可能的:
JavaScript is asynchronous, you cannot “pauses” execution. Moreover, while javascript is running the entire user interface freezes, so the user cannot click the button.
至于你的问题,
If I shouldn’t be using a while loop, what would replace it?
因为JS是事件驱动的,并且每次单击该按钮(并输入输入)时都尝试运行代码,只需使用onclick处理程序.
所以,而不是这个:
while(active) {
input = game_u.getText();
p = new player();
active = false;
}
你可以做:
document.getElementById("button").addEventListener("click", function() {
input = game_u.getText();
p = new player();
active = false;
});
这将在每次单击按钮时运行代码,基本上与您尝试执行的操作相同.
内容总结
以上是互联网集市为您收集整理的Javascript游戏:如何“暂停”while循环以等待用户输入全部内容,希望文章能够帮你解决Javascript游戏:如何“暂停”while循环以等待用户输入所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。