Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:49

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Okt 11, 2005 22:55 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Guten Tag,

abermals scheitert es bei mir an einfach Dingen.
Dieses "einfache" Ding, dass ich hierbei bewerkstelligen will ist das Nutzen der Physikengine ODE.
Dazu habe ich gleich folgendes Beispielprogramm geschrieben, welches im Prinzip 2 Kugeln anzeigt (Wie ich anzeige, zeige ich euch nicht... unwichtig... Es klappt aber!). Die Position wird auch super übertragen (Alles ist da, wo es hinsoll), aber der kleine physikalische Effekt, dass die einen Kugel nicht durch die andere geht, sondern abprallt.
Hier mal mein Code. Da ich in english leider nicht sehr begabt bin, konnte mit die doc von ode.org nur wenig helfen und das meiste habe ich probiert mit den beispielen zu lernen. Ohne erfolg, aber seht selbst:

(achja, viele variablen sind vielleicht nicht genutzt, aber das ist ja egal.. Das sagt einem Delphi ja!)
Code:
  1.  
  2. //Die Variablen:
  3. var world:pdxworld;
  4.     masse:tdmass;
  5.     position:PdVector3;
  6.     mass : tdmass;
  7.     space : PdxSpace;
  8.     contactgroup : TdJointGroupID;
  9.     ground : PdxGeom;
  10.     sphere,sphere2 : PdxGeom;
  11.     contact : tdcontactgeom;
  12.     body,body2 : PdxBody;
  13.  
  14. //Initzeugs:
  15. world:=dworldcreate;
  16.  
  17.   space := dHashSpaceCreate(nil);
  18.   contactgroup := dJointGroupCreate (0);
  19.   dWorldSetGravity(world,0,9.81,0);
  20.   ground := dCreatePlane (space,0,0,1,0);
  21.  
  22.  
  23. body:=dBodyCreate(world);
  24. dBodySetPosition(body,x,y,0);
  25. masse.mass:=60;
  26. dBodySetMass(body,@masse);
  27. dBodyEnable(body);
  28. dMassSetSphere(mass,1,2);
  29. dBodySetMass(body, @mass);
  30. sphere := dCreatesphere (space,1);
  31. dGeomSetBody (sphere,body);
  32.  
  33.  
  34. body2:=dBodyCreate(world);
  35. dBodySetPosition(body2,x,y+2,0);
  36. dBodySetMass(body2,@masse);
  37. dBodydisable(body2);
  38. dBodySetMass(body2, @mass);
  39. sphere2 := dCreatesphere (space,1);
  40. dGeomSetBody (sphere2,body);
  41.  
  42. //Schleife BEGIN
  43.   dCollide(sphere,sphere2,1,contact,sizeof(contact)); //Halt so Kolisionsabfrage... (funzt wohl nich...)
  44.  
  45.   dWorldStep (world,thetime/1000); //thetime ist die Zeit seit dem letzem schleifendurchgang. /1000, damits schön langsam is
  46.   dJointGroupEmpty (contactgroup);
  47.  
  48.   position:=dBodyGetPosition(body); //Postion des 1. bodys holen und damit vom object ändern. funzt!
  49.   x:=position[0];
  50.   y:=position[1];
  51.   z:=position[2];
  52.   gldraw; //zeichnen
  53. //Schleife ENDE
  54.  


Wäre nett, wenn ihr mir helfen könntet.

mfg Cyberpuer


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 13, 2005 11:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Tja, ich habe es mittlerweile gelöst...
So richtig kapiere ich meinen Code zwar nicht, da doch SEHR viel aus Beispielen abgekupfert ist, aber hauptsache es funktioniert... :roll:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 14, 2005 14:34 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Bevor du dich da in irgendwas verrennst... Hast du's schonmal mit Newton probiert?

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 17, 2005 21:34 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
apropos.. mag nicht mal jemand ein (deutsches) Tutorial zu den absoluten Newtonanfängen schreiben? Danach kann man sich dann auch ganz gut durchs Englische wurschteln, aber zum Anfangen weiß ich dann nie, was ich schon verstanden habe, und was nicht. (wenns eben auf englisch ist)

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Okt 17, 2005 21:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Denke, dass ich mit ein wenig Zeit ein ODE-Tut schreiben würde.
habe mich darin jetzt festgefressen und denke, dass es durchaus nicht schlecht ist.
Mal sehen, ob ichs mache. Wäre natürlich mal ein noch nicht hier aufgegriffenes Thema...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 18, 2005 07:41 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 21, 2003 17:36
Beiträge: 141
Maricello hat geschrieben:
apropos.. mag nicht mal jemand ein (deutsches) Tutorial zu den absoluten Newtonanfängen schreiben?

Ist ne Idee, mal sehen was sich machen lässt von meiner Seite aus.
(Ohne Garantie, dass es jemals fertig wird!!)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 18, 2005 13:01 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn Tutorials geschrieben werden dann gleich im WIki-Format und dann zur durchsicht an einen Lektor schicken. Bei Newton bietet es sich an, da mal Sascha drübergucken zu lassen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Okt 18, 2005 21:25 
Offline
DGL Member

Registriert: Fr Dez 10, 2004 16:59
Beiträge: 52
Das wär echt super, denn ohne Physik geht ja erst mal gar nix :) (naja, zumindest nur wenig. Ich glaub Knights Of The Old Republic gebraucht z.B. keine wirklich Physikengine)

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 15 Queries | GZIP : On ]