hitTest не работает

Я не понимаю HitTest довольно простой, но он не будет работать. Я хочу, чтобы мой мувиклип Faller ударил по TouchTest Touch1, но я получаю ошибку 1061. Я пытался сделать это, когда сделал FallerThingsLeft для HitTest Touch1, чтобы сказать мне "HIT" в Score_txt, но он сказал мне "Ударьте" за 3 секунды до того, как он действительно попадет. Я не понимаю не может ли кто-нибудь сказать мне, что я делаю неправильно

import flash.display.Graphics;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
var objectSpawner: Timer;
var fallers: Array;


function initGame(): void {
    fallers = [];
    objectSpawner = new Timer(1000);
    objectSpawner.addEventListener(TimerEvent.TIMER, createEnemy);
    objectSpawner.start();
    addEventListener(Event.ENTER_FRAME, dropEnemies);
}
function createEnemy(e: TimerEvent): void {
    var enemy: Faller = new Faller();
    enemy.y = -stage.stageHeight;
    enemy.x = Math.random() * 380;
    MovieClip(enemy).cacheAsBitmap = true;
    addChild(enemy);
    fallers.push(enemy);
    drawConnectors();
}
function dropEnemies(e: Event): void {
    trace(fallers.length);
    for each(var mc: Faller in fallers) {
    mc.y += 10;
    if (mc.y > stage.stageHeight * 2)
        fallers.splice(fallers.indexOf(removeChild(mc)), 1);

    drawConnectors();
    }
}
function drawConnectors(): void {
    if (fallers.length == 0) return;
    var g: Graphics = this.graphics;
    g.clear();
    g.lineStyle(10,0xFFFFFF);
    var mc: Faller = fallers[0];
    g.moveTo(mc.x, mc.y);
    for each(mc in fallers) g.lineTo(mc.x, mc.y);


}

init()


function init():void
{
          var fallingThingsLeft:FallingThings = new FallingThings
          (stage.stageWidth / 2, stage.stageHeight);
          var fallingThingsRight:FallingThings = new FallingThings
          (stage.stageWidth / 2, stage.stageHeight);
          addChild(fallingThingsLeft);
          addChild(fallingThingsRight);
          fallingThingsRight.x = stage.stageWidth / 2;




    }

import flash.events.Event;

this.addEventListener( Event.ENTER_FRAME, handleCollision)

function handleCollision( e:Event ):void
{
    if(fallingThingsLeft.hitTestObject(Touch1))
       {
           output_txt.text = "HIT"
       }
       else
       {
           output_txt.text = "MISS"
       }
}

1 ответ

Не видя объектов, я не могу быть уверен; однако при начале работы с hitTestObject часто возникает проблема, заключающаяся в том, что проверка попадания выполняется в ограничивающей рамке. Смотрите изображение ниже. Это зарегистрирует "попадание" с помощью hitTestObject, потому что ограничивающие рамки проходят тест на попадание.

Другие вопросы по тегам