Сообщение от EaNub
я написал говнокод приседания, но он слишком багнутый, хочу узнать как это делается цивилизованно.Может кто нибудь дать пример с использованием.Приседание примерно как в CS 1.6 (ну и в других шутерах)
|
Сообщение от EaNub
игра от первого лица
|
Сообщение от EaNub
а какже изменение радиуса, пролезание в вентилиционные трубы и т.д.?
|
Сообщение от EaNub
используются стандартные блиц коллизии
|
мда... походу не кто не знает или просто не видели
Вот решил дополнить ещё своим гавнокодом, может баги хотя бы удастся устранить

;нужно подилить всё на части:0 стоит, 1 сидит
If SidStatus=0
YplayerSid0=EntityY(player); определяем стоячию позицию по Y :)
skProsh=0
EndIf
EntityRadius player,80,RadiusPlayer ; но эт само сабой
If KeyDown(29) And SidStatus=0 Then ;нажимаем ctrl и при этом он должен стоять
RadiusPlayer=150 ; менем высоту радиуса
YplayerSid1=EntityY(player) ; определяем Y в сидячем положении
PositionEntity camera,0,75,0 ; двигаем камеру вниз, что бы камера не проходила сквозь верхние объекты, радиус же уменьшился
skProsh=SidStatus0-YplayerSid1 ; даная переменная указывает насколько он сел:-D
SidStatus=1 ; меняем статус
EndIf
If KeyDown(29)=False And SidStatus=1 Then ; если кнопка отпущена да и еще он сидит , то :
YplayerSid2=EntityY(player) ; определяем позицию во время вставания
If YplayerSid2-YplayerSid1>skProsh Then ; если поднялись выше чем опускались :)
RadiusPlayer=300 ; то радиус норм
PositionEntity camera,0,145,0 ; камера норм
SidStatus=0 ; игрок стоит
EndIf
TranslateEntity player,0,20,0 ; пока это не произошло тянем его вверх
gravity=2 ; 1*
EndIf
1* - но получается если при подъёме мы что нибудь задеваем, то опять летим вниз, а потом опять наверх и т.д
Я решил эту проблему отключением гравитации, и он липнет и не падает,
(у меня Gravity=2 отключает гравитацию) но сдесь появлятся первый(баг, просчёт и др

хз чё это) если же мы сталкиваемся с потолком то мы не как не можем достичь нужной позиции и можем летать по комнате

, я думаю нужно это нужно решать не отключением грави, а чем то еще
И второе. Если ты сидя прополз ниже, то есть skProsh= больше чем надо , то при отпускании он начнёт тебя возращать на позицию Y с которой ты начал приседать.И если залез сидя выше , то вроде он провалиться.
-А почему же нельзя поднимать не на разницу а сразу на нужную высоту??
А вот потому что если он не достиг пола, то он будет подниматься выше чем надо, например можно барабанить ctrl(или что нибудь ещё) и он будет поднимать всё выше и выше
Надеюсь вы мне поможете
