Schwerkraft Problem
Übersicht

JeckBetreff: Schwerkraft Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weis einer von euch wie man eine realistische Schwerkraft hinbekommt.
Ich lasse meine Figur nach unten bewegen. Wenn sie den Untergrund berührt bleibt sie ja stehen, wenn der Untergrund sich aber auch bewegt fellt sie hindurch. Sie sollte sich aber mitbewegen. Wie simulire ich also Schwerkraft |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde das mal so machen:
Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
SetBuffer BackBuffer() Const wand=1,stein_col=2 cam= CreateCamera() PositionEntity cam,0,0,-10 wall=CreatePlane() PositionEntity wall,0,-5,0 EntityType wall,wand stein=CreateCube() EntityColor stein,255,0,0 PositionEntity stein,0,10,0 EntityType stein,stein_col Collisions stein_col,wand,2,1 While Not KeyHit(1) MoveEntity wall,1,0,0 If Not EntityCollided(stein,wand) Then MoveEntity stein,0,-1,0 Else MoveEntity stein,1,0,0 End If UpdateWorld RenderWorld Flip Wend Ne bessere Idee hab ich net ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
the Freak, er wollte eine >realistische< Gravitation haben. Wie gut, dass ich dafür immer ein und den selben Code hier auf der Platte rumfliegen habe.
Code: [AUSKLAPPEN] Graphics3D 640,480,32,2
SetBuffer BackBuffer() xg#=0;X-Geschwindigkeit yg#=0;Y-Geschwindigkeit zg#=0;Z-Geschwindigkeit camera=CreateCamera() light=CreateLight() cube=CreateCube() PositionEntity camera,0,8,-12 TurnEntity light,70,0,0 ;Hauptschleife While Not KeyHit(1) ;Tastaturabfrage If KeyDown(203) xg=xg-0.01 If KeyDown(205) xg=xg+0.01 If KeyDown(200) zg=zg+0.01 If KeyDown(208) zg=zg-0.01 If KeyDown(57) If EntityY(cube)<=0 yg=.5 ;Bewegungsanwendung MoveEntity cube,xg,yg,zg ;Änlichkeit eines ;Luftwiederstandes xg=xg*.98 yg=yg*.98 zg=zg*.98 ;Gravitation yg=yg-0.01 ;Billige Kollisionsabfrage If EntityY(cube)<0 ;Cube auf Höhe des Bodens bringen PositionEntity cube,EntityX(cube),0,EntityZ(cube) ;Abprallen yg=-yg/2 End If RenderWorld Flip Wend End edit1: Blitz3D kann im übrigen keine Kollision korrekt auf bewegte Objekte durchführen. Dazu bedarf es dann einer Physikengine.^^ |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hätte da mal eine idee die die FPS nicht gerade freuen würde aber wenn kollision nur mit einem bewegte und mirt einem stehenden geht:
player bewegen update world boden bewegen update world Renderworld die FPS wird sich bedanken aber so bekommt man in der theorie igentlich immer nur ein bewegtes objekt |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
FTC, das geht nicht, weil der Boden dann durch den Player durch geht. Oder wie meinst du das? Du kannst in Blitz kein Polygon auf ein Radius kollidieren lassen. Ausser MeshesIntersect, was aber keine Kollisionsposition erlaubt. Auch werden Kollisionen nicht gestoppt, sondern gehen 'durch'.
Was man eventuell auch machen könnte ist: - Welt und Player in gleicher Richtung bewegen - UpdateWorld - Player -Eigenbewegung - UpdateWorld Die Methode dürfte (fals es überhaupt funktioniert) recht arg funktionieren. Welt darf sich dabei nicht drehen. Oder einfach eine Physikengine benutzen. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
welchen radius????
wir reden doch vom collisionstype 2 das ist polygon auf polygon meine methode geht zwar auch nicht das liegt yaber nicht an irgendwelchen radien das problem von blitz ist di aufeinander-zu bewegung ich denk mir das so: blitz sieht der Spieler fällt durch den Boden und speichert intern die globale 3d koordinate an der der Spieler hätte "hängenbleiben" müssen. so die erde bewegt sich nun auf den spieler zu die stelle an der die kugel hängen bleiben muss verlagert sich nach oben, blitz bekommt davon nichts mit... bei updateworld führt es an der gespeicherten stelle die kollision durch, die stelle liegt aber schon unter der erde.... |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Collisions -Type =2 ist Kugel auf Polygon. Polygon auf Polygon hat Blitz3D nicht, ausser MeshesIntersect, was aber bei einer Kollisions die Speielerbewegung nicht stoppt, sondern nur eine 1 zurück geben kann.
Es ist nicht ohne weiters möglich ein 'mitbewegen' eines Spielers auf ein bewegtem Unterground zu machen, wie Jeck am Anfang hier die Frage stellte. Es gäbe Möglichkeiten wie man sowas umgehen könnte. Die Möglichkeiten würde aber wesentliche Einschränkung mitsich bringen und das Handling auch fast unmöglich machen. Es bleibt leider nur die Möglichkeit es mit einer Physikengine zu machen. Dazu gibt es u.a. folgende: - Devil Physic Engine http://www.dc.chat-blitz.de/de...Index.html - Newton Game Dynamics http://www.newtondynamics.com/links.html - Tokamak Game Physics http://www.tokamakphysics.com - Physik Engine ODE http://www.ode.org Mit der von Devils bin ich ganz zufrieden. Tokamak hat mir ein bisschen Probleme bereitet, kann aber auch meine damalige Unzulänglichkeit gewesen sein. Die anderen (Newton und ODE) kenne ich nicht. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mir jetzt die unterste Physic Engine gezogen.
kann mir fieleicht jemand sagen wie man die benutzt? |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für Blitz3D bräuchtest zu zumindest noch ein passenden Wrapper zu den Dlls. Also eine Art 'Übersetzer' für Blitz. Die Versionsnummern müssen dabei übereinstimmen. Meist liegt dann ein kleines Codebeispiel beim Wrapper bei... | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und woher krig ich so einen Warper und was meinst du mit die Nummern müssen übereinstümen? | ||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also wenn du das neuste Blitz-Update hast (1.98), dann brauchst du auch den Wrapper für Version 1.98...
So hab ich das auf jeden Fall verstanden o0 |
||
Twitter
Download Jewel Snake! Windows|Android |
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Haben diese Warper noch irgendein besonderen Namen?
Denn ich hab gegogelt aber leider nicht das richtige gefunden. |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutz doch gleich die devil physics. Ich glaube die sind auf blitz bereits abgestimmt und du brauchst kein wrapper, sondern musst die dlls nur includen.
mfg. P.S. sie heißen wrapper, nicht warper ! |
||
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab nach einem download der devil physics gesucht bin zwar auf Seiner Seite gekommen. Aber eine Möglichkeit zum downloaden fand ich nicht könnt ihr mir helfen? | ||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geh auf www.devil-engines.net, dann auf Page, Products, Devil Physic Engine. Ganz unten auf der Seite gibts die Downloads. | ||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.dc.chat-blitz.de/de...n_DPE.html
da stehen ganz unten 3 links... der letzte ist der neuste MfG. |
||
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mir das teiel nun gezogen und alle .bb Datein gestartet aber bei allen wurde irgendetwas nicht gefunden.
Weis vieleicht einer von euch wie man das Teiel benutzt? |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du die Version mit Newton verwendest, musst du dir zuerst den Newton wrapper runterladen, kA wo es den gibt ...
Oder du benutzt einfach die Version mit BlitzODE und kopierst die Userlibs in Blitz3D/userlibs. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach dem entpacken der Dateien hast du u.a. ein Verzeichnis welches .decls -Dateien beinhaltet, diese Dateien musst du in dein Blitzordner ins \userlibs rein kopieren. Damit 'bringst du Blitz neue Befehle bei', diese werden dann im Code auch blau eingefärbt, wie andere Befehle auch. Dann klappt auch alles.
Falls du weitere Fragen hast, so frag. Ich finde die Beispiele allerdings etwas zu überladen, so das es recht schwer ist, sich Informationen über die Funktion der Physikengine zu holen, wobei sie echt extremst einfach sind.^^ |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Jeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab aber leider keinen .decls Datein beim Download bekommen deshalb hab ich das teiel nochmal geladen.
Aber es warn wieder keine .decls Datein drin. Was mach ich verkert? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group