3D-Welt
Übersicht

TodeskopBetreff: 3D-Welt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist es möglich eine Kugel zu machen (die welt) und den Spieler (camera)
darauf zu gravitieren.Also das es so wie in der realität eine welt gibt an die man dann angezogen wird. Also so das z.b translateentity camera,0,0,-1 nicht nach unten gezogen wird sonder immer an der erde egal ob man über kopf ist oder nicht. Hoffe die frage ist dieses mal deutlich formuliert..... |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Terrain zu erstellen wird schwieriger als die Gravitation. Die kannst du nämlich mit Atan2 passend berechnen. | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die welt zu machen ist kein problem für mich da ich einfach ein rundes meshterrain in cybermotion machen kann aber wenn ich jetzt die welt hab wie
berechne ich das genau. ~edit~ könnte man nicht die komplette schwerkraft der erde nach bauen dazu gibt es doch bestimmt berechnungen und so was? also so das man ihrgentwie macht das die erde einen anzieht und eine 2te kugel um die erde macht dan noch einen druck daruf......so das ,dass springenn sehr realistich wirkt und so |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde einfach einen Pivot erstellen, der der Bewegung, nicht jedoch dem mouselook folgt ( den wendest du dann direkt auf die cam an ) und jenen mit moveentity pivot,0,-1,0 nach unten ziehen.
MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok ich werds bald dann mal probieren ..... | ||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst nur den Richtungsvector von deinem Spieler zu deinem Erdmittelpunkt ausrechnen und das setzt du dann bei Translate Entity ein .
Die "Erdanziehung" wirkt auf deinem Spieler so das er beschleunigt wird also mußte dir Variablen machen für x,y,z die die Geschwindigkeit enthalten . Pro Sekunde wird er um 9,81 m beschleunigt richtung Erdmittelpunkt . beschleunigt x = Richtung x*9.81 beschleunigt y = Richtung y*9.81 beschleunigt z = Richtung z*9.81 Um das richtig auszurechnen mußt du die Zeit deiner Hauptschleife wissen z.B. bei 50 FPS sind das 20 millisekunden bzw. 0.02 Sekunden . beschleunigt x=beschleunigt x*0.020 * Masse beschleunigt y=beschleunigt y*0.020 * Masse beschleunigt z=beschleunigt z*0.020 * Masse Geschwindigkeitx =Geschwindigkeitx + beschleunigt x Geschwindigkeity =Geschwindigkeity + beschleunigt y Geschwindigkeitz =Geschwindigkeitz + beschleunigt z Und du mußt ne Funktion haben die den Maßstab von deiner Spielwelt umrechnen kann in Meter . Und dran denken das Geschwindigkeit jetzt in Meter die Sekunde ist . Wenn du deinen Spieler jetzt 50 mal in der Sekunde bewegst sind die Schritte also Geschwindigkeitx * (1/50) |
||
Krümel |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
vor längerer zeit hatte ich ein ähnliches problem. hab meinen sourcecode mal rausgekramt und aufs wesentliche reduziert... evtl. hilfts, viele Grüße., Krümel Code: [AUSKLAPPEN] Graphics3D 640,480,16,2 tex=CreateTexture(256,256) ScaleTexture tex,0.1,0.1 SetBuffer TextureBuffer(tex) Rect 0,0,128,128 : Rect 128,128,128,128 Flip SetBuffer BackBuffer() Scale=4 Obj=CreateCube() ScaleEntity Obj,Scale,Scale,Scale EntityTexture Obj,Tex EntityType Obj,1 CameraPivot=CreateSphere(16) MoveEntity CameraPivot,0,0,-Scale-4 EntityColor CameraPivot,255,0,0 EntityType CameraPivot,2 Camera=CreateCamera(CameraPivot) MoveEntity Camera,0,0.5,-5 light=CreateLight(2) MoveEntity light, 300,500,-500 Collisions 2,1, 2,1 While Not KeyHit(1) c=CountCollisions(CameraPivot) If c<>0 AlignToVector CameraPivot,CollisionNX(CameraPivot,c),CollisionNY(CameraPivot,c),CollisionNZ(CameraPivot,c),2;, 0.9 Else lx#=(EntityX(Obj)-EntityX(CameraPivot)) ly#=(EntityY(Obj)-EntityY(CameraPivot)) lz#=(EntityZ(Obj)-EntityZ(CameraPivot)) TranslateEntity CameraPivot,lx,ly,lz EndIf If KeyDown(200) MoveEntity CameraPivot, 0, 0, 0.1 If KeyDown(208) MoveEntity CameraPivot, 0, 0,-0.1 If KeyDown(203) TurnEntity CameraPivot, 0, 2, 0 If KeyDown(205) TurnEntity CameraPivot, 0,-2, 0 UpdateWorld RenderWorld Flip Wend |
||
Todeskop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
joooo dankie das ist perfect | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group