![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изометрия
Вась-Вась © (2004-12-01 12:34:00)А вот у меня к вам такой вопрос: если у меня спрайт в высоту или ширину больше, чем клетка карты, то как его рисовать и обрабатывать - разбить на несколько спрайтов или что-нибудь ещё?
NikeOLD (2004-12-02 13:59:00) [1]Тут можно фокус проделать, учи английский и см. ссылку ниже:
http://www.reinerstileset.4players.de:1059/read.htm#f
Весь фокус в том, что размеры ВСЕХ спрайтов кратны 32. Т.е 32х32, 64х64, 96х96 и т.д. В этом слкучае, если базовый спрайт карты 32х32, а спрайт 64х64, то банальное смещение на 32 пикселя, а спрайт т.о. займет не одну, а четыре клетки карты.
TButton (2004-12-01 16:55:00) [2]задай смещение по X и Y для спрайта
чтоб обозначить его центр
т.е.
Sprite.Width=100;
Sprite.Height=200;
Sprite.Center.X=50; // относительно верхнего
Sprite.Center.Y=150; // левого угла спрайта
...
tile.X // координаты левого верхнего
tile.Y // угла клетки карты
tile.Width // ширина клетки
tile.Height // высота
...
dx:=tile.X+(tile.Width div 2)-Sprite.Center.X
dy:=tile.Y+(tile.Height div 2)-Sprite.Center.Y
...
мож где в последнем фрагменте со знаками напутал, но вроде б так
...
MeF88 (2004-12-01 14:07:00) [3]Зачем? Так и рисуй.
http://www.mirgames.ru/article/gamedev/aigame- смотри скрин в конце.