Вращение изображения

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Вращение изображения

Сообщение Александр_ФФ » 22.09.2009 (Вт) 11:07

Здравствуйте!
В процессе переделки проги "stw" (войны в космосе http://bbs.vbstreets.ru/viewforum.php?f=15&t=40455) пришлось искать код для вращения изображения. Код, который я нашёл в "кирпичах", довольно медленный, и на мой взгляд там много лишнего. Помучавшись, написал свой код, который здесь и выкладываю. Так как объект (корабль) не прямоугольный, пришлось рисовать к нему и маску (пока напрямую нужные пиксели быстро высчитать не могу). Задействованы только WinApi функции. Скорость на 1400МГц получается 62 Fps для исходника, и 180 fps для exe.
rotate_m.rar


Можно ли закинуть это в "кирпичи" ?
У вас нет доступа для просмотра вложений в этом сообщении.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Вращение изображения

Сообщение Antonariy » 22.09.2009 (Вт) 11:22

Если добавишь мод_gdi.bas в исходники, то можно.
Лучший способ понять что-то самому — объяснить это другому.

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: Вращение изображения

Сообщение Александр_ФФ » 22.09.2009 (Вт) 12:11

Блин, как я мог забыть ! :(
Весь архив заново:
rotate.rar
У вас нет доступа для просмотра вложений в этом сообщении.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Вращение изображения

Сообщение Debugger » 22.09.2009 (Вт) 16:19

Можно "повернуть" все изображения при загрузке игры. Памяти будет кушать больше (не принципиально, ИМХО, мы же не мега-игру пишем), но в игре не будет пересчетов, что повысит скорость.

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: Вращение изображения

Сообщение Александр_ФФ » 22.09.2009 (Вт) 16:32

К сожалению, нельзя. уже думал так и пытался пробовать. Слишком много памяти съедает.
Посчитал: 108х108 картинка (это для маленького корабля. для большого - больше :( )
4 байта на пиксель
180 градусов (360 через 2)
* 2 для маски
* 2 для второго корабля
итого 33,6 Мб - только для рисунков маленьких кораблей. многовато. Уж лучше так. в игру уже внедрил, вроде не тормозит ;)

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Вращение изображения

Сообщение Debugger » 22.09.2009 (Вт) 17:13

Считаешь правильно. Но... Как ты думаешь, как выживали 2-мерные стратегии, где куча юнитов с кучей анимаций на компах, где 128 М оперативки (кстати, она тут не при чем, вроде бы?)

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: Вращение изображения

Сообщение Александр_ФФ » 22.09.2009 (Вт) 17:25

[оффтоп] Эх, ностальгия по Warcraft II 8) 8) ыыыы!

там точно меньше 180 отдельных изображеий на юнита.
Я всё же буду поворачивать в процессе игры, пока не тормозит. кстати, какие у вас fps? Может потом до DirectX доберусь ;)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Вращение изображения

Сообщение iGrok » 22.09.2009 (Вт) 18:15

Александр_ФФ писал(а):там точно меньше 180 отдельных изображеий на юнита.

Угу. Раз этак в 45. ))
С учётом анимации, конечно, поменьше. Но всё равно раз в 15-то точно. )
label:
cli
jmp label


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList