[英]Javascript: Calculating the Remainder not working?
我正在開發一款游戲,其中玩家/敵人有一個帶有3個疊加層的平衡桿。 我想做的是操縱第一個疊加層,這樣它就可以按百分比完全穿過該條。
例如:第一個疊加是敵人平衡的50%。 然后進入另一個“階段”或“狀態”。 然后,該疊加層消失,第二個疊加層被觸發並開始減小。
酒吧的寬度是200像素,所以我想做的是說“嘿,如果50%的敵人平衡消失了,那么觸發/激活第二個疊加層。
我遇到的問題是余下的線。 當我擊打敵人時說。10點平衡傷害為200。這將給我剩余的適當百分比,剩余的適當剩余部分。 但是一旦我達到50%,其余的就等於0! 這是該行或功能不再正常工作的地方,它破壞了我想做的設計模式。 這是控制台日志中的示例。
balanceCounter: function (character, boss){
var percentage = Math.floor((boss.balance/200) * 100)
var remain = 100 % percentage; // <--- This is not working properly
console.log(percentage);
console.log(remain);
if (character.virtue == "hero"){
if (percentage > 49){
$("#bossbalanceoverlay2").animate({
width: percentage * 2 - (remain * 2)
}, 200)
}
else
$("#bossbalanceoverlay1").animate({
width: percentage * 2 - (remain * 2)
}, 200);
}
**click attack button**
97 // <--- Percent
3 // <--- Remainder
**click attack button**
95 // <--- Percent
5 // <--- Remainder
**click attack button**
92 // <--- Percent
8 // <--- Remainder
(When i hit the 50% mark)
**click attack button**
50 // <--- Percent
0 // <--- Remainder **Why 0?**
**click attack button**
47 // <--- Percent
6 // <--- Remainder **Why 6 instead of 3?**
**click attack button**
45 // <--- Percent
10 // <--- Remainder **Why 10 instead of 5?**
您可能要這樣做,而不是%
:
var remain = 100 - percentage;
您希望余數remain + percentage
總等於100,因此這是您所需要的減法,而不是取模運算。
通常,百分比為50時使用%
(取模)會得到零,因為100是50的倍數,因此沒有余數。
您面臨的問題是%返回余數。
100%45 =>可以被45整除兩次,余數= 10。
100%50 =>可被50整除兩次,余數= 0。
您想要的是remain = 100 - percentage
首先,我會添加缺少的分號。
其次,您的else括號似乎缺少花括號{},這可能導致兩個代碼塊都被擊中,具體取決於代碼的格式。
第三,我會仔細閱讀%運算符,您可能會認為過分;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.