Главная страница
    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.039 c
1-1106124097
Denmin
2005-01-19 11:41
2005.01.30
Нужна финкция поиска и определения позиции пробела в предложении.


14-1105438926
NewDelpher
2005-01-11 13:22
2005.01.30
генератор 3D-моделей людей


1-1106163851
Shamansky
2005-01-19 22:44
2005.01.30
Html страницы в Delphi


3-1103790800
Otari
2004-12-23 11:33
2005.01.30
Помощь, Как сделать фильтр с 2 словами


8-1098107144
igsi
2004-10-18 17:45
2005.01.30
Цикличное воспоизведение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский