Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизДвижение спрайта по прямой, учитывая угол поворота. Найти похожие ветки
← →
Malefic © (2004-10-19 10:45) [0]Есть спрайт, он поворачивается на определенный угол. Как сделать движение по прямой, но так чтобы направление зависело от угла?
X := X + sin256(Angle) * (Speed/1000)*MoveCount;
Y := Y - cos256(Angle) * (Speed/1000)*MoveCount;
Так работало на DelphiX. Щас пишу на asphyre, она не знает функции sin и cos 256, угол обрабатывается коряво и спрайт движется непонятно как.
Вопрос: Как реализовать движение, что-то типо того, как было на delphiX.
ЗЫ. напишите формулу перехода от 256 градусной меры в 360 и обратно
← →
NikeOLD © (2004-10-19 13:00) [1]Посмотри исходники DelphiX
Насколько я помню в DelphiX всего лишь предварительный рассчет синусов косунусов. А 256 лишь для оптимизации быстродействия (на самом деле эти функции не используют ни одной тригонометрической операции).
← →
П7 (2004-10-19 14:32) [2]Ты чё, не можешь 360 градусный угол привести к 256 градусному? Это же деление и умножение...
> NikeOLD © (19.10.04 13:00) [1]
В идеале - не для оптимизации, а для "компьютерного" удобства - юзания byte переменных... Хотя 1 байт - это оптимальнее, чем 2, 4 и больше... (:
← →
NailMan © (2004-10-19 14:34) [3]Ну наверно забыть о каких-то левых sin256/cos256 и пользовать нормальные sin/cos и радианы вместо градусов соответственно. Скорости поубавится зато будет точный расчет.
---
WBR, NailMan aka 2:5020/3337.13
← →
П7 (2004-10-19 14:44) [4]
> NailMan © (19.10.04 14:34) [3]
Не, фигня всё это, такой точный расчёт никому не нужен, он просто не заметен будет, а иногда может дать жуткие артефакты. ):
Идеальный способ - это сгенерить всё заранее в массив, а затем брать оттуда нужные значения.
← →
NikeOLD © (2004-10-19 15:24) [5]
> Идеальный способ - это сгенерить всё заранее в массив, а
> затем брать оттуда нужные значения.
Именно это и сделано в DelphiX. Sin256 и Cos256 просто обращаются к соотвестсвующему индексу в массиве с заранее просчитанными начениями.
← →
NailMan © (2004-10-19 15:57) [6]П7
некошерно это все дискретность. sin/cos рулят, особенно если через 3Dnow.
Кста, что за артефакты?
---
WBR, NailMan aka 2:5020/3337.13
← →
П7 (2004-10-19 16:52) [7]Блин, написал пост, а он не запостился... Репост:
> NikeOLD © (19.10.04 15:24) [5]
Ну и в чём проблема с написанием своих аналогов этих функций?
> NailMan © (19.10.04 15:57) [6]
Артефакты очень забавные. При повороте (без антиалиасинга) на некоторые углы пиксели могут так расположиться, что картинка совершенно на себя не похожа. Углы сейчас уже не помню, давно не работа с DirectDraw. Можешь найти в сети пример, где-то я видел... (:
Нафиг нужны дроби при работе с DirectDraw? Это только лишник тормоза на постоянные конверчения...
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.053 c