gpt4 book ai didi

javascript - 需要帮助纠正文字游戏中的功能

转载 作者:行者123 更新时间:2023-11-27 23:44:17 25 4
gpt4 key购买 nike

我正在尝试自学如何编写一个简单的文本游戏。我找到了一个 YouTube 教程,并且正在研究 Der Kerker。我遇到的一个问题是他的最终代码与他在视频中所做的不匹配,所以我陷入了困境。

这是我的问题:

当您加载游戏时,命令“拿剑”和“帮助”都会按设计工作。但是,如果您输入乱码或无法识别的命令,游戏应该会说:“我不明白......”

现在,它只是清除输入框,但并不实际运行命令。

这是我的游戏 fiddle :

https://jsfiddle.net/megler/hv7hqp1e/

  1. 如果我删除 (check == false) 部分 - 那么“我不明白”部分将起作用。但是,如果您输入“帮助”,它将运行帮助部分并说“我不明白帮助”。

目标是仅在玩家输入无法识别的命令时才说“我不明白”。

这是 JS:

//Check To See If True Function
var check = false;

// Been To Room Variables
var beenToCorridor = true;
//

//Inventory
var sword = false;
//

//Current Room
var currentRoom = "nCorridor";

$(document).ready(function() {

$("form").submit(function() {
var input = $("#commandLine").val();

function check() {
check = true;
}

if (input == "help") {
$("#messageHelp")
.clone()
.insertBefore("#placeholder")
.fadeIn(1000);

check();
}
if (input == "take sword" && currentRoom == "nCorridor") {
$("<p>You picked up a sword.</p>")
.hide()
.insertBefore("#placeholder")
.fadeIn(1000);

check();
}
else if (input == "take sword" && currentRoom != "nCorridor") {
$("<p>The sword is not here.</p>")
.hide()
.insertBefore("#placeholder")
.fadeIn(1000);

check();
}
else if (check == false) {
$("<p>I don't understand " + input + ".</p>")
.hide()
.insertBefore("#placeholder")
.fadeIn(1000);
}

$("#commandLine").val("");
});
});

希望这是有道理的。

最佳答案

我想这就是你想要的:

替换的代码:

else if (input != "take sword" && input != "help") {
$("<p>I don't understand " + input + ".</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}

片段:

//Check To See If True Function
var check = false;

// Been To Room Variables
var beenToCorridor = true;
//

//Inventory
var sword = false;
//

//Current Room
var currentRoom = "nCorridor";

$(document).ready(function() {

$("form").submit(function() {
var input = $("#commandLine").val();

function check() {
check = true;
}

if (input == "help") {
$("#messageHelp").clone().insertBefore("#placeholder").fadeIn(1000);
check();
}

if (input == "take sword" && currentRoom == "nCorridor") {
$("<p>You picked up a sword.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
check();
}

else if (input == "take sword" && currentRoom != "nCorridor") {
$("<p>The sword is not here.</p>").hide().insertBefore("#placeholder").fadeIn(1000);
check();
}
else if (input != "take sword" && input != "help") {
$("<p>I don't understand " + input + ".</p>").hide().insertBefore("#placeholder").fadeIn(1000);
}
else
{
return false;
}
$("#commandLine").val("");
});

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>

<div id="console">

<p id="message_startGame">Welcome to my game!</p>

<p id="area_northCorridor">You are in the North Corridor. There is a sword on the ground.</p>

<p id="messageHelp" style = "display: none;">Here is a list of commands</p>

<!-- PLACEHOLDER: THIS IS WHERE EVERYTHING WILL BE INSERTED BEFORE
--->

<div id="placeholder"></div>

<form onsubmit="return false;">
<input type = "text" size ="50" autofocus="autofocus" id="commandLine">
</form>

</div>
</body>

关于javascript - 需要帮助纠正文字游戏中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com