Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
3-1103872708
Mid
2004-12-24 10:18
2005.01.30
Проблема с кирилицей в QReport


1-1105532725
rolex
2005-01-12 15:25
2005.01.30
Как синхронизировать прокрутку двух Listbox ов???


1-1105652802
Gear
2005-01-14 00:46
2005.01.30
100% загрузка CPU бесконечным циклом в потоке.


1-1106035263
Алексей34
2005-01-18 11:01
2005.01.30
TDBGrid и индекс выбранное строки


14-1105614843
Ilya___
2005-01-13 14:14
2005.01.30
Подскажите, где можно взять библиотеку FastDib для Делфи 7.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский