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

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

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

Регистрация: Jan 2012
Сообщений: 836
По умолчанию Рандомное движение объекта

Код AS3:
 public function TimerAIMovet()
		{
            _timerai = new Timer(500);
			_timerai.addEventListener("timer", timerai);
            _timerai.start();
        }
	    public function timerai(event:TimerEvent):void
		{
			ai.x += speed;
 
		}
Как мне рандомно выбирать направление объекта ai? С каждой 0,5 секунды, объект перемещается в сторону, как сделать так, чтобы он сдвигался влево/вправо/вверх/вниз рандомно?)) Буду очень благодарен)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
http://flasher.ru/forum/showthread.p...1%EA%E0&page=2
__________________
Reality.getBounds(this);

Старый 14.03.2014, 19:49
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 3  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Это с использованием библиотек гриншок, а без нее никак?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
это не такая простая задача, как может показаться вначале.
Я как-то делал для рандомного полета вертолета в игре такую схему, как здесь находится вод заголовком wander.
Вот тут еще есть неплохое объяснение как такое делается
и у рокетмэна

Еще Keith Peters в книжке Advanced Actionscript 3 Animation довольно хорошо эту тему раскрывал, с примерами и исходниками
Изображения
 

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
чтобы он сдвигался влево/вправо/вверх/вниз рандомно?
Если только так, только влево, только вниз и тп — генерите рандомно число от 0 до 4 и по нему совершайте движение.
__________________
Reality.getBounds(this);

Старый 14.03.2014, 21:18
Carbon вне форума Посмотреть профиль Отправить личное сообщение для Carbon Найти все сообщения от Carbon
  № 6  
Ответить с цитированием
Carbon

Регистрация: Mar 2014
Адрес: неадекват
Сообщений: 10
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Если только так, только влево, только вниз и тп — генерите рандомно число от 0 до 4 и по нему совершайте движение.
мне кажется и там можно выводить путь рандумом) присваиваем х, у и т.д. число определенное и спомощью условия после рандума вылавливаем направление, а там выставлять от 50 до 100 к примеру... Чет типа того)))

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
мне кажется и там можно выводить путь рандумом) присваиваем х, у и т.д. число определенное и спомощью условия после рандума вылавливаем направление, а там выставлять от 50 до 100 к примеру... Чет типа того)))
Получится полная фигня)

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Можно так:
Начальное направление, пусть это будет случайное число.

Adobe Flash
Код AS3:
var dir:int = Math.round(Math.random()*360);
var nextDir = dir - (Math.round(Math.random()*90)-45);
А получать скорости для смены направления по градусу так.
Код AS3:
function getDirection(angle:int, speed:int):Object
{
  var hs:Number;
  var vs:Number;
  var proportionH:Number = Math.cos(angle*Math.PI/180);
  var proportionV:Number = Math.sin(angle*Math.PI/180);
  hs = proportionH * speed;
  vs = proportionV * speed;
  return { hspeed: hs, vspeed: vs };
}
При этом менять направление раз в какой-то промежуток времени, а не ежекадрово.

Правда при этом движение получится хаотичным, даже несмотря на ограничение в небольшом секторе угла 90 градусов.

Добавлено через 22 минуты
Даже не представляю, как реализовано передвижение в библиотеке зелёных носков.
Возможно, там типа ставились точки в случайном месте, через них проводились скруглённые пути...


Последний раз редактировалось ZackMercury; 15.03.2014 в 05:27.
Старый 15.03.2014, 11:06
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 9  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Даже не представляю, как реализовано передвижение в библиотеке зелёных носков.
Возможно, там типа ставились точки в случайном месте, через них проводились скруглённые пути...
Если ты про рыбок, то там же приведен код. Твинлайт там обычный — только для плавного ускорения и замедления при перемещении между точками и плавного поворота рыбки. Никаких скругленных путей там нет, все по прямой от точки к точке. После завершения перемещения (в обработчике onComplete) генерится новая рандомная точка и рыбка отправляется к ней. Видимость "скруглений" возникает из-за поворотов рыбки в направлении движения и последующего возвращения к горизонтальному положению.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Ааа, так вот, что нужно было ТС. От точки к точке?
Тогда нет ничего сложного. Реализуйте свой класс анимации.
Мы имеем текущее положение и конечное. Как реализовать промежуточные?
Если учили в школе систему координат, то найдите середину между точками. А нужно вам примерно положений столько, сколько выставлен FPS на сцене, умноженный на количество секунд, которые должна длиться анимация.

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

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

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


 


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


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