Autophysik - Driver Demo
Übersicht

onkelz89Betreff: Autophysik - Driver Demo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
hab mir schon die Forumsuche zu Herzen genommen und auch Google mehrmals befragt. Ich finde nur hilfreiches zu 2D. Die Driver Demo hab ich schon leicht verändert... Aber es hängt ganz klar an 2 Punkten: 1- Das Auto hat in der Variante keine Achsen (Front und Heck) Wo man einen "Drehkreis" beim Drift drumziehen kann. 2- Ich versteh das mit den Vectoren nicht so ganz. Vielleicht kennt jemand ein gutes Tut oder so... Danke im Voraus MfG Onkelz |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vektoren und Matrizen musst du Matheseiten konsultieren, das ist reine Mathematik 8te Klasse oder früher (ist eigentlich nicht schwer, ist nur Addition und Multiplikation ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu 1: Darum ist es auch schlecht einen Fremdcode hinbiegen zu wollen. Es wäre einfacher Dir was von grund auf zu erstellen anstatt hier mühsam workarounds zu suchen.
zu 2.: Vektorrechnung ist weit verbreitet. www.google.de platzt vor Ergebnissen. Ein paar nette Mathematikseiten gibt es da auch. Sei kreativ und suche... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch wenns OT ist, aber ich hatte in der 8ten klasse _keine_ Vektoren und/oder Matrizen... nur leider bin ich auch zu faul, mir das anzuschauen... nunja und als Metallbauer brauch ichs nicht oO | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
auch Ot:
Vektoren hatte ich erst im Studium, also noch nicht mal in der Oberstufe, deshalb sollte man nicht davon ausgehen, dass jeder 15/16 jährige diese Sache schon beherrscht. b2t ne einfache Fahrphysik kannst du dir auch mit Sin/Cos erstellen, ist zwar nicht das Nonplusultra, aber für den Anfang reichts und hinterher kann man es immer noch ausbauen. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm ok ... wir hattens 2tes Jahr Gymi hier in der Schweiz.
Aber selbst wenn: Wers nutzen will muss seine Werkzeuge erlernen oder es halt nicht nutzen. Mag hart klingen aber so ist das nunmal. Physik setzt nunmal grundlegend auf Vektormathematik auf (Matrizen nicht Mal umbedingt zumindest nicht wenn man ineffizienten Code auch nocht nutzt), von daher ist sie Grundlagenwissen was man vor der Nutzung von physikalischen "Fertigsources" zu beherrschen hat (nicht sollte, sondern muss) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, habs mir nochmal grad angeschaut... ist ech nicht schwer...
Bei der Driverdemo wird der Höhenunterschied zwischen den Reifen gemessen und dem entsprechend das Auto "gedreht". Erst für Links und Rechts dann für Front und Heck. Ok, soweit... Aber was oben gesagt wurde vonwegen man sollte lieber was eigenes machen... Ja schon klar nur muss ich erst das Sample kapieren ![]() ![]() Danke für die Antworten |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Damit sich das Auto um irgendein Punkt dreht kannst du nen Pivot
ans Auto hängen und den drehen mit TurnEntity . Statt nen Pivot tuts auch erstmal nen Cube damit du siehst wo der Punkt ist . |
||
onkelz89 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist ne gute Idee - wobei ich auch einen anderen Ansatz hatte... Ich poste ihn hier mal und ich hoffe es gibt noch Verbesserungsvorschläge ![]() Code: [AUSKLAPPEN] Global info1$="Driver"
Include "../start.bb" spuren=1 Type s;spur Field x# Field y# Field z# Field live Field obj End Type Const GRAVITY#=-.01 Const BODY=1,WHEEL=2,SCENE=3 Collisions BODY,SCENE,2,3 Collisions WHEEL,SCENE,2,3 terr=LoadTerrain( "heightmap_256.bmp" ) ScaleEntity terr,1000/TerrainSize(terr),70,1000/TerrainSize(terr) TerrainDetail terr,1000,True TerrainShading terr,True PositionEntity terr,-500,0,-500 tex=LoadTexture( "terrain-1.jpg" ) pic=LoadImage( "terrain-1.jpg" ) ScaleTexture tex,50,50 EntityTexture terr,tex EntityType terr,SCENE car=LoadMesh( "car.x" ) ScaleMesh car,1,1,-1 FlipMesh car FitMesh car,-1.5,-1,-3,3,2,6 PositionEntity car,0,70,0 EntityShininess car,1 EntityType car,BODY Global wheels[4] cnt=1 For z#=1.5 To -1.5 Step -3 For x#=-1 To 1 Step 2 wheels[cnt]=CreateSphere( 8,car ) EntityAlpha wheels[cnt],.5 ScaleEntity wheels[cnt],.5,.5,.5 EntityRadius wheels[cnt],.5 PositionEntity wheels[cnt],x,0,z EntityType wheels[cnt],WHEEL cnt=cnt+1 Next Next light=CreateLight() TurnEntity light,45,45,0 target=CreatePivot( car ) PositionEntity target,0,5,-12 camera=CreateCamera() CameraClsColor camera,0,128,255 speed#=0 x_vel#=0:prev_x#=EntityX( car ) y_vel#=0:prev_y#=EntityY( car ) z_vel#=0:prev_z#=EntityZ( car ) counter=0 rich=0 While Not KeyHit(1) For s.s = Each s s\live=s\live-1 If s\live<1 Then FreeEntity s\obj Delete s.s Next ;align car to wheels zx#=(EntityX( wheels[2],True )+EntityX( wheels[4],True ))/2 zx=zx-(EntityX( wheels[1],True )+EntityX( wheels[3],True ))/2 zy#=(EntityY( wheels[2],True )+EntityY( wheels[4],True ))/2 zy=zy-(EntityY( wheels[1],True )+EntityY( wheels[3],True ))/2 zz#=(EntityZ( wheels[2],True )+EntityZ( wheels[4],True ))/2 zz=zz-(EntityZ( wheels[1],True )+EntityZ( wheels[3],True ))/2 AlignToVector car,zx,zy,zz,1 zx#=(EntityX( wheels[1],True )+EntityX( wheels[2],True ))/2 zx=zx-(EntityX( wheels[3],True )+EntityX( wheels[4],True ))/2 zy#=(EntityY( wheels[1],True )+EntityY( wheels[2],True ))/2 zy=zy-(EntityY( wheels[3],True )+EntityY( wheels[4],True ))/2 zz#=(EntityZ( wheels[1],True )+EntityZ( wheels[2],True ))/2 zz=zz-(EntityZ( wheels[3],True )+EntityZ( wheels[4],True ))/2 AlignToVector car,zx,zy,zz,3 ;calculate car velocities cx#=EntityX( car ):x_vel=cx-prev_x:prev_x=cx cy#=EntityY( car ):y_vel=cy-prev_y:prev_y=cy cz#=EntityZ( car ):z_vel=cz-prev_z:prev_z=cz ;resposition wheels cnt=1 For z=1.5 To -1.5 Step -3 For x=-1 To 1 Step 2 ; PositionEntity wheels[cnt],0,0,0 ; ResetEntity wheels[cnt] PositionEntity wheels[cnt],x,-1,z cnt=cnt+1 Next Next If speed<=.1 Then drifting1=0 drifting2=0 If drifting1>0 Then drifting1=drifting1-1 driftcounter1#=driftcounter1#+.05 speed=speed-0.01 TurnEntity car,0,speed*driftcounter1,0;hier bin ich grade dabei zu versuchen was zu ändern an dem gleichmäßigen driften (soll immer stärker werden) If spuren=1 Then s.s = New s s\x = EntityX( wheels[3],1 ) s\y = EntityY( wheels[3],1 ) s\z = EntityZ( wheels[3],1 ) s\live = 150 s\obj = CreateSphere(8) PositionEntity s\obj,s\x,s\y,s\z ScaleEntity s\obj,.4,.4,.4 EntityColor s\obj,0,0,0 s.s = New s s\x = EntityX( wheels[4],1 ) s\y = EntityY( wheels[4],1 ) s\z = EntityZ( wheels[4],1 ) s\live = 150 s\obj = CreateSphere(8) PositionEntity s\obj,s\x,s\y,s\z ScaleEntity s\obj,.4,.4,.4 EntityColor s\obj,0,0,0 EndIf Else driftcounter1=1 EndIf If drifting2>0 Then drifting2=drifting2-1 TurnEntity car,0,-(speed*2),0 If spuren=1 Then s.s = New s s\x = EntityX( wheels[3],1 ) s\y = EntityY( wheels[3],1 ) s\z = EntityZ( wheels[3],1 ) s\live = 150 s\obj = CreateSphere(8) PositionEntity s\obj,s\x,s\y,s\z ScaleEntity s\obj,.4,.4,.4 EntityColor s\obj,0,0,0 s.s = New s s\x = EntityX( wheels[4],1 ) s\y = EntityY( wheels[4],1 ) s\z = EntityZ( wheels[4],1 ) s\live = 150 s\obj = CreateSphere(8) PositionEntity s\obj,s\x,s\y,s\z ScaleEntity s\obj,.4,.4,.4 EntityColor s\obj,0,0,0 EndIf EndIf ;move car If KeyDown(203) Then If speed>0 Then TurnEntity car,0,speed*2,0 counter1=counter1+1 If counter1>30 Then drifting1=drifting1+2 Else counter1=0 EndIf Else counter1=0 EndIf If KeyDown(205) Then If speed>0 Then TurnEntity car,0,-speed*2,0 counter2=counter2+1 If counter2>30 Then drifting2=drifting2+2 Else counter2=0 EndIf Else counter2=0 EndIf If EntityCollided( car,SCENE ) If KeyDown(200) speed=speed+.02 If speed>.7 speed=.7 Else If KeyDown(208) speed=speed-.02 If speed<-.5 speed=-.5 Else speed=speed*.99 EndIf MoveEntity car,0,0,speed TranslateEntity car,0,GRAVITY,0 Else TranslateEntity car,x_vel,y_vel+GRAVITY,z_vel EndIf ;update camera If speed>=0 dx#=EntityX( target,True )-EntityX( camera ) dy#=EntityY( target,True )-EntityY( camera ) dz#=EntityZ( target,True )-EntityZ( camera ) TranslateEntity camera,dx*.1,dy*.1,dz*.1 EndIf PointEntity camera,car DrawImage pic,0,0 count=count+1 If count>50 Then count=0 If count>10 Then Text 10,10,"D D D D D D D " Text 10,30," D D D D D D D " Text 10,50,"D D D D D D D " Text 10,70," D D D D D D D " Text 10,90,"D D D D D D D " Text 10,110," D D D D D D D " Text 10,130,"D D D D D D D " Text 10,150," D D D D D D D " Text 10,180,"D D D D D D D " Text 10,210," D D D D D D D " Text 10,230,"D D D D D D D " Text 10,250," D D D D D D D " EndIf If count>20 Then Text 10,10,"DE DE DE DE DE DE DE " Text 10,30," DE DE DE DE DE DE DE " Text 10,50,"DE DE DE DE DE DE DE " Text 10,70," DE DE DE DE DE DE DE " Text 10,90,"DE DE DE DE DE DE DE " Text 10,110," DE DE DE DE DE DE DE " Text 10,130,"DE DE DE DE DE DE DE " Text 10,150," DE DE DE DE DE DE DE " Text 10,180,"DE DE DE DE DE DE DE " Text 10,210," DE DE DE DE DE DE DE " Text 10,230,"DE DE DE DE DE DE DE " Text 10,250," DE DE DE DE DE DE DE " EndIf If count>30 Then Text 10,10,"DEM DEM DEM DEM DEM DEM DEM " Text 10,30," DEM DEM DEM DEM DEM DEM DEM " Text 10,50,"DEM DEM DEM DEM DEM DEM DEM " Text 10,70," DEM DEM DEM DEM DEM DEM DEM " Text 10,90,"DEM DEM DEM DEM DEM DEM DEM " Text 10,110," DEM DEM DEM DEM DEM DEM DEM " Text 10,130,"DEM DEM DEM DEM DEM DEM DEM " Text 10,150," DEM DEM DEM DEM DEM DEM DEM " Text 10,180,"DEM DEM DEM DEM DEM DEM DEM " Text 10,210," DEM DEM DEM DEM DEM DEM DEM " Text 10,230,"DEM DEM DEM DEM DEM DEM DEM " Text 10,250," DEM DEM DEM DEM DEM DEM DEM " EndIf If count>40 Then Text 10,10,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,30," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" Text 10,50,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,70," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" Text 10,90,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,110," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" Text 10,130,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,150," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" Text 10,180,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,210," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" Text 10,230,"DEMO DEMO DEMO DEMO DEMO DEMO DEMO " Text 10,250," DEMO DEMO DEMO DEMO DEMO DEMO DEMO" EndIf If count=11 Or count=21 Or count=31 Or count=41 Or count=1 Then CopyRect 0,0,256,256,0,0,0,TextureBuffer( tex ) UpdateWorld RenderWorld Text 10,10,EntityX(car,1)+","+EntityY(car,1)+","+EntityZ(car,1) Flip Wend End Ihr könnt ja einfach in den Driver Ordner bei Samples 3D unter Mak diesen Code einbinden (Backup vorher ![]() Die Reifenspuren sind auch nur momentan damit ich sehe wie stark er ausbricht. PS: Lasst euch durch das DEMO nicht stören ![]() If count=11 Or count=21 Or count=31 Or count=41 Or count=1 Then CopyRect 0,0,256,256,0,0,0,TextureBuffer( tex )
ein ; davor |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group