![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
Кто как реализовывал пушку которая стреляет в разные стороны, тоесть положение внизу экрана и она недвижима, но поворачивает дуло (180)? Типа чтобы снаряды летали красиво. Просто идеи.
|
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
Цитата:
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Сперва бабахает, потом пуляет.. И чтоб звук погуще.. И дуло чтоп со скрипом поворачивалось.. А при взрыве окно броузера смещать джаваскриптом. А если в тебя попали - синий экран и "нажмите любую клавишу"
|
|
|||||
|
Цитата:
Цитата:
Последний раз редактировалось iNils; 17.03.2007 в 20:21. |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
Kikasso - очень хороший советчик, нада обязательно прислушаца.
Но может кто-то болле конструктивно подойдет к вопросу. Я вот поворачиваю дуло при помощи _rotation, a вот как привязать пулю к концу дула?? я и через синусы и через косинусы, кое как выходит но до идеала далеко. |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 30
|
Мне была фстыдна но так и быть.
gun.cannon._rotation = angle; //Собственно поворот дула angleRadians = (angle/360)*2*Math.PI .... //Определение нового места положения пули(ball) (ну очень фстыдна) (angleRadians <= 0)?tmpY = (gun._y-5) + -1*Math.sin(angleRadians)*60:tmpY = (gun._y-5) + Math.sin(angleRadians)*50; tmpX = (gun._x + gun._width/2-10) + Math.sin(angleRadians)*120; //Ромещение пули tmpBall._x = tmpX; tmpBall._y = tmpY; |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
1. Вы специально пишите " фстыдна"? Правилами это запрещено http://www.flasher.ru/forum/rules.php пункт 1
2. Зачем такая сложная конструкция? Достаточно 3. Собственно сам код, писал в слепую, так как по коду невозможно узнать свойство и организацию ваших мувиклипов angle = 180;
//// длина ствола пушки
lengthGun = 120;
//// разница между фактическим углом пушки и углом поворота мувиклипа
//// то есть, если пушка смотрит вверх, а мувиклип повернут на 0 градусов, то угол будет -90
angleInit = -90;
gun.cannon._rotation = angle;
//Собственно поворот дула
angleRadians = (angleInit + angle) * (Math.PI / 180);
var point:Object = {x:gun.cannon._x, y:gun.cannon._y};
gun.cannon.localToGlobal (point);
//Ромещение пули
tmpBall._x = point.x + lengthGun * Math.cos (angleRadians);
tmpBall._y = point.y + lengthGun * Math.sin (angleRadians);
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|