2017-08-30 28 views
-1

請原諒我缺乏理解,我只是一名高中生。對於一個學校項目,我的任務是通過Actionscript 3創建一個遊戲。我決定製作Brick Breaker,其目標是摧毀舞臺上的街區等。該遊戲的一個特點是,各種類型的街區在屏幕上產生。紅色類型可以在一擊中被摧毀,藍色可以在兩次命中中被摧毀,紫色類型可以在三次中被摧毀。這三個塊已被添加到'blockArray'中。在Actionscript 3中收到錯誤。「靜態類型uint和可能不相關的數組之間的比較」

基本上,當球擊中其中一個塊時,它會失去一個健康點。當該塊具有健康= 0時,則它將從舞臺和陣列中移除。

碰到塊的球的產卵和碰撞就像他們應該做的一樣。問題幾乎是其他的一切。讓我告訴你一個例子:

function checkHealth():void 
     for (var i:uint=0; i<blockArray.length; i++) 
      for (i = 0; i < blockArray; i++) 
       health = 1; 
      for (i = 1; i < blockArray; i++) 
       health = 2; 
      for (i = 2; i < blockArray; i++) 
       health = 3; 

我得到一個錯誤,從這個代碼說,

的任何幫助,這是「一個靜態類型爲uint可能無關的數組類型的值之間的比較」非常感謝, 謝謝。

+1

您正在將數字與數組進行比較。 '我 DodgerThud

+0

謝謝你的迴應!你碰巧有一個關於如何改變這個問題的建議?我試圖定義數組中的內容,並用它來代替,但出現了大量新錯誤。 – Connor

+1

'i' =數字,以便與數字不比較數組。如果你不明白自己的代碼(a)'blockArray' =一個名爲_「blockArray」_和(b)'blockArray.length'的數組=一個數字告訴數組中有多少項......如果'i'也是一個數字,那麼您認爲哪個(在_a_或_b_之間)可以進行比較兼容? –

回答

1

此代碼包含一些非常錯誤的做法,並沒有真正意義。

假設第二個for循環運行50次,爲什麼要將相同的值賦給變量50次? 「健康= 1」只能調用一次。調用它100萬次不會改變結果。

此外,修改for循環本身內的索引值是非常容易bug :)我不會那樣做。 你能解釋一下你想達到什麼嗎?通過閱讀這些代碼是不可能猜到的。

相關問題