Mathe für Schranz0r

Previous topic - Next topic

WPShadow

Hi!

Ich habe gerade folgendes entnommen:

//?   FOR jedes Körperteil:
//?   NewtonBuildMatrix(0,0,90,x,y,z, M[])

Aufgrund dieses Beispiels habe ich folgendes versucht:

NewtonBuildMatrix(phi, 0, 0,NewtonBodyGetPositionX(ownship), NewtonBodyGetPositionY(ownship), NewtonBodyGetPositionY(ownship), mat[])

Funktioniert aber nicht! Und zwar gar nicht. Nicht einmal eine minimale Bewegung dahinter!!!

Was kann ich machen?
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

X, Y, Y ???

Ja, und dann hast Du eine Matrix - aber was machst Du damit?
NewtonBodySetMatrix(ownship, mat[])

WPShadow

Hi!

Funzt super! Des Rätsels Lösung war eigentlich ganz simpel!

Code (glbasic) Select
NewtonBuildMatrix(0, phi, 0,NewtonBodyGetPositionX(ownship), NewtonBodyGetPositionY(ownship), NewtonBodyGetPositionZ(ownship), mat[])
NewtonBodySetMatrix(ownship, mat[])
Danke danke danke!!!

Aber mir bleibt da noch eine Frage wegen dem Timer! Und zwar benutze ich

Code (glbasic) Select
FUNCTION lost_timer:

//+++++++++++++++++++++++++++++++++++
GT=(GETTIMERALL()-Old_Timer)/1000
Old_Timer=GETTIMERALL()
//+++++++++++++++++++++++++++++++++++
lost_GT = GT * lost_zeitlupe
//+++++++++++++++++++++++++++++++++++

ENDFUNCTION
Jetzt habe ich das Problem, daß das Spiel auf meinem Laptop langsamer, aber auf meinem Rechner viel schneller läuft. Dabei sollte der Echtzeittimer Frameratenunabhängig laufen. Hast du da eine Idee???

Gruß

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Newtonupdate(GT, 4);

WPShadow

Habe ich gerade auf beiden Rechnern ausprobiert. Am PC ist das Bild ca. 4mal so schnell, auch mit deiner Einstellung. Habe herum experimentiert. Habe den Wert auf (GT, 10) raufgestellt, macht aber keinen Unterschied. Da kann ich machen was ich will...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

BumbleBee

Hi WPShadow

Das kann gar nicht sein. Das lief doch vor 2 Jahren (oder wie lang ist das schon her):D auch normal. Ich hab das schon auf mehreren PC's getestet. Von alt bis neu. Immer gleich. Starte mal und sag mir wie lang  das Quadrat auf deinem Rechner von  links nach rechts braucht Alle Auflösungen durch, mit dem Beispiel unten.
Code (glbasic) Select
LIMITFPS -1 //Ganz wichtig

Speed=100;X=-50

                   //Loop
//---------------------------------------------------

WHILE TRUE

               //GameTimer
  //+++++++++++++++++++++++++++++++++++
    GT=(GETTIMERALL()-Old_Timer)/1000
    Old_Timer=GETTIMERALL()
  //+++++++++++++++++++++++++++++++++++
                 
   X=X+Speed*GT
   DRAWRECT X,100,50,50,RGB(255,0,0)        

//Bei einer Auflösung von 640 * 480 Pixel und einem Speed von 100 Pixel
//beträgt die Zeit 640 / 100 = 6.4 Sekunden bis zum rechten Rand

//Bei einer Auflösung von 800 * 600 Pixel und einem Speed von 100 Pixel
//beträgt die Zeit 800 / 100 = 8 Sekunden bis zum rechten Rand

                    //Zeit messen
  t2=GETTIMERALL()
   IF t2 > t1 + 1000 //Sekunden
     Time=Time+ 1
     t1=t2
   ENDIF

                   
  PRINT "Time " + Time , 50,50

SHOWSCREEN
WEND
Das Quadrat braucht also bei der Auflösung von 800 * 600 = 8 Sekunden von links nach rechts
wenn Speed = 100 ist. (800 / Speed = 8). Bei Speed = 50 halt dann doppelt so lang. Das wär dann vielleicht deine Zeitlupe.;)  


Cheers
The day will come...

CPU Intel(R) Core(TM) i5-3570k, 3.4GHz, AMD Radeon 7800 , 8 GB RAM, Windows 10 Home 64Bit

WPShadow

Das ist nicht das Problem! So wie du das Programm geschrieben hast, läuft das problemlos, aber wenn man das mit

NewtonUpdate

zusammen benutzt, dann läuft das auf verschiedenen Rechnern verschieden schnell! Und das ist irgendwie seltsam...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Und wenn du den Timer bei NewtonUpdate reinpackst, als übergabewert?!
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

Ok, keine Ahnung, wie du meinst?!?

Ich habe im Prinzip den Wert GT als Timer reingepackt...
Code (glbasic) Select
 //+++++++++++++++++++++++++++++++++++
    GT=(GETTIMERALL()-Old_Timer)/1000
    Old_Timer=GETTIMERALL()
  //+++++++++++++++++++++++++++++++++++

...

Newtonupdate(GT, 4)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

ah hast du schon Hmmmm
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Hmm. mach mal Netwonupdate (20,4)

WPShadow

Geht auch nicht! Ca. 4 facher Geschwindigkeitsunterschied, ganz egal was ich mache.

Ich teste immer mit identischem Programm.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est