簡體   English   中英

Javascript:計算余數不起作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM