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

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

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

Регистрация: Jan 2009
Сообщений: 1
Question Поворот автомобиля

Привет.

Я начинающий в ActionScript. Поэтому прошу совета

Есть код:

Код AS1/AS2:
onClipEvent (load) {
	speed = 0.3;
	friction = 0.95;
	xspeed = 0;
	yspeed = 0;
}
onClipEvent (enterFrame) {
	if (Key.isDown(Key.UP)) {
		xspeed += speed;
	}
	if (Key.isDown(Key.DOWN)) {
		xspeed -= speed;
	}
	if (Key.isDown(Key.LEFT)) {
		_rotation -= speed / 2;
	}
	if (Key.isDown(Key.RIGHT)) {
		_rotation += speed / 2;
	}
	xspeed *= friction;
	yspeed *= friction;
	this._x += xspeed;
	this._y += yspeed;
}
Когда нажимаю кнопку влево или вправо, "машинка" просто вращается влево или вправо, подскажите, как сделать чтобы машинка поворачивала а не вращалась вокруг своей оси?

P.S Macromedia Flash 8
P.P.S Прошу не задавать глупых вопросов, типа "зачем оно тебе...", а помочь.

Старый 11.01.2009, 20:30
ImpassIve вне форума Посмотреть профиль Отправить личное сообщение для ImpassIve Найти все сообщения от ImpassIve
  № 2  
Ответить с цитированием
ImpassIve
 
Аватар для ImpassIve

Регистрация: Jan 2009
Адрес: Россия/М.О./Курилово
Сообщений: 7
На мой взгляд что-то типа того:
Код:
onClipEvent (load) {
	speed = 0;
	friction = 0.95;
	xspeed = 0;
	yspeed = 0;
}
onClipEvent (enterFrame) {
	if (Key.isDown(Key.UP)) {
		speed += 0.1;
	}
	if (Key.isDown(Key.DOWN)) {
		speed -= 0.1;
	}
	if (Key.isDown(Key.LEFT)) {
		_rotation -= speed/2;
	}
	if (Key.isDown(Key.RIGHT)) {
		_rotation += speed/2;
	}
	radiance = (_rotation/180)*Math.PI;
	xspeed = speed*Math.cos(radiance);
	yspeed = speed*Math.sin(radiance);
	xspeed *= friction;
	yspeed *= friction;
	this._x += xspeed;
	this._y += yspeed;
}
Добавлено через 5 минут
Примечание: в первоначальный вариант стоит ещё вставить ограничение maxspeed и при желании подредактировать кнопку "Тормоз" - чтобы она не запускала движение назад, а только останавливала. Если автомобиль едет не в ту сторону - или разверни его внутри клипа, или поменяй строчку "radiance = (_rotation/180)*Math.PI;" на "radiance = ((_rotation+A)/180)*Math.PI;", где A - нужный угол.


Последний раз редактировалось ImpassIve; 12.01.2009 в 16:14.
Старый 12.01.2009, 13:50
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
http://xitri.com/category/actionscript

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

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

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


 


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


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