Flash Builder для обнаружения столкновений - PullRequest
0 голосов
/ 23 ноября 2011

У меня проблемы с получением кода, работающего с обнаружением столкновений.Я проверил, чтобы убедиться, что он обнаруживает столкновения, и это происходит, однако я не могу заставить его работать, поскольку он просто проходит через блок.Я также попытался просто убрать -10 из значения x после его столкновения, но он останется на первые пару попыток, а затем просто пройдет через блок.

private function collisionDetect(evt:Event):void{
    if(IMG3.hitTestObject(block)){
        if(IMG3.x > block.x){
            IMG3.x = block.x-1;
        }
    }
}

1 Ответ

0 голосов
/ 08 марта 2012

Зависит от скорости движения объектов.Предоставьте более подробную информацию о том, что вы пытаетесь достичь.Ваш код должен работать нормально, если обе стороны объекта сталкиваются, и центральная точка img x больше, чем центр x блока.

Где код, отвечающий за перемещение объекта?

В любом случае другим подходом будет цикл while:

private function collisionDetect(evt:Event):void{
  if(IMG3.hitTestObject(block)){
    while (IMG3.x > block.x) 
    {
      IMG3.x--;
    }
  }
}

Но опять же, это зависит от того, как IMG перемещается с самого начала и где это происходит в коде.Также обратите внимание на комментарий Фелипемаи о центральной точке объекта.Правильный путь будет (IMG3.x + IMG3.width / 2) > ( block.x - block.width / 2) при условии, что обе центральные точки объектов действительно являются их точным центром.

ps перефразируйте заголовок - это не проблема Flash Builder

...