2015-09-30 60 views
-1
var userA = 10; 
var userB = 10; 
var users = [userA, userB]; 

function user(defence, attack){ 
    for (var i = 0; i < users.length; i++) { 
    if (users[i] == userA) { 
    if (defence == attack) { 
     return 0; 
} } 

    //Attack is undefended and hurts the defender 
    if (attack == "head") { 
    return users[i] -= 4; 
    } else if (attack == "leg") { 
    return users[i] -= 2; 
    } 

else if (users[i] == userB) { 
    if (defence == attack) { 
    return 0; 
} } 

    //Attack is undefended and hurts the defender 
    if (attack == "head") { 
    return users[i] -= 4; 
    } else if (attack == "leg") { 
    return users[i] -= 2; 
    } 



} 

} 

users[i] += user("head", "leg"); 

正如你所看到的,我試圖寫一個非常基本的JavaScript 1對1的戰鬥遊戲,但我struggling..My代碼不是很有功能。如何處理幾乎同時對方的事件函數

如何讓「攻擊」功能和「防守」功能互聯?例如; 用戶A:攻擊用戶B的頭部 用戶A:與此同時,他的頭部也從他的對手身上防守 用戶B:防守頭部,因此用戶A的傷害未完成 用戶B:與此同時,攻擊用戶A的腿並且做3點損壞的用戶A

這是我自己的項目,其中我試圖發展我的編碼技能:)希望你能理解我的問題!如果不是的話,我可以再多一點。 謝謝

+0

題外話:正如你所看到後我格式化你的代碼中有結構上的問題,或者也可以是缺少。 – isherwood

+0

這個遊戲將如何工作?會有圖形界面嗎?我建議你計劃整個遊戲而不用實際編碼。 - 僞代碼。 – Manu

+0

我想你需要某種計時器來比較攻擊和防守之間的延遲,反之亦然。真的沒有同時發生的事情。 – isherwood

回答

0

我怎麼能使「攻擊」功能和「防守」功能互聯?

function effect_of_attack(d_part, a_part){ 
    // Attack is defended, no effect 
    if (d_part == a_part) { 
    return 0; 
    } 

    //Attack is undefended and hurts the defender 
    if (a_part == "head") { 
    return -4; 
    } else if (a_part == "leg") { 
    return -2; 
    } 
} 

//Assume d_part holds the defense's input ("leg" or "head") 
//Assume a_part holds the attacker's input ("leg" or "head") 

defenders_health += effect_of_attack(d_part, a_part); 
+0

這是一個很好的!我將在這一個工作。但還有一個問題,我怎麼才能讓它在回合制遊戲中工作呢? –

+0

1.初始化遊戲變量(玩家健康狀況,首先攻擊者等) 2.開始「遊戲循環」。循環的每次迭代代表一個「轉向」。因此,循環的開始將是從兩個用戶那裏獲得輸入。然後計算對玩家健康的影響。然後檢查任一玩家的健康是否<= 0(結束條件),如果滿足結束條件則跳出循環。每回合結束時切換攻擊者和防守者。 3.在while循環之後,這是您宣佈獲勝者的地方。 – hkievet

+0

我覺得我搞砸了很多@hkievet –

相關問題