Waffenbewegung, klappt nicht ganz.
Übersicht

![]() |
Rob_Betreff: Waffenbewegung, klappt nicht ganz. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi ich programmiere zuzeit ein 3D Ego-Shooter und ich habe ein problem undzwar, wenn ich mit der maus nach unten zeige rutscht man nach hinten wie kann ich das verhindern?
Code: [AUSKLAPPEN] ;PLAYER_MOVEMENT
Function movement() key_arrow_right = 32 key_arrow_left = 30 key_arrow_up = 17 key_arrow_down = 31 key_arrow_jump = 57 ; -------------------------------------------------------------- ; Key-Movement ; -------------------------------------------------------------- If KeyDown(KEY_ARROW_RIGHT) Then MoveEntity camera, player_sp_x#,0, 0 If KeyDown(KEY_ARROW_LEFT) Then MoveEntity camera,-player_sp_xm#,0, 0 If KeyDown(KEY_ARROW_DOWN) Then MoveEntity camera, 0,0,-player_sp_zm# If KeyDown(KEY_ARROW_UP) Then MoveEntity camera, 0,0,player_sp_z# And weapon_move() If KeyHit(KEY_ARROW_JUMP) Then jump_var = 1 ; -------------------------------------------------------------- ; Cache MouseMovement ; -------------------------------------------------------------- mxs#=-MouseXSpeed() /3.0 mys#= MouseYSpeed() /3.0 ; -------------------------------------------------------------- ; Rotate and limit Camera-Rotation ; -------------------------------------------------------------- If( mxs# <> 0.0 ) Then RotateEntity camera,EntityPitch(camera),EntityYaw(camera)+mxs#,EntityRoll(camera) If( mys# > 0.0 ) Then If( EntityPitch(camera)+mys#>70 ) Then mys#=70-EntityPitch(camera) RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera) ElseIf( mys# < 0 ) Then If( EntityPitch(camera)+mys#<-70 ) Then mys#=-70-EntityPitch(camera) RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera) EndIf MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 If Not kollision = EntityCollided(camera,plane) Then MoveEntity camera,xx,-.4,zz If kol = 1 Then MoveEntity camera,xx,-.4,zz End Function |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
- Zuletzt bearbeitet von Rob_ am Mo, Jan 17, 2005 20:50, insgesamt einmal bearbeitet
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If Not kollision = EntityCollided(camera,plane) Then MoveEntity camera,xx,-.4,zz
If kol = 1 Then MoveEntity camera,xx,-.4,zz soll wahrscheinlich die Schwerkraft darstellen. versuch mal anstatt "MoveEntity" "TranslateEntity" zubenutzen. Lies es dir mal in der OH (Online Hilfe) durch, dann siehst du sicher gleich den Unterschied. |
||
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja genau das war translateentity ![]() |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
![]() |
Unplugged |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und das war eine Beginnerfrage? Puh, ich fühle mich noch ein paar Sonnen entfernt von einem Ego-Shooter. | ||
User posted image |
![]() |
Rob_ |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ich habe erneut ein problem, erstmal erklären soweit ich kann ^^.
Ich habe eine Waffe als entityparent an die camera geklebt ich ja klar, nun wenn ich mich bewege klappt alles super gut, keine probleme. Dann weils zu langweihlig ist das die waffe sich nicht beim bewegtn bewegt, habe ich so eine kleine function geschrieben: ;WEAPON_BEWEGUNG = Die waffe macht eine bewegung nach links rechts. ;WEAPON SCHUSS = die waffe bewegt sich vor und zurück. Problem = Wenn ich laufe dann bewegt sich die waffe alles bestens auch wenn ich erneut nach vorne laufe bewegt sich die waffe exakt wie ich wollte, wenn ich beim laufen die mousehit(1) taste drücke hört die bewegung auf und die waffe bewegt sich nach vorne und nach hinten wie ich wollte, doch wenn ich erneut mousedown(1) drücke dannbewegt sich die waffe anch hinten und verschwindet : ( Wieso ist das so? ( Unten noch code von bewegung) Code: [AUSKLAPPEN] ;WEAPON_BEWEGUNG
Function weapon_move() If weapon_left = 1 Then TranslateEntity item_weapon_smach,-.01,-.01,0 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 10 Then weapon_left = 0 weaponcounter = 0 weapon_up = 1 EndIf If weapon_up = 1 Then TranslateEntity item_weapon_smach,.01,.01,0 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 10 Then weapon_up = 0 weaponcounter = 0 weapon_right = 1 EndIf If weapon_right = 1 Then TranslateEntity item_weapon_smach,.01,-.01,0 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 10 Then weapon_right = 0 weaponcounter = 0 weapon_up2 = 1 EndIf If weapon_up2 = 1 Then TranslateEntity item_weapon_smach,-.01,.01,0 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 10 Then weapon_up2 = 0 weaponcounter = 0 weapon_left = 1 EndIf End Function ;WEAPON SCHUSS Function weapon_move2() If weapon_front = 1 Then TranslateEntity item_weapon_smach,0,0,-.07 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 5 Then weapon_front = 0 weaponcounter = 0 weapon_back = 1 EndIf If weapon_back = 1 Then TranslateEntity item_weapon_smach,0,0,.07 weaponcounter = weaponcounter + 1 EndIf If weaponcounter = 5 Then weapon_back = 0 weaponcounter = 0 weapon_front = 1 EndIf End Function Das hier ist die bewegung. Code: [AUSKLAPPEN] ;PLAYER_MOVEMENT
Function movement() key_arrow_right = 32 key_arrow_left = 30 key_arrow_up = 17 key_arrow_down = 31 key_arrow_jump = 57 mouse_down = 1 ; -------------------------------------------------------------- ; Key-Movement ; -------------------------------------------------------------- If KeyDown(KEY_ARROW_RIGHT) Then MoveEntity camera, player_sp_x#,0, 0 If KeyDown(KEY_ARROW_LEFT) Then MoveEntity camera,-player_sp_xm#,0, 0 If KeyDown(KEY_ARROW_DOWN) Then MoveEntity camera, 0,0,-player_sp_zm# If KeyDown(KEY_ARROW_UP) = 1 Then MoveEntity camera, 0,0,player_sp_z# weapon_move_var = 1 ElseIf KeyDown(KEY_ARROW_UP) = 0 Then weapon_move_var = 0 EndIf If KeyHit(KEY_ARROW_JUMP) Then jump_var = 1 If MouseDown(mouse_down) = 1 Then weapon_move_var = 0 weapon_move2_var = 1 ElseIf MouseDown(mouse_down) = 0 Then weapon_move2_var = 0 EndIf ; -------------------------------------------------------------- ; Cache MouseMovement ; -------------------------------------------------------------- mxs#=-MouseXSpeed() /3.0 mys#= MouseYSpeed() /3.0 ; -------------------------------------------------------------- ; Rotate and limit Camera-Rotation ; -------------------------------------------------------------- If( mxs# <> 0.0 ) Then RotateEntity camera,EntityPitch(camera),EntityYaw(camera)+mxs#,EntityRoll(camera) If( mys# > 0.0 ) Then If( EntityPitch(camera)+mys#>70 ) Then mys#=70-EntityPitch(camera) RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera) ElseIf( mys# < 0 ) Then If( EntityPitch(camera)+mys#<-70 ) Then mys#=-70-EntityPitch(camera) RotateEntity camera,EntityPitch(camera)+mys#,EntityYaw(camera),EntityRoll(camera) EndIf MoveMouse GraphicsWidth()/2, GraphicsHeight()/2 If Not kollision = EntityCollided(camera,plane) Then TranslateEntity camera,xx,-.1,zz If kol = 1 Then TranslateEntity camera,xx,-.1,zz End Function Mfg Rob |
||
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier erstmal ein paar Pubnkte und Kommas (,,,,,........) ![]() Dann tut man dich auch gleich besser verstehen. Also, leider kann man nicht sehen was du mit den Variablen "weapon_move_var" eigentlich machst. Aber ich schätze mal, das du solange die Maustaste gedrückt wird die Bewegung nach hinten ausführst und dadurch die Waffe zuweit nach hinten fährt. Mousehit tritt nur ein wenn die Maustaste wieder losgelassen wird. Mausdown allerdings tritt solange ein wie die Maustaste gedrückt gehalten wird. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group