2014-09-29 44 views
0

我有一個很簡單的遊戲:兩個玩家從10個攻擊點開始,選擇多個點來攻擊另一個玩家,目標是將其他玩家的生命從40歸零。我已經獲得了兩個播放器的功能,可以很好地工作,但是當談到在單個播放器中爲計算機播放器生成更多值時(這是使用開關盒設置的),似乎沒有生成值。難度標誌由單選按鈕組設置,但無論設置了什麼難度,計算機玩家的攻擊值都不會生成。Java:不計算CPU玩家價值

//This code calculates remaining attack/life points with the selected attack values. 
//It's here that CPU player attack values SHOULD be set as well. 
if(attackVal1 <= player1AtkPoints) 
    { 
     player1AtkPoints = player1AtkPoints - attackVal1; 
    } 
    else 
     if(attackVal1 > player1AtkPoints) 
     { 
      attackVal1 = player1AtkPoints; 
      player1AtkPoints = 0; 
     } 

    life2 = life2 - attackVal1; 

    if(P2ACTIVE = false) 
    { 
     switch(difficultyFlag) 
     { 

      case 1: 
       attackVal2 = cpuPlayer.nextInt(3) + 1; 
       break; 

      case 2: 
       attackVal2 = cpuPlayer.nextInt(4) + 1; 
       break; 

      case 3: 
       attackVal2 = cpuPlayer.nextInt(5) + 1; 
       break; 

      case 4: 
       attackVal2 = cpuPlayer.nextInt(8) + 1; 
       break; 

      default: 
       attackVal2 = cpuPlayer.nextInt(3)+ 1; 
       break; 
     } 
    } 

    if(attackVal2 <= player2AtkPoints) 
    { 
     player2AtkPoints = player2AtkPoints - attackVal2; 
    } 
    else 
     if(attackVal2 > player2AtkPoints) 
     { 
      attackVal2 = player2AtkPoints; 
      player2AtkPoints = 0; 
     } 

    life1 = life1 - attackVal2; 

以上是相關的代碼。玩家進行一次計算,併爲單人遊戲者和雙人遊戲者減少玩家兩個生命點,其中兩個玩家模式在減少玩家一生中的工作方式。只有當它被設置爲單人遊戲時,玩家的生命點纔會發生任何事情,從而成爲單方面的戰鬥。

回答

3

當您打算將其與false進行比較時,您已將false指定爲P2ACTIVE

if(P2ACTIVE = false) 

您可以使用==比較運營商,但它已經是一個boolean,因此就使用!操作:

if (!P2ACTIVE) 
+0

哦,我明白了。我最近幾天沒有看到這些。我會進行更正,希望它能起作用。感謝您的提示!運營商。從來不知道它是這樣工作的。 – Animahara 2014-09-29 20:56:10