[英]Can i put a list of objects in an array or something similar? AS3
我對編碼非常陌生,我想知道是否可以將對象列表放入數組以進行碰撞。
而不是寫...如果player.hitTestObject(wall1)然后牆2然后牆3?
我可以將它們全部放入一個數組或其他數組中嗎,所以我可以說是player.hitTestObject(everywall)
謝謝。 我的代碼看起來像這樣,我大約有30面牆。
如果有人舉一個例子,我將不勝感激。
function keydown(event:KeyboardEvent) :void {
switch(event.keyCode){
case Keyboard.LEFT :
hero.x -= 10;
if(hero.hitTestObject(w1) || hero.hitTestObject(w2) || hero.hitTestObject(w3) || hero.hitTestObject(w4)){
hero.x +=10;}
break;
case Keyboard.RIGHT:
hero.x +=10;
if(hero.hitTestObject(w1) || hero.hitTestObject(w2) || hero.hitTestObject(w3) || hero.hitTestObject(w4)){
hero.x -=10;}
break;
case Keyboard.UP:
hero.y -=10;
if(hero.hitTestObject(w1) || hero.hitTestObject(w2) || hero.hitTestObject(w3) || hero.hitTestObject(w4)){
hero.y +=10;}
break;
case Keyboard.DOWN:
hero.y += 10;
if(hero.hitTestObject(w1) || hero.hitTestObject(w2) || hero.hitTestObject(w3) || hero.hitTestObject(w4)){
hero.y -=10;}
break;
default :
break;
}
如Actionscript Docs中所示, hitTestObject()
將DisplayObject
作為參數,而不是任何類型的列表。
如果需要,您可以自己實現這種功能。
function myHitTest(obj:DisplayObject, arr:Array):Boolean {
for (var i:int = 0; i < arr.length; ++i) {
//for (var item:DisplayObject in arr) {
var item:DisplayObject = arr[i]
if (obj.hitTestObject(item)) {
return true;
}
}
return false;
}
然后您可以使用它...
if(myHitTest(hero,[w1,w2,w3]))
...
要么
var everywall:Array = [w1,w2,w3];
...
if(myHitTest(hero,everywall))
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.