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 ну так чето не реагирует хм...
|
|
| |