Главная страница
    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.05 c
14-1105218443
Фагот
2005-01-09 00:07
2005.01.30
ПО для смартфонов


1-1106120498
Lera
2005-01-19 10:41
2005.01.30
Переполнение памяти.


4-1102678436
Bes
2004-12-10 14:33
2005.01.30
Отображение формы


14-1105434976
ms
2005-01-11 12:16
2005.01.30
Скажите, можно ли зарабатывать на показе баннеров на своём сайте.


1-1106213726
Oyster
2005-01-20 12:35
2005.01.30
Стандартные папки Windows





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