Wieder einmal Bewegungsproblem
Übersicht

HoneschBetreff: Wieder einmal Bewegungsproblem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey...ich habe wieder einmal, wie schon so viele ein Bewegungsproblem, und zwar: Wenn ich rauf schaue und mich vorwärtsbewege, "fliege" ich in die Luft. Ist mir auch klar warum....aber ich habe keine Lösung dafür. Hier einmal der Code: Code: [AUSKLAPPEN] Graphics3D 1024,768,32,2 SetBuffer BackBuffer() ;Camera body=LoadMesh("body.b3d") player=CreatePivot(body) camera=CreateCamera(player) PositionEntity player,5,1,5 EntityType player,1 EntityRadius player,0.2 CameraRange camera,0.00001,500 ;Terrain terrain=LoadTerrain("heightmap_minigame.jpg") PositionEntity terrain,0,-1,0 ter_tex=LoadTexture("wasser.bmp") EntityTexture terrain,ter_tex EntityType terrain,2 ;Waffe waffe=LoadMesh("waffe.x") EntityParent waffe,player PositionEntity waffe,0.1,-0.08,0.1 ScaleEntity waffe,.005,.005,.005 TurnEntity waffe,0,90,0 waffe_tex=LoadTexture("sky_BK.jpg") EntityTexture waffe,waffe_tex ;Haus haus=LoadMesh("haus.b3d") PositionEntity haus,5,-1,5 ScaleEntity haus,.1,.1,.1 haus_tex=LoadTexture("sky_RT.jpg") EntityTexture haus,haus_tex EntityType haus,2 ;Collisions Collisions 1,2,2,2 sp#=.02 ey#=EntityY(player) ;2D-Images kreuz = LoadImage("Fadenkreuz.bmp") MaskImage kreuz,255,255,255 status=LoadImage("status.jpg") MaskImage status,255,255,255 ;******* Hauptschleife ******** While Not KeyHit(1) HidePointer yv#=EntityY(player)-ey ey=EntityY(player) If KeyHit(57) yv=.1 TranslateEntity player,0,yv-.005,0 RotateEntity player,EntityPitch(player)+MouseYSpeed()/1.5,EntityYaw(player)-MouseXSpeed()/1.5,0 MoveMouse 500,500 If KeyDown(17) Then MoveEntity player,0,0,sp EndIf If KeyDown(31) Then MoveEntity player,0,0,-sp EndIf If KeyDown(30) Then MoveEntity player,-sp,0,0 EndIf If KeyDown(32) Then MoveEntity player,sp,0,0 EndIf UpdateWorld RenderWorld DrawImage kreuz,505,378 DrawImage status,3,690 Text 90,720,"Da kommen einmal die HP hin ;)" Flip Wend Ich habe daran gedacht, einen zweiten pivot zu machen (auch parent zu player) und als kopf zu definieren. Und dann die Mausdrehung der Y-Achse nur auf den "Kopf-pivot" zu übertragen. Ich weiß aber nicht, wie ich das in den Code umsetzten könnte. Würde mich sehr über Lösungsvorschläge freuen. Danke ![]() Klar ausgedrückt: eine klassische Egoshooter-Steuerung Bitte meldet euch, wenn ihr nicht versteht, was ich meine mfg Honesch |
||
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik ! |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Den Spieler nur im Y drehen (Turn) weil der Kopf sich dann mit dreht .
Die Camera an den Kopf hängen und dort nur den Pitch ändern. Den Spieler vor/zurück bewegen entlang der Z Achse mit MoveEntity . Kopf und Spieler könnte man auch seperant drehen aber das macht keiner . |
||
Honesch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm hört sich logisch an ![]() ![]() |
||
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik ! |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne , nicht schon wieder , dieses Thema hatten wir schon 1000 mal ![]() Mußte mal ein bischen Suchen nach Egoshooter und Camera . Habe dir mal ein bischen ausgeschnitten ... Code: [AUSKLAPPEN] Type Player_Type Field Nr Field Team Field CameraPivot Field Camera Field Entity Field KUp ;Simulate Moving Keys Field KDown Field KLeft Field KRight Field KSpace Field Computer End Type Global CameraPivot Global Camera CameraPivot=CreatePivot() Camera=CreateCamera(CameraPivot) NameEntity CameraPivot,"CameraPivot" NameEntity Camera,"Camera" PositionEntity CameraPivot,0,168,-200 Player.Player_Type=New Player_Type Player\Nr=Nr Player\Team=Team Player\CameraPivot=CreatePivot(Player\Entity) Player\Camera =CreatePivot(Player\CameraPivot) MoveEntity Player\CameraPivot,0,68,15 Global ThisPlayer.Player_Type ;it allready exist ThisPlayer=FindPlayer (2,1) ;set the actual Player ;---------------------------- Switch Player (and the Camera) If KeyHit(2) Then ThisPlayer=FindPlayer (2,1) ThisPlayer\Computer=0 EndIf If KeyHit(3) Then ThisPlayer=FindPlayer (2,2) ThisPlayer\Computer=0 EndIf ;----------------------------------------------------------- If KeyDown(200) Then ThisPlayer\KUp=1 If KeyDown(205) Then ThisPlayer\KRight=1 If KeyDown(203) Then ThisPlayer\KLeft=1 If KeyDown(208) Then ThisPlayer\KDown=1 If KeyDown( 57) Then ThisPlayer\KSpace=1 For Player.Player_Type = Each Player_Type UpdatePlayer Player Next CameraOnPlayer ThisPlayer Function CameraOnPlayer(p.Player_Type) PositionEntity CameraPivot,EntityX (p\CameraPivot,True),EntityY (p\CameraPivot,True),EntityZ (p\CameraPivot,True) RotateEntity CameraPivot,EntityPitch(p\CameraPivot,True),EntityYaw(p\CameraPivot,True),EntityRoll(p\CameraPivot,True) RotateEntity Camera ,EntityPitch(p\Camera ),EntityYaw(p\Camera ),EntityRoll(p\Camera ) End Function Function FindPlayer.Player_Type(Nr,Team) ;MR 21.07.2002 For Player.Player_Type = Each Player_Type If Player\Nr=Nr And Player\Team=Team Return Player EndIf Next End Function ... |
||
Honesch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir sehr, dass du dir die Mühe gemacht hast, mir das herauszusuchen. hmmmm...ich dachte nicht so an types ![]() ![]() ![]() ![]() mfg Honesch |
||
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik ! |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Struktur hat den Vorteil das du alles zusammen hast und
auch wie du siehst komplett an eine Unterfunktion übergeben kannst . Wirste irgendwann nicht drum herum kommen . Kannste also auch ohne Types machen . |
||
Honesch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wie sieht das ohne types jetzt explizit aus ? (bitte nicht schimpfen, admins, ich beschäftige mich wirklich damit)
mfg Honesch |
||
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik ! |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bevor du in deinem Spiel weiter rum fummelst mach dir erstmal ein Test Projekt .
Ein Plane mit Karo Texture . Dann machste dir einen Cube als Spieler Body und einen Cube als Kopf und gibt beiden irgendeine Farbe . Dann machste dir eine Camera und hängst die am Kopf . Und der Kopf hat als Parent den Body Cube . Und dann versuchste das umzusetzen was ich oben schon erklärt habe . Wenn Taste X dreh den Body mit TurnEntity 0,0.25,0 Wenn Taste Y beweg den Kopf TurnEntity 0.25,0,0 |
||
Honesch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok. danke für den tipp. werds mal ausprobieren ![]() |
||
Das Leben ist wie ein Computerspiel. Scheiß Handlung aber geile Grafik ! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group