![]() |
getTimer надо на 1000 делить.
|
Во спасибо, так работает, вся проблема была в типе переменной _speed, надо было поменять на Number). Однако как тогда мне рассчитать движение по диагонали?
Код AS3:
Код AS3:
Код AS3:
|
а так?
Код AS3:
|
Неа. тоже самое
|
Что значит "объект неправильно движется по диагонали"?
|
Объект движется в нескольких направлениях, в том числе и по диагонали. Если же _speed используется для перемещений, вверх, вниз, влево, вправо, то speedDiag просчитывает по формуле движение вверх-влево, вверх-вправо и т.д. Но получается так, что по формуле получается неправильный результат и если к примеру взять квадрат и идти из угол в угол, он не попадет в противоположный угол. В этом и ошибка, хотя должен, потому что скорость по диагоноли и скорость обычная должны быть равны
|
обычно во всяких физ движках и других либах работающих с положением и передвижением объекта в нескольких осях скорость задается не скалярной величиной , а вектором.
для ваших целей вполне себе подойдет какой-нибудь Point. при этом, обычно скаляром задается длина этого вектора, а по осям раскладывается каждое приращение (т.е. скорость по каждой из осей) через длину вектора и угол (все методы у поинта есть). при этом при любом значении угла (направления движения) итоговое значение перемещения объекта в единицу времени остается константным Добавлено через 40 секунд п.с. Тригонометрия |
Может я вас неправильно понял, но запустите этот код. Квадрат идет идеально из угла в угол.
Код AS3:
|
callme Спасибо за помощь) Решил эту проблему, посредством деления квадрата скорости на 4. И как выяснялось - теперь движется объект правильно во всех направлениях)
|
| Часовой пояс GMT +4, время: 21:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.