|
|
|||||
Регистрация: Mar 2016
Сообщений: 34
|
Перемещение снаряда танковой пушки
Пытаюсь создать перемещение снаряда танковой пушки. Вот код:
function init() { _root.onEnterFrame = function() { xdiff = _xmouse - tank._x; ydiff = _ymouse - tank._y; angle = Math.atan2(ydiff, xdiff); angle = 0 - tank._rotation + angle * 180 / Math.PI; tank.gun._rotation = angle; } onMouseDown = function () { X = _xmouse - tank._x; Y = _ymouse - tank._y; ang = Math.atan2(Y, X); var __reg3 = attachMovie("bullet", "bullet" + counter_bullet++, _root.getNextHighestDepth()); __reg3._x = tank._x + Math.cos(ang) * 80; __reg3._y = tank._y + Math.sin(ang) * 80; } } init(); Это рабочий код хотя он не полностью. Я решил перенести свою пушку и переделал рисунок и вот, что получилось. Но снаряд по прежнему появляется по центру как показано но рисунке выше. Подскажите пожалуйста Как перенести снаряд так чтобы он появлялся около новой пушки. При том при всем, что нужно учитывать, что пушка поворачивается? |
|
|||||
Речь о пушке или о стволе оной?
Используйте координаты ствола для bullet.... И кстати, вам удобно такие переменные юзать - "__reg3" ? |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
похоже это творчество декомпилятора)
|
|
|||||
Регистрация: Mar 2016
Сообщений: 34
|
Раньше пользовался декомпилятором, а привычка использовать переменные таким образом осталась.
Добавлено через 42 минуты Получилось, но при перемещении сцены снаряды появляются не там где надо, стоит только перемещение сцены убрать и все работает. Без перемещение сцены никак не обойтись. Кто что посоветует? Был создан новый мувиклип под названием fire. Он находится около дула пушки и отвечает за создания пуль. Вот код: function init() { _root.onEnterFrame = function() { //Перемещение сцены this._x = -tank._x + Stage.width / 2; this._y = -tank._y + Stage.height / 2; if (Key.isDown(Key.UP)) { tank._y -= 10; } if (Key.isDown(Key.DOWN)) { tank._y += 10; } if (Key.isDown(Key.LEFT)) { tank._x -= 10; } if (Key.isDown(Key.RIGHT)) { tank._x += 10; } xdiff = _xmouse - tank._x; ydiff = _ymouse - tank._y; angle = Math.atan2(ydiff, xdiff); angle = 0 - tank._rotation + angle * 180 / Math.PI; tank.gun._rotation = angle; } onMouseDown = function () { var __reg4 = {x: tank.gun.fire._x, y: tank.gun.fire._y}; tank.gun.localToGlobal(__reg4); X = _xmouse - tank._x; Y = _ymouse - tank._y; ang = Math.atan2(Y, X); var __reg3 = attachMovie("bullet", "bullet" + counter_bullet++, _root.getNextHighestDepth()); __reg3._x = __reg4.x + Math.cos(ang); __reg3._y = __reg4.y + Math.sin(ang); } } init(); Последний раз редактировалось Alexey25; 28.05.2016 в 17:41. |
|
|||||
Цитата:
Имён переменных вобоще не надо Ксательно же вашего куска кода.... Тут надо всё в целом смотреть. Исходник выкладывайте... Может у кого и возникнет желание порыться... |
|
|||||
Регистрация: Mar 2016
Сообщений: 34
|
Мне так удобнее называть переменные, не нужно каждый раз придумывать новое название для переменной. Просто поставил цифру в конце переменной и все уже новая переменная.
|
|
|||||
Цитата:
Но только как-то не по фенг шую, ang, angle, xdiff, ydiff тоже надо переименовать во что-то типа __reg5, __reg6 и т.д. Чтобы все было в одном стиле
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
тож заметил двойные стандарты
|
|
|||||
Цитата:
|
|
|||||
Регистрация: Mar 2016
Сообщений: 34
|
А вам что всем есть дело как я пишу? Это дело каждого. Для меня главное, чтобы не глючило и не тормозила. А если все нормально работает то и не стоит заморачиваться как писать переменные. Есть игры написанные на flash которые возможно правильно написаны и они довольно крутые но очень сильно тормозят и играть невозможно. Да и еще dark256 вы чушь написали.
Проблему я решил надо было просто добавить следующие Последний раз редактировалось Alexey25; 29.05.2016 в 12:02. |
Часовой пояс GMT +4, время: 21:43. |
|
« Предыдущая тема | Следующая тема » |
|
|