Hi,
ich hab zwar keine zeit zu helfen, rate euch aber das ganze mit opengl zu machen.
grüße moritz
Hi,
ich hab zwar keine zeit zu helfen, rate euch aber das ganze mit opengl zu machen.
grüße moritz
Also, die kompilete Version musste vllt zwei drei mal starten, weiß auch nicht wieso, und wenn du objekte beeinflussen willst musste erstmal in der settings.ini "debug=1" machen. dann kannste objekte mit der rechten maustaste selektieren und dann mit der linken kraft ausüben und wenn die objekte schlafen einfach mit "w" wie wake aufwecken.
So ich hoffe, ich habe das Problem jetzt gelöst
Update PhysicEngine Version 3.1
Bessere
Kollisionserkennung, andere Kollisionsverarbeitung,
Geschwindigkeitssteigerung, bessere Oberfläche, bessere
Kollisionshierarchie, Reibung, Fehler behoben
Hey danke für dein feedback,
ich arbeite zur zeit an der autoit physie engine und hab die tage große fortschritte gemacht, werde diese auch die tage veröffentlichen. Wenn die physikengine läfut, dann übertrage ich sie auch in diese engine
grüße moritz
Hi,
diese zweite engine habe ich geschrieben, als ich gerade mit directx 11 angefangen habe, was natürlich Fehler und Performance schwächen erklären sollte. Ich werde mich in nächster zeit mal dran setzen und schauen was ich tun kann, Vllt werde ich auch mal ein paar bespiele machen. An sich war halt die Idee, das man Objekte in die Engine gibt und diese zeichnet diese dann parallel zu autoit.
aber an sich kann ich dir sagen, arbeite mit dieser engine weiter, die hat mehr potential. Weiterhin gibt es noch eine andere neue engine mit direct2d die solltest du dir mal anschauen, die scheint mir auch recht gut.
grüße Moritz
Version 3 war halt komplett neu geschrieben, und enthält daher noch nen paar bugs, aber ich kann dir sagen, dass diese Version um Welten besser ist ;). Und du kannst die objekte nicht mehr bewegen weil sie "schlafen", wenn du 'w' wie wake drückst, dann gehts wieder
Version 3.1 ist jetzt fast fertig ...
Hi, cooles beispiel, ich hatte auch schon daran gedacht, die kollisionen auf dieses weise zu berechnen. Diese berechung mag bei kugel zuwar funktionieren, bei den polygonen erhält man jedoch x = sin(x)/cos(x), was sich nur numerisch lösen lässt oder durch ein approximation zb. mit einem taylor polynom. Weiterhin müsste man festlegen, wie viele iterationen maximal in einer frame passieren dürfen, weil es sonst ehr langsamer als schneller wird. Als nächstes kommt eh erstmal das opengl update und andere verbesserungen und cleanup.
Nutz jemand sonst diese engine?
grüße Moritz
Das Problem ist, das die Engine zu langsam ist, um alle Kollisionen nachzuberechnen, weil sie/autoit dafür schlicht zu langsam ist. Man würde nicht wieder im "Jetzt" ankommen
Edit: Danke für die Info über dem Fehler mit dem '=', wobei die funktion eh nicht mehr gebraucht wird
Mars, ich weiß woran das liegt ich habe das extra so gemacht, damit die PhysicEngine bei jedem gleich schnell läuft. Ich denke ich werde aber noch die option einbauen, dass wenn der zeitschritt zu groß ist, zb.größer als 30ms, dass dann ein fester zeitschritt verwendet wird. Außerdem werde ich noch die option einbauen, die winkelgeschwindigkeit und lineare geschwindigkeit zu limitieren.
aber danke für deine hilfe, wie gefällt dir diese version sonst so?
Hi,
danke für die Rückmeldung, wenn du das Fenster festhälst wird nichts berechnet. Lässt du es wieder los wird der nächste zeitschritt berechnet, das heißt die objekte machen einen satz und könnne sich durchdringen. Das kann ich aber noch ändern. Der andere Fehler ist mir auch schon aufgefallen, da muss ich auf jeden fall mal schauen woran das liegt. Ich arbeite gerade noch an einem opengl renderer.
grüße Moritz
Hi Leute,
es ist so weit, nachdem meine Version 2 der Physik Engine so gut angekommen ist, hatte ich die Tage die Motivation eine Version 3 zu schreiben. Diese ist nun viel robuster um unterstützt Positionkorrektur, sodass man ohne Probleme mit Schwerkraft arbeiten kann. Außerdem fangen Körper die sich länger nicht bewegen an zu schlafen, sodass sie Leistung sparen. Aber seht selbst:
Edit Version 3.1: Ich habe die Version jetzt dahin gebracht, wo Version 3.0 schon sein sollte. Man kann nun ohne Problem Objekte stapeln ohne Fehler, mit Reibung und ohne das sich die Objekt durchdringen. Außerdem wurde die Kollisionhirarchie überarbeitet um die Performence zu steiern. Ich hoffe euch gefällt diese Version nun ;).
Update: Performance verbessert und Opengl Rendering hinzugefügt, sowie weitere kleine Verbesserungen
Update2: Bessere Kollisionserkennung, andere Kollisionsverarbeitung, Geschwindigkeitssteigerung, bessere Oberfläche, bessere Kollisionshierarchie, Reibung, Fehler behoben
Download : autoit.de/wcf/attachment/16514/
alte Version2: autoit.de/wcf/attachment/16377/
alte Version: autoit.de/wcf/attachment/16237/
autoit.de/wcf/attachment/16474/
es GAB noch kleine Felher mit der Reibung, aber ich arbeite dran
Hi Toffmo,
damit die Engine korrect funktioniert müsste man nochmal nen bisschen Arbeit rein stecken. Man müsste Positionskorrektur einführen und zu vollständigen Korrektheit constraints einführen. Das ist die einzige Möglichkeit das mit der Gravitation zu lösen. Ersteres könnte ich in nächster zeit mal probieren :). Oder ich schreibe ne dll für box2d physik engine.
Edit: So ich habe die Engine nochmal überarbeitet und eine Positionskorrektur eingebaut, werde sie morgen oder übermorgen hochladen
grüße Moritz
Hallo zusammen,
krass wie viele Antworten hier gekommen sind . Also erstmal hab ihr meine Absicht korrekt verstanden, das Programm soll Autoit Code zu C++ Code konvertieren. Der Sinn ist zum einen der Geschwindigkeitszuwachs, aber auch für Leute die sich nicht so mit C++ auskennen, mal zu sehen wie sowas in C++ aussieht. Das hier gepostet Beispielprogram von Marthog ist schon sehr beeidruckend und schein gut zu funktionieren. Wäre cool davon mal den source code zu sehen.
Moin zusammen,
ich habe schon seit längerem die Idee einen Autoit zu c++ konverter zu schreiben, hätte jemand interesse dabei mitzumachen?
grüße Moritz
du musst oben noch #include "string.h" , es dauert ne weile bis man mit den anweisungen was anfange kann
beim send befehl muss du vPacket.c_str() und dann vPacket.length() sonst bekommst du die größe der vPacket klasse, also
send(sConnect, vPacket.c_str(), vPacket.length(), NULL); oder wenn der string null terminiert sein soll send(sConnect, vPacket.c_str(), vPacket.length()+1, NULL);
Hi,
schönes Game und funktioniert auch echt gut und man sieht das viel arbeit drin, jedoch muss ich sagen, dass die grafiken nicht so schön sind und auch nicht so ineinander umgehen vllt kannste da nochmal mit paint ran
grüße Moe
Also die Kollisionserkennung ist eigentlich recht schnell und in der demo ne pause, jedoch hatte ich bei der demo so 90 fps. Naja mal schauen was man da noch alles raus holen kann, ist ja erst version 0.6. Wie viele FPS hast du denn bei der quickdraw demo?