在学校我们使用这个名为code.org的编码网站。它非常方便,似乎能够执行普通编码软件所能做的任何事情,对于像我这样的初学者来说,它更容易消化。我问一个我不确定甚至可以回答的问题。在游戏中,我试图找出如何向计数器添加cps(每秒cookie数)。我的问题是这可以在循环中完成,但其他事情需要在循环之外发生。所以我不确定如何添加它们,但仍然可以运行其他代码而不会陷入循环。代码将发布在底部。这个项目只是为了好玩,我不打算将这项工作作为我自己的工作。谢谢您的帮助!
(请注意,这是我到目前为止的全部代码...)
var cookies = 0;
var incriment = 1;
var cps = 0;
var autoClickers = 0;
var autoClickerCost = 1;
var autoClickerAdd = 0.50;
var upgradeClickCost = 100;
setText("upgradeClickCostText","cost: "+ upgradeClickCost);
setText("autoClickerCostText", "cost: " + autoClickerCost);
onEvent("image1", "click", function() {
cookies = cookies + incriment;
console.log("you have: "+cookies+" cookies");
setText("cookieNumber", "Cookies: " + cookies);
});
onEvent("upgradeClick", "click", function() {
if(cookies >= upgradeClickCost){
cookies = cookies - upgradeClickCost;
console.log("you have: "+cookies+" cookies");
setText("cookieNumber", "Cookies: " + cookies);
incriment = incriment * 2;
upgradeClickCost = upgradeClickCost * 2;
setText("upgradeClickCostText", "cost: "+ upgradeClickCost);
}
});
onEvent("shopScrnBtn", "click", function() {
setScreen("shop_screen");
console.log("went to shop!");
});
onEvent("gameScrnBtn", "click", function() {
setScreen("game_screen");
console.log("went to cookie!");
});
function addCookies(){
cookies = cookies + cps;
}
onEvent("buyAutoClicker", "click", function() {
if(cookies >= autoClickerCost){
cookies = cookies - autoClickerCost;
autoClickers++;
console.log("you have: "+cookies+" cookies");
setText("cookieNumber", "Cookies: " + cookies);
autoClickerAdd = autoClickerAdd * autoClickers;
cps = cps + autoClickerAdd;
}
console.log("auto clicker purchased");
});
(另请注意,此代码段无法正常工作,因为您不会在code.org上或有适当的按钮来处理事件。)
我没有在这里看到任何循环,只需单击事件。我错过了什么吗?如果有一个循环,我们可以看到内部与外部的内容。通常,您使用条件if
语句处理循环内的变量(而不是更改它们)。
您正在寻找的功能可能是setInterval
,它每n毫秒运行一次函数。
function runAutoClicker() {
cookies = cookies + cps;
}
// Run auto-clicker every second (every 1000 milliseconds)
setInterval(runAutoClicker, 1000);