javascript - 使用setInterval在javascript中减少健康栏的填充矩形时遇到问题,适用于递增
问题描述
我正在尝试构建一个像电子宠物蛋这样的迷你网页游戏,但是我在脚本的健康栏状态方面遇到了问题。例如,当我setInterval
设置减少清洁度、饥饿感和幸福感条时,我可以看到变化,console.log
但是当我查看html
. 但是,当我有 setInterval 函数甚至按钮单击事件侦听器来增加时,它工作得很好。当我试图将状态设置为下降时,两者都不起作用。我不确定为什么会这样,但我仍在积极寻找答案。
window.onload = function() {
document
.getElementById("clean-button")
.addEventListener("click", clickedCleanButton);
document
.getElementById("feed-button")
.addEventListener("click", clickedFeedButton);
document
.getElementById("play-button")
.addEventListener("click", clickedPlayButton);
let sprite_info = {
name: "giratina",
happiness: 800,
hunger: 800,
cleaniness: 800,
age: 0
};
//hunger bar function, will decrease every 10000ms
/* work on decreasing bars per 10,000ms*/
setInterval(function() {
UpdateSpriteInfo();
sprite_info["cleaniness"] -= 50;
//sprite_info['hunger'] -= 50;
//sprite_info['happiness'] -= 50;
console.log(sprite_info["cleaniness"]);
}, 10000);
function clickedCleanButton() {
sprite_info["cleaniness"] += 50;
console.log(sprite_info["cleaniness"]);
UpdateSpriteInfo();
}
function clickedFeedButton() {
sprite_info["hunger"] += 50;
console.log(sprite_info["hunger"]);
UpdateSpriteInfo();
}
function clickedPlayButton() {
sprite_info["happiness"] += 50;
console.log(sprite_info["happiness"]);
UpdateSpriteInfo();
}
function UpdateSpriteInfo() {
//health display that grows by 50 with button click
canvas_health = document.getElementById("health_display");
health_bar = canvas_health.getContext("2d");
health_bar.fillStyle = "green";
health_bar.fillRect(0, 0, sprite_info["cleaniness"], 50);
//hunger display
canvas_hunger = document.getElementById("hunger_display");
hunger_bar = canvas_hunger.getContext("2d");
hunger_bar.fillStyle = "lightblue";
hunger_bar.fillRect(0, 0, sprite_info["hunger"], 50);
//happiness display
canvas_happiness = document.getElementById("happiness_display");
happiness_bar = canvas_happiness.getContext("2d");
happiness_bar.fillStyle = "pink";
happiness_bar.fillRect(0, 0, sprite_info["happiness"], 50);
}
};
解决方案
推荐阅读
- python - Django 测试:匹配的查询不存在
- c++ - C++ 派生类不能修改基类的属性,但外部类可以
- javascript - 如何断言 HTML 元素在包含样式表后不会改变其外观?
- javascript - Firestore/Javascript:是否可以同时更新旧文档并设置新文档(一次 javascript 执行)?
- c# - 从 API 逐步读取 JSON。错误:完成读取 JSON 内容后遇到的附加文本
- git - 无法确定主机“gitlab.com (35.231.145.151)”的真实性
- r - 将函数中的 ID 参数作为 R 中的范围
- r - 从矩阵的行中选择特定字符
- python - TypeError: 'car' is an invalid keyword argument for print()
- javascript - 如何在 react-native 中使用 thunk?