[Projekt]Grafik-Engine

Und die Kugeln fliegen! :D

Heute mal wieder ein wenig am Itemsystem gebaut und Waffen feuern nun Kugeln ab wenn man schießt :) Gibt zwar noch einige Dinge dran zu machen (z.B. die Kollisionserkennung für die Kugeln, obwohl ich da das selbe System vom Player nehmen kann), aber an sich siehts schonmal gut aus ;)

Bullet.jpg
Hatte die Kugelgeschwindigkeit stark reduziert damit ich schneller bin und die Kugel abfangen kann :D

P.s. Ja ich weiss, hässliche Texture bei der Waffe aber ich wollts erstmal nicht komplett ohne haben! :ugly: Kommt also noch was besseres
 
Hm andere Sachen?^^
Also bis jetzt kann man mit linker Maustaste eben schießen bzw. mit der rechten ranzoomen (muss aber noch verfeinert werden)
 
Aktuell hab ich nur ein Mausklick = eine Kugel aber das liese sich innerhalb kürzester Zeit an jede Waffe anpassen! War bis jetzt noch nicht so entscheident ^^
 
Bei der Kollisionserkennung mit den Kugeln und generell mit sehr schnellen Objekten musst du iterativ arbeiten. D.h, dass du nicht einfach jedes x-te Frame die Kugel in einem Schritt bewegst und dann die Kollision testest, sondern, dass du die Kugel nur in sehr kleinen Schritten bewegst, bis sie weit genug für dieses Frame gekommen ist. Ich hoffe du verstehst, wie ich das meine ^^
Das ganze hat den Grund, dass sonst keine Kollision erkannt wird. Stell dir vor, die Kugel ist ganz knapp vor einer Mauer (also noch keine Kollision). Wenn du die Kugel dann das nächste mal weiter bewegst, kann es aber sein, dass sie bereits hinter der Mauer ist. -> Du erkennst keine Kollision
Deshalb musst du die Kugel nicht in einem Schritt bewegen, sondern in vielen kleinen Schritten, um sicher zu sein, dass die Kugel auf jeden Fall nicht einfach durch ein Objekt kann. :daumen:
Die Optimale Größe für so einen kleinen Schritt wäre z.B. die Länge der Kugel selbst. Also so, dass das hintere Ende der Kugel gerade auf dem vorderen Ende der Kugel des letzten Frames liegt :ugly:

Lg
 
Dazu hätt ich auch mal eine Ideenfrage :ugly:

Kann man nicht jedem Munitionsobjekt oder so ihre Flugbahn z.B. als Gerade oder eben physikalisch korrekter als Parabel mitgeben? sprich es wird einfach nicht eine Kollision des Objektes erkannt, sondern bei jedem Update oder (wie KingofKingz schrieb) öfter geschaut, ob die Gerade/Parabel-Bewegung zu einem Zeitpunkt t eben das Volumen eines anderen Objktes schneidet.

Keine ahnung, ob das zu realisieren ist, dann gibt man der Klasse eben einen Konstruktor mit, wo man die Parameter des gleichungstyps übergibt und dann wird eben immer gerechnet ^^


Jaja ... beim Programmieren im Informatikstudium sollen wir auch immer alorithmisch denken :D

Wenn Interessiert könnte ich mich damit ein bissel beschäftige, war jetzt eben nur ein Einfall ...

PS: Respekt 4 Projekt :daumen:
 
@KingofKingzZ && dadade :D

Ich hatte vor einer weile schon lange mit der Kollisionserkennung experimentiert und das Problem was du beschreibst King ist mir durchaus bewusst geworden. Daher basiert das bei mir auch auf Vektorrechnung mit Abstand Gerade/Punkt - Ebene (wenn auch in einer noch etwas abgewandelten Form). Dadurch kann ich mir den Abstand eines Punktes zum nächsten Objekt geben lassen, da ich den exakten Schnittpunkt berechne, wo die Gerade ihren Durchstoßpunkt hätte. Daher sollte das an sich kein Problem werden ;)
Vorallem lassen sich viele Dinge dadurch sehr genau bestimmen und ich muss auch nicht jedes Frame diese Berechnungen durchführen, da ich ja vorher schon eine gewisse Vorhersage habe wie was auftreten wird :)

Und natürlich auch danke an alle die das Projekt verfolgen und es auch scheinbar ganz gut finden! Das steigert gleich immer die Motivation dran zu arbeiten :)
 
Wenn du den Schnittpunkt aber schon vorher berechnest, wie machst du das dann mit dynamischen Objekten?
Da müsstest du es ja wieder jedes Frame bzw. alle paar Frames machen.
 
Naja Objekte, die sich eben bewegen.. wie z.B. Spieler.
Ich weiß nicht, ob ich das oben richtig verstanden habe, aber wenn du den Punkt vorberechnest, wo die Kugel einschlägt, dann ist da nicht mit einberechnet, dass evtl. während die Kugel noch fliegt, ein Spieler o.ä. reinrennt oder?
 
Es ist ja nicht so, dass diese Berechnung nach dem Schuss durchgeführt wird und dann war es das! Es wird halt nur nicht jedes Frame durchgeführt.
Die Steuerung vom Spieler wird z.B. 60 mal in der Sekunde geupdatet, sieht aber denoch total flüssig aus. Genauso ist es mit der Kollision, 60 updates pro Sekunde.
60 Berechnungen oder 1000 sind schon ein Unterschied ^^
 
Zurück