我正在开发一个控制台游戏,我不喜欢console.logs的速度以及提示之间的时间等等。是否有javascript / jquery方法来减慢游戏速度?为此,我可以简单地delay()
每一行(这听起来很乏味),或者如果我使用setTimeout()
,理论上我是否必须将我的游戏分成许多不同的功能并设置超时或间隔?你有什么建议吗?
代码段:
alert('~~ WELCOME TO [x] ~~');
console.log('Before we get started, let\'s find out a little about you.');
var usr = {
name : prompt('What\'s your name?'),
age : prompt('How old are you?'),
clr : prompt('What\'s your favorite color?'),
pref : prompt('Which [x] is your favorite?'),
}
console.log('The air smells pungent today, and the weather is perfect.');
console.log(''); console.log('');
console.log('Did you hear that? I think something may be following us down the path to the [x]...');
console.log('');
var alpha = prompt('');
if/elses
,switches
会有各种各样的功能和选择。但我想要一种基于文本的控制台游戏的感觉。
我计划在某些时候添加许多不同的路线,功能和希望运动。但这就是重点。如果有人知道一两种方法来减慢遵循本指南的游戏,请发布任何建议。
答案 0 :(得分:2)
大多数用户认为提示令人讨厌和丑陋。在执行提示期间,用户将无法与包括其他选项卡或控制台在内的任何其他内容进行交互。此外,作为开发人员使用它非常不方便,因为它们不可配置,并且它们很难开发,支持,尤其是调试。
最好实现一个与用户交互的HTML页面。所以,你将能够自定义它并且看起来不错。
例如,您可以创建一个看起来像聊天的页面 - 文本窗口和底部的输入。像这样:
function tell(text)
{
$("<p/>").text(text).appendTo($('#chat'));
}
function ask(text, callback)
{
$("<p/>").text(text).addClass('question').appendTo($('#chat'));
$('#send')
.prop('disabled', false)
.one('click', function() {
var text = $("#message").val();
callback(text);
$("#message").val("");
$(this).prop('disabled', true);
});
}
tell("Hi");
ask("What is your name?", function(x) {
tell("So strange...my name is " + x + ", as well...");
});
#chat {
padding: 20px;
position: absolute;
top: 0px;
bottom: 20px;
left: 0px;
right: 0px;
background-color: #DDDDDD;
}
#message {
position: absolute;
bottom: 0px;
left: 0px;
height: 14px;
width: 80%;
}
#send {
position: absolute;
bottom: 0px;
left: 80%;
width: 20%;
height: 20px;
}
.question {
font-weight: bold;
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="chat"></div>
<input type="text" id="message"/>
<input type="submit" id="send" disabled/>
这只是一个例子。您可以添加任何内容,如延迟或CSS样式。
答案 1 :(得分:1)
创建自己的console
,alert
和prompt
方法包装本机。
例如:
function logConsole(text, delay) {
window.setTimeout(function() {
console.log(text);
}, delay || 0);
};
如果没有传入延迟参数,您可以将上面的0
值更改为默认延迟。
logConsole('The air smells pungent today, and the weather is perfect.', 1000);
只是一个想法