2017-08-30 31 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 :)我不会那样做。 你能解释一下你想达到什么吗?通过阅读这些代码是不可能猜到的。

相关问题