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

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

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

Регистрация: Jun 2016
Сообщений: 8
Attention Поворот

Здравствуйте!

Есть игра.. в игре есть персонаж, который двигается по клику мышки (куда кликнуть курсором, туда он и "пойдет"). Проблема в том, что персонаж "летает", а не ходит.
Нужно как-то сделать так, чтобы персонаж поворачивался под нужным углом (в какую сторону, так и поворачивался).
С рисунком не проблема, всё уже есть..

Не подскажите, как сделать? Нужно сделать так, чтобы персонаж поворачивался в ту сторону, куда "идёт" (код требуется, графика есть).
AS 2.0

Заранее всем спасибо!

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

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

Код AS1/AS2:
		var yKat = _ymouse - pers._y
		var xKat = _xmouse - pers._x
		var angle = Math.atan2( yKat ,xKat  ) + Math.PI
 
		pers._rotation = angle*180/Math.PI
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 12.06.2016, 20:59
crocodilecc вне форума Посмотреть профиль Отправить личное сообщение для crocodilecc Найти все сообщения от crocodilecc
  № 3  
Ответить с цитированием
crocodilecc

Регистрация: Jun 2016
Сообщений: 8
Цитата:
Сообщение от dark256 Посмотреть сообщение
Есть две точки, есть тригонометрические функции и у перса есть _rotation...
Не наблюдаю проблемы

Код AS1/AS2:
		var yKat = _ymouse - pers._y
		var xKat = _xmouse - pers._x
		var angle = Math.atan2( yKat ,xKat  ) + Math.PI
 
		pers._rotation = angle*180/Math.PI
Спасибо! А можно поподробнее про _rotation у перса и сам код?
Мой персонаж сейчас стоит прямо, "видов с другой стороны" в него не заложено, потому что я не совсем понимаю, как так сделать.

p.sЯ просто достаточно плох в AS, поэтому такие нелепые вопросы. Буду благодарен)
p.p.s У меня по вашему коду что-то заработало, но не совсем так. Персонаж то пропадает, то просто переворачивается на 360*

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

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

onMouseDown (Mouse.onMouseDown event listener)
onMouseDown = function() {}

Notified when the mouse is pressed. To use the onMouseDown listener, you must create a listener object. You can then define a function for onMouseDown and use addListener() to register the listener with the Mouse object, as shown in the following code:

Код AS1/AS2:
var someListener:Object = new Object();
someListener.onMouseDown = function () { 
      // поворачиваем перса
};
Mouse.addListener(someListener);
"поподробнее про _rotation" - хм.. Это угол поворота клипа......
Если у вас вид сверху - то этим все сказано. Если изометрии или не знаю что там и как - то тогда сказать пока и нечего
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 12.06.2016, 21:36
crocodilecc вне форума Посмотреть профиль Отправить личное сообщение для crocodilecc Найти все сообщения от crocodilecc
  № 5  
Ответить с цитированием
crocodilecc

Регистрация: Jun 2016
Сообщений: 8
Цитата:
Сообщение от dark256 Посмотреть сообщение
_ymouse - координата мыши.
Переделайте получение координат и рассчет угла на:

onMouseDown (Mouse.onMouseDown event listener)
onMouseDown = function() {}

Notified when the mouse is pressed. To use the onMouseDown listener, you must create a listener object. You can then define a function for onMouseDown and use addListener() to register the listener with the Mouse object, as shown in the following code:

Код AS1/AS2:
var someListener:Object = new Object();
someListener.onMouseDown = function () { 
      // поворачиваем перса
};
Mouse.addListener(someListener);
"поподробнее про _rotation" - хм.. Это угол поворота клипа......
Если у вас вид сверху - то этим все сказано. Если изометрии или не знаю что там и как - то тогда сказать пока и нечего
Спасибо! Постараюсь всё сделать.



Добавлено через 5 часов 41 минуту
Цитата:
Сообщение от dark256 Посмотреть сообщение
_ymouse - координата мыши.
Переделайте получение координат и рассчет угла на:

onMouseDown (Mouse.onMouseDown event listener)
onMouseDown = function() {}

Notified when the mouse is pressed. To use the onMouseDown listener, you must create a listener object. You can then define a function for onMouseDown and use addListener() to register the listener with the Mouse object, as shown in the following code:

Код AS1/AS2:
var someListener:Object = new Object();
someListener.onMouseDown = function () { 
      // поворачиваем перса
};
Mouse.addListener(someListener);
"поподробнее про _rotation" - хм.. Это угол поворота клипа......
Если у вас вид сверху - то этим все сказано. Если изометрии или не знаю что там и как - то тогда сказать пока и нечего
У меня есть готовый пример, однако он на AS 3.0... там в самом персонаже 16 кадров, в каждом из которых он повернут с разного угла.
Про изометрию во Flash особо не знаю, к сожалению, но движение персонажей хотелось бы сделать, потому что весь проект практически готов..


Последний раз редактировалось crocodilecc; 13.06.2016 в 03:20.
Старый 13.06.2016, 09:10
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Угол вы вычислили. Делите на 16, округляете и получаете нужный фрэйм.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Регистрация: Jun 2016
Сообщений: 8
Цитата:
Сообщение от dark256 Посмотреть сообщение
Угол вы вычислили. Делите на 16, округляете и получаете нужный фрэйм.
Скажите, а реально каким-то образом сделать, чтобы на каждую сторону (для поворота 360) была своя картинка?

В примере для AS 3.0 в коде задано 8 различных направлений (east, south-east ...), а в самом персонаже 16 кадров. В действии персонаж может поворачиваться на все 360*, используя эти 16 кадров. Интересует, возможно ли как-то таким же образом осуществить это на AS 2.0 ?

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

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

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

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

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


 


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


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