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

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

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

Регистрация: Oct 2009
Сообщений: 174
По умолчанию движение объекта за мышью

Здравствуйте! подскажите пожалуйста как можно сделать, чтобы объект movieClip (человечек) поворачивался и двигался какбы к указателю мыши, т.е. мышью поворачивался, и двигался при нажатии на кнопку "вверх".?

Старый 26.02.2010, 17:24
sspy вне форума Посмотреть профиль Отправить личное сообщение для sspy Найти все сообщения от sspy
  № 2  
Ответить с цитированием
sspy

Регистрация: Feb 2010
Сообщений: 14
ну движение от кнопок легко отследить а вот чтоб поворачивался к мышке мне тоже очень интересно!)

Старый 26.02.2010, 18:38
ps_spectre вне форума Посмотреть профиль Отправить личное сообщение для ps_spectre Найти все сообщения от ps_spectre
  № 3  
Ответить с цитированием
ps_spectre
 
Аватар для ps_spectre

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
очень и очень просто.
тригонометрия.
конкретно: обратный тангенс. (син. arc tangent, inverse tangent, arc tan, arctangent)

p.s. уже была эта тема не раз на этом форуме, тем более, в прикрепленных темах ссылка на то, как сделать игру про астероиды.

Старый 26.02.2010, 22:27
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 4  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
извиняюсь конечно. но всёже продолжу эту тему раз уж создал. ну предположим, через передвижение мыши узнаём некоторый угол на который поворачивается объект. но далее надо двигать его вверх, но этот верх может быть уже вовсе не в верху а например внизу или ещё гденибудь. как с этим решить можно?

Старый 26.02.2010, 22:33
alikSmehoff вне форума Посмотреть профиль Отправить личное сообщение для alikSmehoff Найти все сообщения от alikSmehoff
  № 5  
Ответить с цитированием
alikSmehoff
 
Аватар для alikSmehoff

Регистрация: Oct 2009
Сообщений: 47
Поворот к мыши можно сделать например вот так:

Код AS3:
addEventListener(Event.ENTER_FRAME, rotateToMouse);
function rotateToMouse(event:Event){
	myClip.rotation = getAngle(mouseX, mouseY, myClip.x, myClip.y);
}
 
function getAngle(x1:Number, y1:Number, x2:Number, y2:Number):Number {
	var radians:Number = Math.atan2(y1-y2, x1-x2);
	return rad2deg(radians);
}
 
function rad2deg(rad:Number):Number {
	return rad * (180/Math.PI);
}

Старый 26.02.2010, 23:01
Cornford вне форума Посмотреть профиль Отправить личное сообщение для Cornford Найти все сообщения от Cornford
  № 6  
Ответить с цитированием
Cornford

Регистрация: Oct 2009
Сообщений: 174
ага, спасибо, работает хорошо, правда поворачивается он не к указателю мыши а кудато левее него ну тоесть порядка 90 градусов разница. но это не проблема.

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

блогер
Регистрация: Jan 2010
Адрес: Киев
Сообщений: 156
Записей в блоге: 4
Отправить сообщение для ps_spectre с помощью Skype™
Cornford, как это верх не верх, низ не низ?
Посмотрите на этом форуме, вверху есть ссылка на туториал, где рассказывается как сделать игру про астероиды. Там затрагиваются вопросы элементарной математики, которая может пригодится. Собственно, конкретно надо смотреть в сторону, что такое вектор.


если хочется чуть-чуть глубже копнуть, то в инете есть небольшая книженция (инглишь), где в доступной форме объясняются основы, называется:
Beginning Math and Physics for Game Programmers By Wendy Stahler

Старый 27.02.2010, 04:08
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Вот у Вас есть угол (получили через Math.atan2)
Тогда берем скорость и "поворачиваем" ее на этот угол.
Проще представить, если разложить скорость на 2 составляющих: вертикальную и горизонтальную.
За один кадр (допустим) мы должны пройти прямо вверх 10 пикселей.
Теперь, посмотрев на указатель мыши, мы понимаем, что "верх" относительно нашего персонажа уже не то же самое, что и "верх" относительно сцены.
Берем нашу скорость (10 пикселей за кадр) и умножаем ее на Math.sin(radians) - мы получим расстояние по вертикали, на которое надо сдвинуть нашего человечка за один кадр. А Math.cos(radians) даст нам путь по горизонтали. Здесь вертикаль и горизонталь - относительно сцены.

PS
Насчет этого:
Цитата:
правда поворачивается он не к указателю мыши а кудато левее него ну тоесть порядка 90 градусов разница
Изначально клип с человечком нарисуйте так, чтобы он смотрел вправо. Или прибавляйте 90 градусов - именно такая разница
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 27.02.2010 в 04:11.
Старый 27.02.2010, 12:45
sltt вне форума Посмотреть профиль Отправить личное сообщение для sltt Найти все сообщения от sltt
  № 9  
Ответить с цитированием
sltt

Регистрация: Jan 2010
Сообщений: 26
Тут есть пример с исходником http://www.flashkit.com/movies/Scrip...2672/index.php

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

Теги
движение , мышь

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

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


 


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


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