Geländebewegung bei "n3xtd" ist so ruckelig...

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von super_castle »

Wer kann weiterhelfen?
Ich kann mit der rechten Muastaste den Würfel ins Gelände setzen. und mit den Tasten "QWES" steuern.
Aber der Würfel geht nicht geschmeidig über das Gelände sondern geht sehr ruckelig den Berg rauf oder herab. Es fehlt die Glätte. Die Sprünge sind zu gross.

Gruss

Code: Alles auswählen


IncludePath "includes"  
IncludeFile "n3xtD_PB.pbi"

Global	anglex.f, angley.f, flagXDown.w
Global	mox.f, omx.f, moy.l, omy.l
Global mov_x.f,mov_y.f,delta_xy.f
delta_xy=0.2

Global *app.l, Quit.l

*app = iCreateGraphics3D(800,600)
 
SetCurrentDirectory("media/") 

Define *obj.IObject = iLoad3DObject("woodcrate.3ds")
Define *cube.IMesh = iCreateMesh(*obj)
iScaleNode(*cube, 0.125,0.125,0.125)

Global *terrain.ITerrain = iCreateTerrain("height113.bmp", 1.0, 8, 8, 1024)

iLoadTextureTerrain(*terrain, "sol113.jpg")

iMaterialTypeTerrain(*terrain, #EMT_LIGHTMAP )

Global *cam.ICamera = iCreateCamera( )
iPositionNode(*cam, 100,125,-60)
iTurnNode(*cam, 15,0,0)

Repeat
    
  If iGetKeyDown(#KEY_ARROW_UP)
    iMoveNode(*cam, 0,0,4)
  EndIf
  If iGetKeyDown(#KEY_ARROW_DOWN)
    iMoveNode(*cam, 0,0,-4)
  EndIf
  
  If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
  		If flagXDown=0
  			omx = iGetMouseX()
  			omy = iGetMouseY()
  			flagXDown=11
  		Else
  			moy = iGetMouseY()-omy
  			angley=(moy/10.0)
  			omy= iGetMouseY()
  			mox = iGetMouseX()-omx
  			anglex=(mox/10.0)
  			omx= iGetMouseX()
  			iTurnNode(*cam, angley, anglex,0)
  		EndIf
  Else
  	 		flagXDown=0
  EndIf
  If iGetMouseEvent(#MOUSE_BUTTON_RIGHT)
    iPickTerrain(*terrain, iGetMouseX(), iGetMouseY(),  2000)
    pos.VECTOR3
    iTerrainPickedPosition(*terrain, @pos)
    iPositionNode(*cube, pos\x, pos\y, pos\z)   
    mov_x=iGetMouseX()
    mov_y=iGetMouseY()
  EndIf

  If GetAsyncKeyState_(#VK_E)
   mov_x=mov_x+delta_xy
   iPickTerrain(*terrain, mov_x,mov_y,  2000)  
   iTerrainPickedPosition(*terrain, @pos)
   iPositionNode(*cube, pos\x, pos\y, pos\z)    
  EndIf
  
  If GetAsyncKeyState_(#VK_Q)
   mov_x=mov_x-delta_xy
   iPickTerrain(*terrain, mov_x,mov_y,  2000)
   iTerrainPickedPosition(*terrain, @pos)
   iPositionNode(*cube, pos\x, pos\y, pos\z)    
  EndIf
  
  If GetAsyncKeyState_(#VK_S)
   mov_y=mov_y+delta_xy
   iPickTerrain(*terrain, mov_x,mov_y,  2000)
   iTerrainPickedPosition(*terrain, @pos)
   iPositionNode(*cube, pos\x, pos\y, pos\z)    
  EndIf
  
  If GetAsyncKeyState_(#VK_W)
   mov_y=mov_y-delta_xy
   iPickTerrain(*terrain, mov_x,mov_y,  2000)
   iTerrainPickedPosition(*terrain, @pos)
   iPositionNode(*cube, pos\x, pos\y, pos\z)    
  EndIf
  
  If iGetKeyDown(#KEY_ESCAPE)
    Quit=1
  EndIf

  iBeginScene(200,200,200)
    iDrawScene()
  iEndScene()

Until Quit=1

iFreeEngine()


; IDE Options = PureBasic 4.40 Beta 3 (Windows - x86)
; ExecutableFormat = Console
; CursorPosition = 13
; EnableXP
; DisableDebugger
Benutzeravatar
mpz
Beiträge: 505
Registriert: 14.06.2005 15:53
Computerausstattung: Win 11 Pro, 48 GB Ram, Intel I7 CPU und RX4070 Grafikkarte, PB (4/5) 6.12LT
Wohnort: Berlin, Tempelhof

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von mpz »

Hi,

ich hatte auch einmal solch ein Problem, aber das lag daran das ich kein Float sondern ein Integer verwendet habe. Dadurch wurden die Bewegungen immer in Ganzzahlen durchgeführt -> Sprung. Ich habe diesen Fehler bei Dir nicht gesehen würde aber einmal ein Debug der Bewegungsdaten machen. Vielleicht werden dann damit diese Sprünge erklärbar...

Gruß Michael
Working on :lol: - LibSGD - MP3D Engine - 8)
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von super_castle »

Kannst du mal dein Beispiel reinsetzen, was du bei dir verbessert hast?

mfg
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von Fluid Byte »

super_castle hat geschrieben:Kannst du mal dein Beispiel reinsetzen, was du bei dir verbessert hast?
Wozu? :roll:

Entweder verwendest du floats oder long/quad. Was ist so schwer daran das nachzuprüfen?

Mich wundert sowie warum die Leute ihm noch helfen ....
Windows 10 Pro, 64-Bit / Outtakes | Derek
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von super_castle »

Wenn du Quarkbeutel lesen kannst, dann siehst du das ich Float verwende.
Vielleicht wird ein anderer Befehl für das Terrain verwendet.
Und nun troll dich vom Acker. :allright: wenn, du mit N3xtd nicht programmierst.

Kopfschüttel... :lol:


mfg
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von Fluid Byte »

Du glaubst ich schau mir deinen Murks an?

Kopfschüttel... :freak:
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von DrShrek »

super_castle hat geschrieben:Wenn du Quarkbeutel lesen kannst, dann siehst du das ich Float verwende.
Dann schau mal hier: Global mox.f, omx.f, moy.l, omy.l
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von Kaeru Gaman »

super_castle hat geschrieben:... du Quarkbeutel ...
Und nun troll dich vom Acker.
Solche Ausdrucksweise ist hier nicht erwünscht!
Benimm dich gefälligst etwas gesitteter, oder verzichte auf eine Teilnahme am Forum.

Dies ist eine offizielle Ermahnung seitens der Moderation.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von super_castle »

Du glaubst ich schau mir deinen Murks an?
Ich erwarte es nicht von einem, der sich nicht mit n3xtd auseinandergesetzt hat. :D , da kommt nur murks bei raus. :allright:

mfg
super_castle
Beiträge: 557
Registriert: 29.11.2005 15:05

Re: Geländebewegung bei "n3xtd" ist so ruckelig...

Beitrag von super_castle »

Dann schau mal hier: Global mox.f, omx.f, moy.l, omy.l
Au,man. :lol:
Wenn du die Hilfe von n3xtd gelesen hast, wirst du merken, das diese Variablendefinition stimmen, on man... :oops:

Ich möchte, das sich hier competente Leute melden, die sich ernsthaft mit n3xtd auseinandergesetzt haben, das bringt sonst alles nichts. :allright:

Gruss
Antworten