Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   hitTestObject и hitTestPoint: координаты вычисленные или отображаемые на сцене? (http://www.flasher.ru/forum/showthread.php?t=158037)

Nemez 14.06.2011 13:26

hitTestObject и hitTestPoint: координаты вычисленные или отображаемые на сцене?
 
Заголовок корявый, но дело вот в чем.
Объект меняет свои координаты по таймеру, который быстрее,чем fps. Объект.х уже равно 400, а на экране он еще 390. Что скажет hitTestObject в промежуток несовпадения экранных координат и вычисленных?

semenyakinVS 14.06.2011 13:38

Во-первых, это можно проверить.

Во-вторых, скорее всего hitTestObject вернёт результат для изменённой по таймеру геометрии. Вряд ли эта функция анализирует графику на сцене.

Vektor 14.06.2011 13:49

Судя по вопросу, вы параллельно двигаете объект по таймеру а клип по EnterFrame.
Вопрос: зачем?
EnterFrame- "ПЫТАЕТСЯ" перерисовывать экран заданное количества раз в секунду.

goodguy 14.06.2011 13:59

Цитата:

Объект.х уже равно 400, а на экране он еще 390
Мне вот интересно, откуда эти данные? ) К экрану приложена линейка и высокочастотная камера снимает движущийся объект?

Nemez 14.06.2011 14:17

Цитата:

Сообщение от goodguy (Сообщение 1003622)
Мне вот интересно, откуда эти данные? ) К экрану приложена линейка и высокочастотная камера снимает движущийся объект?

Это гипотетический пример.Если отвлечься от того, зачем мне это надо и как я замерил координаты, знает ли кто ответ на вопрос?

Bgg 14.06.2011 14:21

А если не отвлекаться, то вам скорее всего показалось.

Nemez 14.06.2011 14:39

Код AS3:

super.stage.frameRate = 24//  24  разa в секунду
 
gameTimer = new Timer(10,0);    //  сто раз в секунду
gameTimer.addEventListener(TimerEvent.TIMER, gameHandler);
 
private function gameHandler(event : TimerEvent) : void {
        ball.x = ball.x +1;
        if (plattform.hitTestObject(ball))  ........ ;
}


goodguy 14.06.2011 14:53

и?
Нужно проверять столкновение до того, как объект переместился

Хотя я так и не понял, в чем суть вопроса. Для программы экранные координаты вообще не имеют значения.
Зачем одновременно нужен и таймер и энтер фрейм? Однозначно есть смысл повесить все либо на таймер, либо на энтер фрейм. Очевидно же, что по-отдельности они синхронно работать не будут

Nemez 14.06.2011 15:09

Цитата:

Сообщение от goodguy (Сообщение 1003639)
Для программы экранные координаты вообще не имеют значения.

И для hitTestPoint (hitTestObject )?

goodguy 14.06.2011 16:37

Естественно. Можно вообще ничего не добавлять в дисплей лист, все будет так же работать

ну так как на счет этого?
Цитата:

Зачем одновременно нужен и таймер и энтер фрейм?


Часовой пояс GMT +4, время: 02:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.