-1 html javascript
我还是新编码,我正在尝试制作一个cookie clicker类型的游戏.我明白了
upgradecursor不是一个函数
当我在Chrome上运行它时.我没有真正理解这个问题,因为我有一个叫做的函数upgradecursor.请帮忙!:(
<!DOCTYPE html>
<html>
<head>
<title> Test </title>
<script>
//List of variables
var cookie = 0;
var cursor = 1;
var cursorupgradecost = 10;
function addcookie(){
var textField = document.getElementById( "textField" );
var currentValue = parseInt(textField.value);
cookie = cookie + cursor;
// Add one
currentValue = currentValue + cursor;
// Put it back with the new +1'd value
textField.value = currentValue;}
function upgradecursor(){
var textField = document.getElementById( "textField" );
var currentValue = parseInt(textField.value);
cookie = cookie - cursorupgradecost;
// Minus one
currentValue = currentValue - cursorupgradecost;
// Put it back with the new -10'd value
textField.value = currentValue;
//change the cost of the upgrade
cursorupgradecost = cursorupgradecost * 1.5;
//Upgrade the cursor
cursor = cursor + 1;
}
</script>
</head>
<body>
<script>
if (cursorupgradecost > cookie){
upgradecursor = false;}
else{
upgradecursor = true;}
</script>
<button type ="button" onClick = "upgradecursor()"/>Upgrade Cursor </button>
<input type="text" value="0" disabled name="lvl">
<br>
<button type="button" onClick="addcookie()"/>Add Cookie</button>
<input type="button" value="Cookies" disabled name="clicker">
<input type="text" value="0" id="textField" readonly/>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
包含JavaScript后,您将使用全局变量覆盖upgradecursor.
<script>
if (cursorupgradecost > cookie) {
upgradecursor = false;
} else {
upgradecursor = true;
}
</script>
Run Code Online (Sandbox Code Playgroud)
这是违法的代码.您需要将此变量重命名为其他内容以避免覆盖该函数.
此外,您绝对应该避免声明这样的全局变量,并考虑使您的代码更加封装/模块化.
-
根据您的目标进行更新:如果您只想在给定某个用例的情况下升级游标,那么在调用upgradecursor之前,拥有一个特定的单击处理程序可能会很有用,该处理程序将自行运行此检查.例如: -
function onCursorClick() {
if (cursorCost > cookie) {
// do something
} else {
upgradeCursor();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意我是如何使用驼峰套管来声明我的函数和变量的?确保更新变量声明以匹配我的外壳.这是常见的做法.您可以在此处阅读有关编码约定的更多信息:W3Schools JavaScript样式指南
我想指出应该通过JavaScript附加侦听器(请参阅DOM事件侦听器),但请确保更新单击处理程序以匹配我们的更新,如下所示: -
<button type="button" onClick="onCursorClick()"/>Upgrade Cursor</button>
Run Code Online (Sandbox Code Playgroud)