簡體   English   中英

我可以將對象列表放入數組或類似的東西嗎? AS3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM