PDA

Просмотр полной версии : hitTest


Zergy
09.11.2003, 20:23
Есть мувик, hit-облать которого изначально квадратная...
___
| |
|___|
(квадрат)

...но в основной сцене он расположен под углом, и по идее hit-облась должна выглядеть

следующим образом (чего необходимо добиться):

/\
/ \
\ /
\/
(квадрат под углом)

...но! этого почему-то не происходит...и hit-облась какбы закрвает углы и становится

квадратной как ни крути....

МОжет надо hitArea использовать ? Блин не вразумею! Подскажите пожалуйста.

paravozzz
09.11.2003, 20:41
сам спрашиваеш и одновременно отвечаеш. :p

Zergy
09.11.2003, 20:55
По hitArea у меня скудная информация...
Как примерно описать контур с помощью hitArea ??

Zergy
10.11.2003, 09:41
Fla с наглядным примером...

Zergy
11.11.2003, 00:59
Неужели и тут никто не в курсе :confused:
ай-я-яаааааааа-й :(

schleicher
11.11.2003, 10:26
Да нет, тут все всё знают, просто им отвечать влень.
Кажись, твою проблему надо решать более сложным способом.
Например, куркулировать на машинке её углы(в точках) и проверять хиттест по этим точкам. Дело в том, что при этом ты можешь задать флаг в параметрах хиттеста, где будет определяться не баундинг бокс, а реальный контент клипа.

Я понятно выразился?

Пушистик
11.11.2003, 11:40
неверный синтаксис hitTest'a
if(this, hitTest(_root.formula)){
поробуй
if(this.hitTest(_root.formula)){

и поставь shapeFlag true ....
аааа...!всё!щя сваливаю....приду посмарю! :D

schleicher
11.11.2003, 11:53
Пушистик!
Этот синтаксис хиттеста не поддерживает Шейпфлаг.
Шейпфлаг канает токо при mc.hitTest(x,y,shapeFlag)

или mc.hitTest(mc2) - тоже поддерживает флаг?
можа я хелпы читать не умею?
или пора на седьмой флэш перелазить?

Zergy
11.11.2003, 13:06
А, кажется понял..
Короче получается, что надо в каждом кадре машинки вычислять 8 значений X'ов и Y'ов(углы относительно центра мувика машинки), а в заборе делать проверку hitTest на 4 координаты, так ? А этот способ не будет сильно тормозить комп?

schleicher
11.11.2003, 13:23
4 икса и 4 игрека.
Думаю, тормозить сильно не будет, хотя на сотом пентиуме запускать не рекомендую.

Zergy
11.11.2003, 13:35
Ну что поделаешь, на 100 и масяня наверное залипает..

Если получится, я твой ник на одном из этих заборов увекавечу))

schleicher
11.11.2003, 13:53
Чтобы в меня формулки врезались????

Zergy
11.11.2003, 14:06
Так они знаешь как лихо теперь отскакивать будут
Ну смотри сам, тендера блина не будет

schleicher
11.11.2003, 14:22
Кстати, я заментил, что если не врезаться, а медленно подъезжать, то можно барьер проехать насквозь!

Zergy
11.11.2003, 14:48
Эта фигня происходит потому что координаты зависят от скорости - это шаг в несколько пикселов...и получается что подъезжаешь к барьеру и координаты оказываются прямо в hit-области барьера, а при пересечении скорость меняется на половину обратной, следовательно тачка застряёт....
Но это не страшная проблема, просто не до неё было, думаю её можно одалеть

Пушистик
11.11.2003, 14:50
Кстати, я заментил, что если не врезаться, а медленно подъезжать, то можно барьер проехать насквозь!
угу...и еще неверная акселерация при сдаче назад и повороте...

Zergy
11.11.2003, 15:02
2Пушистик

Ты имеешь ввиду крен? Или именно акселерацию ?
Насчёт барьера я на пред'идущей написал

Zergy
11.11.2003, 16:08
2Пушистик
Я понял что ты имел ввиду
То есть когда жмёшь назад и влево тачка должна ехать назад и вправо....как во всех игрушках точно!

Zergy
12.11.2003, 14:50
"Тригонометрия это мастурбация
localToGlobal(); - это ответ!"
- борцовскый клуб -

Всё утро ломал голову над тангенсами-гипатенузами, а нужно было открыть Колина Мука на 602й странице.

Точки не вычисляются а задаются как объект со свайствами X и Y, которые равняются оступом от 0,0 мувика машинки, затем переводятся в глобальную систему координат методом localToGlobal(point);

Осталось решить как-нибудь глюк с увязанием в барьере...

Пушистик
12.11.2003, 16:18
Оригинал написал(а) Zergy
2Пушистик
Я понял что ты имел ввиду
То есть когда жмёшь назад и влево тачка должна ехать назад и вправо....как во всех игрушках точно!

угу.....ты прально понял!

Осталось решить как-нибудь глюк с увязанием в барьере...

глянь мой варянт...

Zergy
12.11.2003, 16:32
Гы-гы

Так даже забавней)
Наверное так и оствлю как ты предложил

Кстати, попробуй задом сдать на барьер))
Надо if скорость<0 then -4 else 4

Спасибо за советы

Zergy
12.11.2003, 17:50
Результат будет примерно такой..