Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.05.2016, 13:54
Alexey25 вне форума Посмотреть профиль Отправить личное сообщение для Alexey25 Найти все сообщения от Alexey25
  № 1  
Ответить с цитированием
Alexey25

Регистрация: Mar 2016
Сообщений: 34
По умолчанию Перемещение снаряда танковой пушки

Пытаюсь создать перемещение снаряда танковой пушки. Вот код:
Код AS1/AS2:
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();
Сама пушка выглядит вот так

Название: tank.JPG
Просмотров: 1126

Размер: 4.6 Кб

Это рабочий код хотя он не полностью.
Я решил перенести свою пушку и переделал рисунок и вот, что получилось.

Название: tank2.JPG
Просмотров: 1026

Размер: 4.9 Кб

Но снаряд по прежнему появляется по центру как показано но рисунке выше. Подскажите пожалуйста Как перенести снаряд так чтобы он появлялся около новой пушки. При том при всем, что нужно учитывать, что пушка поворачивается?

Старый 28.05.2016, 16:02
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Речь о пушке или о стволе оной?
Используйте координаты ствола для bullet....
И кстати, вам удобно такие переменные юзать - "__reg3" ?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 28.05.2016, 16:03
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
похоже это творчество декомпилятора)

Старый 28.05.2016, 16:57
Alexey25 вне форума Посмотреть профиль Отправить личное сообщение для Alexey25 Найти все сообщения от Alexey25
  № 4  
Ответить с цитированием
Alexey25

Регистрация: Mar 2016
Сообщений: 34
Раньше пользовался декомпилятором, а привычка использовать переменные таким образом осталась.

Добавлено через 42 минуты
Получилось, но при перемещении сцены снаряды появляются не там где надо, стоит только перемещение сцены убрать и все работает. Без перемещение сцены никак не обойтись. Кто что посоветует? Был создан новый мувиклип под названием fire. Он находится около дула пушки и отвечает за создания пуль. Вот код:
Код AS1/AS2:
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.
Старый 28.05.2016, 20:16
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Цитата:
Раньше пользовался декомпилятором, а привычка использовать переменные таким образом осталась.
Писали бы тогда на ассемблере... Прямая адресация памяти, регистры - романтика
Имён переменных вобоще не надо

Ксательно же вашего куска кода.... Тут надо всё в целом смотреть. Исходник выкладывайте...
Может у кого и возникнет желание порыться...
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 28.05.2016, 20:47
Alexey25 вне форума Посмотреть профиль Отправить личное сообщение для Alexey25 Найти все сообщения от Alexey25
  № 6  
Ответить с цитированием
Alexey25

Регистрация: Mar 2016
Сообщений: 34
Мне так удобнее называть переменные, не нужно каждый раз придумывать новое название для переменной. Просто поставил цифру в конце переменной и все уже новая переменная.

Старый 28.05.2016, 21:46
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 7  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Alexey25 Посмотреть сообщение
Мне так удобнее называть переменные, не нужно каждый раз придумывать новое название для переменной. Просто поставил цифру в конце переменной и все уже новая переменная.
Действительно. Что за дураки вообще придумали давать переменным правильные названия. Так же намного интереснее)) написал какую-то чушь с цифрой, через месяц посмотрел на свое творчество, и полдня ломал голову за что каждая из них отвечает Но зато сэкономил время на придумывании нормальных названий)

Но только как-то не по фенг шую, ang, angle, xdiff, ydiff тоже надо переименовать во что-то типа __reg5, __reg6 и т.д. Чтобы все было в одном стиле
__________________
Ко мне можно и нужно обращаться на ты)

Старый 28.05.2016, 21:55
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 8  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
тож заметил двойные стандарты

Старый 28.05.2016, 22:00
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 9  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Цитата:
Сообщение от Alexey25 Посмотреть сообщение
Мне так удобнее называть переменные, не нужно каждый раз придумывать новое название для переменной. Просто поставил цифру в конце переменной и все уже новая переменная.
Ну тогда уж массив хотя бы....

Код AS1/AS2:
var __:array = new Array()
 
__[124] = "HelloWorld"
__[38475683475] = 1
__[38475683476] = -1
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 29.05.2016, 11:21
Alexey25 вне форума Посмотреть профиль Отправить личное сообщение для Alexey25 Найти все сообщения от Alexey25
  № 10  
Ответить с цитированием
Alexey25

Регистрация: Mar 2016
Сообщений: 34
А вам что всем есть дело как я пишу? Это дело каждого. Для меня главное, чтобы не глючило и не тормозила. А если все нормально работает то и не стоит заморачиваться как писать переменные. Есть игры написанные на flash которые возможно правильно написаны и они довольно крутые но очень сильно тормозят и играть невозможно. Да и еще dark256 вы чушь написали.

Проблему я решил надо было просто добавить следующие

Код AS1/AS2:
        tank.gun.localToGlobal(__reg4);
        //Новою функцию которую я добавил
	globalToLocal(__reg4);


Последний раз редактировалось Alexey25; 29.05.2016 в 12:02.
Создать новую тему Ответ Часовой пояс GMT +4, время: 21:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 21:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.