Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопросы по DelphiX [Delphi, Windows]


Grouzd[E]v ©   (2004-07-17 10:59:00) 

Здравствуйте, вел.и.уж. Мастера!
Я уже заканчиваю свой первый проект (МОЯ ИГРИЩЩА!извините, не удержался) и столкнулся с такой проблемой (DelphiX) :
1) При анимации летящих патронов больше половины игнорируют Collision и "пролетают"
2) Как узнать у анимированного спрайта закончилась-ли анимация и можно-ли удалить спрайт (взрывы) - ну не подбирать-же вручную, к тому же у меня спрайтов много.
3) Туго со шрифтами: стандартные плохонькие, а чужие совать стыдно, unrespect да и вообще побьют. Как сделат свои? Resource Workshop? А как?


Megabyte-CeerCop   (2004-07-28 06:03:00) [1]

Для полноценной анимации спрайтов в DelphiX конечно возможностей маловато, но после небольшой доработки это возможно (Киркоп сделан полностью в ДИксСпритеЕнгине и бегает неплохо). Collision я кстати некогда вообще не использовал, это слишком некрасиво, взрывать снаряда при малейшем касании с героем. Нужно пропускать внутрь героя хотябы до половины.
Мой совет всем:
If ((abs (Xhero - Xbomb)) < 20) and
((abs (Yhero - Ybomb)) < 10) Then B-o-o-o-m!
// тоесть если координаты X различаются не более чем на 20, и координаты Y не более чем на 10 то спрайты эть столкнулись (допусками можно варьировать в зависимости от размеров спрайтов)


А ПиксельЦчекк - это глюк. (Не в билиярд иргам).


lyeh   (2004-07-28 05:06:00) [2]

2 Grouzd[E]v
> МОЯ ИГРИЩЩА!

ИГРИЩЩА будет тогда, когда будешь хотя бы ПикселЧек "вручную" делать. И вообще, реализация спрайтов в DelphiX - ну смешно просто...


OSokin   (2004-07-26 21:45:00) [3]

Попиксельно функцией типа for x:=0 to width do for y:=0 to height do result.pixels[x,y]:=scr.pixels[width-x,height-y];


Cash   (2004-07-20 13:48:00) [4]

1) При создании анимированного спрайта (или там, где надо) PixelCheck:=true; надо вызывать.


grouzd[E]v   (2004-07-19 16:31:00) [5]

Неа. Вся фишка в том, что и игрок и враги имеют СОВЕРШЕННО ОДИНАКОВОЕ ОРУЖИЕ а перерисовывать каждый вид "ручками" плохо - оружия должно быть много. Кроме того я говорил не о перевороте спрайта а о перевороте картинки спрайта


Falcon(TFSoft)   (2004-07-19 14:37:00) [6]

Мне кажется неплох будет вариант, с использованием прирощений по осям, тоесть.
Спрайт двигался со скоростями dx dy по соответствующим осям, после столкновения меняеш знаки на противоположные..

Хотя этот приём не охватывает все варианты ...


grouzd[E]v   (2004-07-19 14:29:00) [7]

Еще один вопрос: как можно "отразить" sprite (то бишь где было лево станет право) если использовать angle то изображение получится "вверх ногами".


grouzd[E]v   (2004-07-18 14:45:00) [8]

Falcon(TFSoft) :
1) странно, я вроде и с pixelcheck и в true и в false эксперементировал, ну да пес сним, спасибо!
2)
3) если кому надо - trial font creator program 4 тут (классная вещь для фонтов): http://www.high-logic.com/fcp4setup.exe, но весит, зараза, 4,5mb и работает только месяц

ps скоро собираюс выкинуть то что получается - скроллер сбоку с гм.. нестандартным управлением...


Falcon(TFSoft)   (2004-07-18 06:44:00) [9]

На счёт анимированных пуль, то я с этим тоже сталкивался... Сделал специально отдельную форму, с одним анимированным спрайтом и простым, которым управлял с клавиатуры. После чего понял, что колюжен не происходит при Sprite.AnimPos<>Sprite.AnimStart. Другими словами колюжен происходит лиш в первый кадр анимации, а дальше нет.
Но всё это будет не работать лиш при включённом PixelCheck
Если его отключить, то колюжен с анимированным спрайтом будет происходит при любой позиици анимации.

К стате на счёт удаления спрайта после взрыва - в процедуре OnMove проверяй если AnimPos=AnimCount then Self.Dead

Это сугубо моё мнение...


OSokin   (2004-07-17 21:41:00) [10]

Точно!


MANGOL   (2004-07-17 20:48:00) [11]

а может слишком большое смещение у пулек и они насквозь пролетают, так шта и колизин правильно работает и в то же время ничё не работает..


OSokin   (2004-07-17 20:27:00) [12]

Про колижн: а ты уверен, что они действительно соприкасаются?


\m/   (2004-07-17 19:47:00) [13]

так сделай 36 файлов


Красный молоток   (2004-07-17 19:16:00) [14]

1)А у тебе случаем не PixelCheck столкновение?
3)хы


Grouzd[E]v   (2004-07-17 17:05:00) [15]

to \m/: а в моем можно было создавать .fnt, но у меня в файле только один символ получался, а другой создаваться отказывается

to Красный молоток:
1) он слишком длинный, но вообще я сам допер, что можно использовать 2 класса - 1-й для картинки с анимацией, а 2-й для collision'а, но что-то больно муторно получается, вот и хотел узнать как можно проще
2) пасиба
3) хе-хе, значит гугль говоришь? да искал я там, а так думал, может что стандартное имеется


Красный молоток   (2004-07-17 12:14:00) [16]

1. Код. Надо код показывать
2. Смотри ImageSpirte.Anim<xxx>
3. use google, luck :)


  (2004-07-17 11:11:00) [17]

Удалено модератором


Наверх

Титульная страница Поиск, карта сайта Написать письмо