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

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

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

Регистрация: Jan 2006
Сообщений: 7
По умолчанию управление объектом на сцене

около полутора лет не писал на ЭкшенСкрипте и вот столкнулся со следующей проблемой, достаточно глупой, но тем не менее застопорившей весь рабочий процесс
необходим объект на сцене который бы поворачивался при нажатии клавиш влево-вправо, и двигался с элементарным трением вперед.
итак код номер 1(написанный мною)
Код:
_root.roamer.cSpeed=5
_root.roamer.cFriction=0.7
_root.roamer.onEnterFrame=function(){
	
	
	if(Key.isDown(Key.LEFT)){
		dir-=5
	} else if(Key.isDown(Key.RIGHT)){
		dir+=5
	} else if(Key.isDown(Key.UP)){
		this.cSpeed=4
	}
	
	xIncr = Math.cos(dir*Math.PI/180)*this.cSpeed
	yIncr = Math.sin(dir*Math.PI/180)*this.cSpeed

	this._x-=xIncr
	this._y-=xIncr
	this._rotation=dir
	this.cSpeed*=this.cFriction
}
)

и соответсвенно код стыренный из Нета
Код:
onClipEvent (enterFrame) {
	if (Key.isDown(Key.UP)) {
		speed += 2;
	}
	if (Key.isDown(Key.DOWN)) {
		speed += -2;
	}
	if (Key.isDown(Key.RIGHT)) {
		dir += 15;
	}
	if (Key.isDown(Key.LEFT)) {
		dir += -15;
	}
	xspeed = Math.cos(dir*Math.PI/180)*speed;
	yspeed = Math.sin(dir*Math.PI/180)*speed;
	_x += xspeed;
	_y += yspeed;
	_rotation = dir;
}

причем при общем сходстве, мой код работает некорректно,
а использовать OnClipEvent как то стрёмно,
может ктонить ответит - отчего такое происходит и как лечиццо?

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

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
у вас dir не обьявлена нигде
__________________
"We Are The Champions My Friends!" Queen

Старый 23.01.2007, 15:06
kolotun вне форума Посмотреть профиль Отправить личное сообщение для kolotun Найти все сообщения от kolotun
  № 3  
Ответить с цитированием
kolotun

Регистрация: Jan 2006
Сообщений: 7
отследил в обоих вариантах через trace() - по дефолту - везде 0,

Старый 23.01.2007, 15:13
CorC вне форума Посмотреть профиль Отправить личное сообщение для CorC Найти все сообщения от CorC
  № 4  
Ответить с цитированием
CorC
 
Аватар для CorC

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Код:
_root.roamer.cSpeed = 5;
_root.roamer.cFriction = 0.7;
_root.roamer.dir = 0;
_root.roamer.onEnterFrame = function() {
	if (Key.isDown(Key.LEFT)) {
		this.dir -= 5;
	}
	if (Key.isDown(Key.RIGHT)) {
		this.dir += 5;
	}
	if (Key.isDown(Key.UP)) {
		this.cSpeed += 2;
	}
	if (Key.isDown(Key.DOWN)) {
		this.cSpeed -= 2;
	}
	xIncr = Math.cos(this.dir*Math.PI/180)*this.cSpeed;
	yIncr = Math.sin(this.dir*Math.PI/180)*this.cSpeed;
	trace(this.cSpeed);
	this._x -= xIncr;
	this._y -= yIncr;
	this._rotation = this.dir;
	this.cSpeed *= this.cFriction;
};
у меня так все ездит
Код:
	this._x-=xIncr
	this._y-=xIncr
может из-за этого?
__________________
"We Are The Champions My Friends!" Queen

Старый 23.01.2007, 15:19
kolotun вне форума Посмотреть профиль Отправить личное сообщение для kolotun Найти все сообщения от kolotun
  № 5  
Ответить с цитированием
kolotun

Регистрация: Jan 2006
Сообщений: 7
блин...точно!
око замылилось

а я уже грешу на потусторонние силы))

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

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

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


 


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


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