Как сделать толковый курсор в шутере от first face
|
|
arone][ | Дата: Пятница, 20.02.2009, 23:41 | Сообщение # 1 |
ламер
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Товарищи прогеры !!! если не сложно помогите у меня маленькая загвоздочка!!! ; --------------------------- Работаю над шутером от первого лица, таким слабеньким (чтобы освоить основные принципы работы в blitze) Но вот вроде всё делаю как надо карту тестовую в CS4 создал и загрузил, создал pivot ,создал камеру и сделал парент к pivoty, загрузил mesh-оружия и привязал его к pivoty(так что его часть видна спериди, как в обычных шутерах), сделал колайд pivota со стенками, вот и решил сделать cursor --- сперва пытался через парент заставить загруженный спрайт-курсор двигаться как надо, соеденив его с мышкой . но тот упорно сопротивлялся(сначала вроде работает , а потом начнёш резко разворачиваться + мышкой дёргать = курсор скакнул по Z в даль) и я пытаясь исправить баг испортил рабочий(более или менее вариант). Начал лазать по чужим samplam --> в итоге у меня сейчас код с двумя вариантами (1- я могу двигать мышь тока по оси X) ,a другой - я нормально двигаю мышью-камерой(до 90 град. вверх и -90) но только стоит мне нажать вперёд ,а мышь чуть выше серёдки так я так и полетел в воздухе под этим градусом... Летаешь как во FreeLooke... ;+++++++++ я понимаю мне нужно что-то типа -- я хожу изменяя позиции pivota( у меня почти всё к нему привязано), а камеру с мышью и с mesh-am оружия сделать отдельно (толи не парентом к нему) , то ли что ??? толи как-то изменить ф-цию mouselook(etc) Code function mouselook(etc)
mxspd#=MouseXSpeed()*0.25 myspd#=MouseYSpeed()*0.25 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 posY#=EntityYaw(ent)-mxspd# campitch#= EntityPitch(ent) + myspd# If campitch#<-85 Then campitch#=-85 If campitch#>85Then campitch#=85 RotateEntity ent,campitch#,posY#,EntityRoll(ent)
И как ко всему этому ещё и курсор приделать...??
Правильный код где-то рядом...
|
|
| |
blackdrummer | Дата: Пятница, 01.05.2009, 19:55 | Сообщение # 2 |
ламер
Группа: Пользователи
Сообщений: 24
Статус: Offline
| я чего-то не понял... что ты имеешь ввиду под словом "курсор"... и где курсору взяться в игре от первого лица?
|
|
| |
Pro_100_Den | Дата: Суббота, 02.05.2009, 08:03 | Сообщение # 3 |
ламер
Группа: Пользователи
Сообщений: 15
Статус: Offline
| Чтоб твой бот не летал надо зделать колизии но я в них не силен так что я пошел другим путем If KeyDown(200) MoveEntity player, 0, 0, 0.2 If KeyDown(208) MoveEntity player, 0, 0, -0.2 If KeyDown(203) MoveEntity player, -0.2, 0, 0 If KeyDown(205) MoveEntity player, 0.2, 0, 0 я зделал вот такое управление поднял playera на нужную высоту вот код загрузки курсора рисуеш курсор какой тебе надо в Paint или вPhoto shop на черном фоне любым цветом, в формате 32х32 и сохрани его в любом из форматов которые поддерживает блитц потом введи вот ету часть кода; Global gfxCross = LoadImage("cross.bmp") и в конце после RenderWorld UpdateWorld введи DrawImage(gfxCross, GraphicsWidth()/2-16, GraphicsHeight()/2-16 ) ну вродибы все
|
|
| |
blackdrummer | Дата: Суббота, 02.05.2009, 11:32 | Сообщение # 4 |
ламер
Группа: Пользователи
Сообщений: 24
Статус: Offline
| Pro_100_Den, Даже если прописать коллизии то при поднятии мыши вверх он все равно будит летать. arone][, Сделай так, чтоб pivot вращался только по оси X, а все что к нему прикреплено(камера, оружие и т.д.) только по Y. И тогда при поднятии мыши pivot(а следовательно и все остальное) взлетать не будет
|
|
| |