Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как узнать скорость? (http://www.flasher.ru/forum/showthread.php?t=148820)

Sintesis 12.01.2011 03:48

Как узнать скорость?
 
Кто подскажет как узнать скорость движения объекта?
Движение происходит по событию таймера, по одной оси

kseniya 12.01.2011 08:47

скорость = расстояние/время =)

Sintesis 12.01.2011 15:18

формулу я знаю, но сам процесс в AS3 не пойму как засекать каждую секунду пройденное расстояние.
Расстояние в пикселах а лучше в единичных векторах, оно не известно. Нужно засечь сколько в секунду проходит объект, а потом скорость вычислить

Nemez 12.01.2011 15:36

Можно в дополнение к таймеру, в соответствии с которым движется объект, сделать еше один таймер и каждую секунду снимать координаты.

zuxul 12.01.2011 15:40

Измеряйте расстояние в чем хотите.
Раз движение происходит по событию таймера, причем, там наверное делается что-то вроде этого:
Код AS3:

movedObject.x += 5;

, тогда скорость будет такая:
Код AS3:

private function timerEventListener(evt:TimerEvent):void {
  const delta:Number = 5;
  movedObject.x += delta;
  var t:Timer = e.target as Timer;
  var speed:Number = delta / t.delay; // скорость тут будет в пикселях в миллисекунду...
}

Вообщем, физика 7 или 8 класс...

Sintesis 12.01.2011 15:48

нет, там есть трения, торможения, разгон...

labuza 12.01.2011 15:50

Можно по такому алгоритму попробовать:
1. Ищем стандартную функцию определения координат мувика который двигается заносим в переменную (допустим coord)
2. С помощью стандартной функцией работы с системным временем делаем переменную которая будет содержать секунды (допустим sec)
3. Создаем условие проверки изменения значения sec
3. При изменении sec на 1 (если нужна скорость с точностью в секундах) заносим значение coord в переменную (допустим sravnenie)
4. вычитаем значение coord из sravnenie или наоборот (нет разницы)
5. берем по модулю полученное значение и имеем пройденные координаты в секунду.
Это для поведения по одной оси. Иначе задача усложняется вдвое.

Прикинул в уме. По идее должно сработать.
Успехов!

Sintesis 12.01.2011 15:57

Ну так вот я и хочу узнать как снимать координаты каждую секунду и присваивать их переменной?

zuxul 12.01.2011 16:18

Timer + DisplayObject#x,y

goodguy 12.01.2011 17:08

Цитата:

Кто подскажет как узнать скорость движения объекта?
Движение происходит по событию таймера, по одной оси
Не совсем понятен вопрос.
Очевидно же, что к положению объекта добавляется некоторое количество пикселей. Это и есть скорость. В чем проблема то?


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

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