![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2012
Сообщений: 213
|
Box2d 2д даст возможность работать с чем-то НЕ квадратным и задавать такие параметры как трение, плотность и тд. Конечно можно всё это прописать в ручную, но блин, зачем придумывать велосипед?
|
|
|||||
|
Регистрация: Mar 2015
Сообщений: 64
|
в классах пока не пробовал
Добавлено через 5 часов 12 минут Попробовал другой вариант, полностью отказавшись от метода hitTest. //столкновение с платформой с боку var distanceX:Number = slime.width/2 + platform2.width/2; var distanceY:Number = slime.height/2 + platform2.height/2 - 3; var pt1:Point = new Point(); var pt2:Point = new Point(); var pt3:Point = new Point(); function fDetectionSide () { pt1.y = slime.y; pt1.x = slime.x; pt2.x = platform2.x; pt2.y = platform2.y; pt3.x = slime.x; pt3.y = platform2.y; var distance_pt1pt3 = Point.distance(pt3, pt1); var distance_pt2pt3 = Point.distance(pt2, pt3); if((distance_pt1pt3 < distanceX) && (distance_pt2pt3 < distanceY)) { if(slime.x > platform2.x){ slime.x = platform2.x + distanceX; } if(slime.x < platform2.x){ slime.x = platform2.x - distanceX; } } } Метод Point.distance не срабатывает. В чем причина ? |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
да добавте уже слушатель событий! Я уже писал ранее
Добавлено через 46 секунд и сделайте всё через массив Добавлено через 3 минуты Point.distance вообще не уверен, что в вашем случаи подходит |
|
|||||
|
Регистрация: Mar 2015
Сообщений: 64
|
Слушатель есть. Но это в другой части кода (здесь я я его не показал).
На счет Box2d - сейчас пробую, но хотелось бы делать игры и без помощи движков (смущает ограниченный набор возможностей, хотя мне этого сейчас вполне хватает, но на будущее, когда запросы вырастут - этого будет не достаточно. Поэтому стараюсь уже сейчас изучать языки программирования). |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
для каждой функции нужен слушатель, если её не вызывает функция, в которой есть слушатель. Запишите в вашу функции trace(123) если постоянно появляется новый вывод, тогда ENTER_FRAME для функции работает
|
|
|||||
|
Регистрация: Mar 2015
Сообщений: 64
|
функция о которой я писал записана в обработчик событий ENTER_FRAME. trace(123) тоже записывал
все работает, но проблема о которой я писал осталась. |
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
тогда может стоит наконец сделать через массив - это легко и быстро и тогда в вашем коде можно будет вполне разобраться
ни знаю как другие, просто я ваш код с трудом понимаю и не всё Добавлено через 22 минуты а из первого варианта так будет в теории правильней function fDetectionSide() { //функция столкновения с объектами расположенными по бокам платформ for (var i: int = 1; i < 8; i++) { var plft = root["platform" + i]; if (slime.hitTestObject(wall)) slime.x = plft.x - plft.width / 2 - slime.width / 2 - 1; } for (var w: int = 1; w < 8; w++) { var plft1 = root["platform" + w]; if (slime.hitTestObject(wall2)) slime.x = plft1.x + plft1.width / 2 + slime.width / 2 + 1; } } Последний раз редактировалось neonoviiwolf; 03.03.2015 в 21:38. |
|
|||||
|
Регистрация: Apr 2012
Сообщений: 213
|
neonoviiwolf, я же так ему и написал, но судя по всему всё равно не работает
|
|
|||||
|
Регистрация: Jun 2014
Сообщений: 558
|
думаю вся проблема в
это как-то ж по мне, хотя я просто не понимаю первую строчку |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|