PDA

Просмотр полной версии : Нужна помощь со столкновениями


kayashov73
23.05.2013, 22:50
Привет всем! Создаю игру, большие планы на нее, многого нет, что-что уже сделал. Все вроде удается, но никак не удается сделать столкновения! Что я только не пробывал: hitTest не подходит(т.к. машина поворачивает и ее рамка не соответствует размеру машины), hitTestPoint не работает(вот это для меня загадка, вроде бы должно все работать, но оброботчик даже не видит столкновение), _x,_y,true вот это конечно работает, но этот обработчик работает, но он видит только центр автомобиля, а мне нужны его границы, поэтому тоже не катит, придумывал логическое выражение через "ИЛИ" все равно работает не корректно... Перепробывал все свои "запасы знаний", но все равно не работает!
Кто разбирается в этом прошу уделить мне немного времени и исправить ошибку в моем коде и сделать столкновения. Австомобиль при столкновениями с зелеными квадратиками(типа того барьеры, буду потом делать карту) должен переключать переменную faf в 1. Кто разбирается в коде, поймет.
Код столкновения поместил в самой машине, остальной код в кадре.
Просьба не изменять другой мой код, если записываете в кадре, то создайте пожалуйста новую функцию.

Заранее спасибо!

caseyryan
24.05.2013, 07:56
Все гейм программеры рано или поздно с этим сталкиваются. Советую почитать про SAT (Separating Axis Theorem) теорему о разделяющей оси. По этому принципу и делается просчет столкновений в подавляющем большинстве игр.

kayashov73
24.05.2013, 09:04
Я посмотрел по вашему совету, но как это можно реализовать под флеш никак найти не могу:(

NikolyA
24.05.2013, 14:36
как-то так: http://rocketmandevelopment.com/2010/05/19/separation-of-axis-theorem-for-collision-detection/

kayashov73
25.05.2013, 01:18
Более подробно почитал статьи и туториалы по данной теореме, но как я понял этот вид обнаружений мне не подхоит. Т.к. он расчитан на 2 конкретных объекта сталкиваемых между собой, у меня же не много иная картина!
Вложил картинку, а на ней нарисовал ограничивающую коробку(для машины и для предметов, с которыми авто должно сталкиваться). При использовании данной технологии действие будет такое же как и при обычном hitTest. Как вы видите на рисунке авто находиться в "ограничивающей коробке" барьеров, так что hitTest мне на выходе даст true, хотя это не так!

Подскажите если я не понял?

caseyryan
25.05.2013, 09:33
Т.к. он расчитан на 2 конкретных объекта сталкиваемых между собой, у меня же не много иная картина!
Картина абсолютно та же. В любом случае просчитываются 2 конкретных объекта. Если они не сталкиваются, просчитывается столкновение со следующим, и т.д. Это здесь единственный верный метод.

вот здесь (http://noregret.org/tutor/n/collision/)есть работающие примеры, можно потаскать мышкой и посмотреть на результат

п.с. Если делать игру на as3, то там есть уже готовые библиотеки для просчета столкновений, и даже физические движки.

kayashov73
26.05.2013, 00:40
Спасибо за данный сайт! Скорее всего я нашел нужный туториал, он следующий, который с сеткой, он более подходит! буду искать дальше!)