[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


Страница 1 из 11
Модератор форума: Spidy, turBO, blitz3d 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » 3D Fighting Файтинг на Blitz3d (Анимация и колизии при драке)
3D Fighting Файтинг на Blitz3d
BenjaДата: Воскресенье, 22.01.2012, 01:12 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
Всем Привет
Я вот тут надумал написать файтинг но наткнулся на одну проблему не знаю как лучше реализовать систему коллизий пока что я ничего лучше не придумал как проверять расстояние между бойцами и их анимацию )) примерно так

If KeyHit(72) ;если нажата клавиша NumPad8
If AnimSeq(player_model)=1 ;если игрок в позиции стоит
Animate player_model, 3, .5, 7 ;удар игрока левой рукой
If EntityDistance(player_model,bot)<6;если дистанция меньше 6
Animate bot, 3, .5, 6 :lifebot=lifebot-10; голова бота откидывается назад
PlaySound hitl :звук удара
If lifebot=0 Animate bot, 1, .5, 8 ; если бот умер
EndIf
EndIf
EndIf
ну выглядит все это как то коряво )
жду ваших советов как лучше все это реализовать


Сообщение отредактировал Benja - Воскресенье, 22.01.2012, 01:13
 
SpidyДата: Воскресенье, 22.01.2012, 13:56 | Сообщение # 2
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Обычно в играх не высчитывается расстояние между объектами, а используется так называемый простой объект. Вместе с объектом двигается невидимый простой объект (к примеру, куб) или несколько вместе, которые не тратят много ресурсов из-за своей низкой полигональности. Он-то и проверяется на момент столкновений со всеми другими такими-же как и он собратьями-кубами.



Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
BenjaДата: Воскресенье, 22.01.2012, 14:15 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 3
Награды: 0
Репутация: 0
Статус: Offline
я это понимаю но как это реализовать я пока незнаю вот сейчас думаю что если использовать в качестве колизии кости меша например так
...
b_head=FindChild(bot," Head") ;кость голова бота
EntityType b_head,TypeBHead
EntityRadius b_head,1
...
pl_lfinger=FindChild(player_model," L Finger");кость игрока левый кулак
EntityType pl_lfinger,TypePLfinger
EntityRadius pl_lfinger,1
...
If KeyHit(72) ;если нажата клавиша NumPad8 удар левой рукой
If AnimSeq(player_model)=1 ;если игрок в позиции стоит
Animate player_model, 3, .5, 7 ;анимация удар игрока левой рукой
If EntityCollided (pl_lfinger,TypeBHead);если колизия левый кулак игрока с головой бота
Animate bot, 3, .5, 6 :lifebot=lifebot-10; голова бота откидывается назад
PlaySound hitl :звук удара
If lifebot=0 Animate bot, 1, .5, 8 ; если бот умер
EndIf
EndIf
EndIf
ну так чето не реагирует хм...
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » 3D Fighting Файтинг на Blitz3d (Анимация и колизии при драке)
Страница 1 из 11
Поиск: