problem mit ducken
Übersicht

kolloffnikoffBetreff: problem mit ducken |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich stehe gerade vor folgendem Problem...
Ich hab mir dedacht mein 3d shooter spieler sollte sich auch ducken können... als kollision hab ich eine elliptische kugel genommen...wenn er sich duckt wird diese kleiner. Um zu verhindern, dass er in zu kleinen gängen wieder aufstehen kann hab ich eine abfrage mit linepick nach oben gemacht um zu schauen ob da in unmittelbarer nähe eine wand ist. Problem ist: er steht auch manchmal einfach so nicht mehr auf....nur an manchen stellen in der map...ich versteh das nicht...vielleicht hab ich irgendwas übersehn....ich weiss nicht mehr weiter Ich poste hier mal den code meiner player.bb wobei nur die Update_Player() wirklich relevant ist...vielleicht hilft der rest ja dem verständniss... Code: [AUSKLAPPEN] Include "collisions.bb" Type T_Player Field pivot Field camera Field yspeed# Field movespeed Field crouch End Type Global player.T_Player Function Init_Player() ;Setup player player.T_Player = New T_Player ;Base player\pivot=CreatePivot() EntityRadius player\pivot, 16, 56 EntityType player\pivot,col_player ;Camera player\camera=CreateCamera( player\pivot ) MoveEntity player\camera,0,32,0 ;Jump/Crouch player\yspeed#=0.0 player\movespeed=8 player\crouch=False ;Setup collisions Collisions col_player,col_environment,2,3 MoveMouse 400,300 End Function Function Update_Player() ;Look around mys = MouseYSpeed()/2 If Abs(EntityPitch(player\camera)+mys)<89 Then TurnEntity player\camera,mys,0,0 EndIf TurnEntity player\pivot,0,-MouseXSpeed()/2,0 ;Movement If KeyDown(17) MoveEntity player\pivot,0,0,player\movespeed If KeyDown(31) MoveEntity player\pivot,0,0,-player\movespeed If KeyDown(30) MoveEntity player\pivot,-player\movespeed,0,0 If KeyDown(32) MoveEntity player\pivot,player\movespeed,0,0 ;Es lebe die schwerkraft player\yspeed=player\yspeed-2 MoveEntity player\pivot,0,player\yspeed,0 ;Go crouch If KeyDown(42) And player\crouch=False player\crouch=True EntityRadius player\pivot, 10, 32 TranslateEntity player\camera,0,-10,0 player\movespeed=5 End If ####PROBLEM HIER#############...glaub ich ;Stand up If KeyDown(42)=0 And player\crouch=True px=EntityX(player\pivot) py=EntityY(player\pivot) pz=EntityZ(player\pivot) If Not LinePick( px,py+32,pz, px,py+80,pz, 16 ) player\crouch=False EntityRadius player\pivot, 16, 56 TranslateEntity player\camera,0,10,0 player\movespeed=8 TranslateEntity player\pivot,0,30,0 End If End If #######UND SCHLUSS############## ;Collisions col=CountCollisions(player\pivot) For i=1 To col If CollisionNY(player\pivot,i) Then ;Baby,wenn ich down bin player\yspeed=0 If KeyDown(57) player\yspeed=20 ;dann flieg ich nur so dahin(Jump),muha End If Next MoveMouse 400,300 End Function danke schonmal...und wenns nur fürs nachdenken ist ![]() cya |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group