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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

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

Регистрация: May 2004
Сообщений: 11
По умолчанию Движение относительно курсора

Приветствую.
Делаю я значит так.
Цитата:
y = 123._y-_ymouse;
x = 123._x-_xmouse;
angleA = Math.atan2(y, x);
degrees = angleA/(Math.pi/180);
setProperty("123", _rotation, degrees);
123 соответственно название клипа.
Объект крутится относительно мыши, как теперь сделать, чтобы он ходил тоже относительно нее.
Т.е. Нажимаю я вперед и объект идте не вверх, а к мыши. Назд от нее и соответственно вправо и влево.
Только в поиск меня не посылаейте, я тем уже был

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

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Код:
posX = mc._x;
posY = mc._y;
this.onMouseDown = function(){
	posX = _xmouse;
	posY = _ymouse;
}
this.onEnterFrame = function(){
y = mc._y -_ymouse;
x = mc._x -_xmouse;
angleA = Math.atan2(y, x);
degrees = angleA/(Math.pi/180);
mc._rotation = degrees;
mc._x-=(mc._x-posX)/10;
mc._y-=(mc._y-posY)/10;
}
Не надо давать клипам имена, состоящие из цифр.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 14.06.2004, 20:28
Килька вне форума Посмотреть профиль Отправить личное сообщение для Килька Найти все сообщения от Килька
  № 3  
Килька

Регистрация: May 2004
Сообщений: 11
Не выходит что-то. Может где не там пишу.
Значит создаю я клип - player.
В этом клипе помещен еще один клип - play (обзываю его как в коде - mc)
Пишу далее твой код. Проверяю, все крутится, как надо, а как теперь сделать, чтобы ходил? Куда код ходьбы помещать и может быть он какой-нибудь не такой. Я делаю так
Код:
onClipEvent (enterFrame) {
	if (Key.isDown(87)) {
		_y -= 3;
	}
Ну и другие кнопки.
Все равно player идет не относительно мыши, а просто вверх, вниз, вправо и влево.
Кто подскажет, может для этого по-другому надо програмить ходьбу?

Старый 14.06.2004, 20:33
Килька вне форума Посмотреть профиль Отправить личное сообщение для Килька Найти все сообщения от Килька
  № 4  
Килька

Регистрация: May 2004
Сообщений: 11
Вот блин
Еще раз посмотрел код.
Sergwizard, ты меня неправильно понял. Да и я сразу че-то не догнал. Мне надо, чтобы не при нажатии левой кнопки мыши объект перемещался туда, а чтобы он двигался относительно курсора. Например нажимаю я на кнопку вперед и обект идет в сторону мыши. Т.е. можно ли мистему координат поменять. Вначале я уже писал, как обект поворачиваю, а можно ли вместе с ним координаты повернуть?

Старый 14.06.2004, 22:06
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 5  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
Систему координат конечно можно повернуть, засунув двигаемый мувик внутрь вращаемого. Но тогда получатсья неприятный эфекты при вращении (не относительно центра вращение будет)
Так что лучше не парится и при движении вперед смещать в зависимости от угла:
this._x += Math.cos(this.rotation/180*Math.pi);
this._y += Math.sin(this.rotation/180*Math.pi);

Старый 14.06.2004, 22:56
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
не понятно, зачем надо крутить систему координат - двигай свой мув в сторону мыши, как sergwizard написал, но только по нажатию клавиш
Вложения
Тип файла: zip dirmove.zip (5.4 Кб, 168 просмотров)

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

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Что-то я тебя не пойму. Что такое "кнопка вперед"? При чем здесь Key(87)? Насколько я помню, это буква W. Ну, если ты так хочешь, то - пожалуйста. Но, мне кажется, что второй вариант в приаттаченом зипе – более интересный и функциональный.
Вложения
Тип файла: zip 4килька2.zip (6.3 Кб, 157 просмотров)
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

Старый 15.06.2004, 00:42
Килька вне форума Посмотреть профиль Отправить личное сообщение для Килька Найти все сообщения от Килька
  № 8  
Килька

Регистрация: May 2004
Сообщений: 11
silin, пасиба большое Вправо, влево постараюсь сам догнать.

sergwizard, у меня твой архив не распаковывается.

Старый 15.06.2004, 01:48
Килька вне форума Посмотреть профиль Отправить личное сообщение для Килька Найти все сообщения от Килька
  № 9  
Килька

Регистрация: May 2004
Сообщений: 11
Вот блин. Он убыстряется и умедляется относительно того на каком расстоянии от него курсор, а нужно, чтобы все двигалось на 1px. Вот поэтому я и спрашивал, как систему координат можно поменять. Или по-другому пожно сделать, еще как?
Заранее спасибо.

Старый 15.06.2004, 04:35
sergwizard вне форума Посмотреть профиль Отправить личное сообщение для sergwizard Посетить домашнюю страницу sergwizard Найти все сообщения от sergwizard
  № 10  
sergwizard
 
Аватар для sergwizard

Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
Если нужно равномерное движение, то код такой:
Код:
this.onEnterFrame = function(){
	var speed = 2;
	y = mc._y -_ymouse;
	x = mc._x -_xmouse;
	mc._rotation = Math.atan2(y, x)/(Math.PI/180)
		if(Key.isDown(38)){
		mc._x -= Math.cos(Math.atan2(y, x)) * speed;
		mc._y -= Math.sin(Math.atan2(y, x)) * speed;
		}
		if(Key.isDown(40)){
		mc._x += Math.cos(Math.atan2(y, x)) * speed;
		mc._y += Math.sin(Math.atan2(y, x)) * speed;
		}
}
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный.
(S.Wizard)

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

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

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


 


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


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