2014-02-08 25 views
0

我有一個小升級系統,用戶可以通過使用屏幕上的方向箭頭來增加或減少他們的健康和防禦狀態。基本上,我已經做到這一點,當你增加或減少統計數據時,其餘點或者相應地增加或減少。問題是,當生命值和防禦值都達到零時,按下按鈕減少/增加所有點數後的統計數據,點數變爲負數。價值進入負數 - 如何阻止它?

我想知道是否有辦法讓它使用戶使用所有他們的統計點時,統計數字可以識別出他們全部被使用並且不會進入負數。這在AS3中編碼。這是我的代碼。

addEventListener(Event.ENTER_FRAME, healthScore); 
addEventListener(Event.ENTER_FRAME, defenceScore); 
addEventListener(Event.ENTER_FRAME, remainPoints); 

decBtnDef.addEventListener(MouseEvent.CLICK, decreaseDefenceDef); 
incBtnDef.addEventListener(MouseEvent.CLICK, increaseDefenceDef); 
decBtnHP.addEventListener(MouseEvent.CLICK, decreaseHealthHP); 
incBtnHP.addEventListener(MouseEvent.CLICK, increaseHealthHP); 

function healthScore (event:Event){ 
healthShow.text = String (health); 
} 
function defenceScore (event:Event){ 
defenceShow.text = String (defence); 
} 
function remainPoints (event:Event){ 
pointsShow.text = String (points); 
} 

var health:Number = 10; 
var defence:Number = 10; 
var points:Number = 10; 

_test3.text = "You have"; pointsShow.text = String (points); _pointstxt.text = "points."; 
_test.text = "You have"; healthShow.text = String (health); _healthtxt.text = "health."; 
_test2.text = "You also have"; defenceShow.text = String (defence); _deftxt.text =  "defence."; 

function increaseDefenceDef (e:MouseEvent):void{ //when mouse click on up btn 
if (defence >= 0) 
    defence +=1; 
    points -=1; 
} 

function decreaseDefenceDef (e:MouseEvent):void{ //when mouse click on down btn 
if (defence > 0) 
defence -= 1; 
points +=1; 
} 

function increaseHealthHP (e:MouseEvent):void{ //when mouse click on up btn 
if (health >= 0) 
    health +=1; 
    points -=1; 
} 

function decreaseHealthHP (e:MouseEvent):void{ //when mouse click on down btn 
if (health > 0) 
health -= 1; 
points +=1; 
} 
+0

有一個讀通過[本文檔]的(http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fce.html)。 –

+0

也不需要三個ENTER_FRAME監聽器 - 您可以將所有三個文本表達式放在一個單一的ENTER_FRAME監聽器中 – InkeyString

回答

0
function increaseDefenceDef (e:MouseEvent):void 
    { //when mouse click on up btn 
     if (points >= 1) 
     { 
      defence +=1; 
      points -= 1; 
     } 
    } 

    function decreaseDefenceDef (e:MouseEvent):void 
    { //when mouse click on down btn 
     if (defence >= 1) 
     { 
      defence -= 1; 
      points += 1; 
     } 
    } 

    function increaseHealthHP (e:MouseEvent):void 
    { //when mouse click on up btn 
     if (points >= 1) 
     { 
      health +=1; 
      points -= 1; 
     } 
    } 

    function decreaseHealthHP (e:MouseEvent):void 
    { //when mouse click on down btn 
     if (health >= 1) 
     { 
     health -= 1; 
     points += 1; 
     } 
    } 
+0

這不起作用。 – user2725423

+0

是的,因爲它缺少擁抱條件 –

+0

我添加了我的答案的擁抱,再試一次 –