Collisiondetection und Objektmanagement
-
Hallo liebe C++ Coummunity,
ich bin gerade dabei ein Spiel zu schreiben und bin jetzt soweit, dass ich mir um die Collisiondetection Gedanken mache. Ich würde gerne Wissen wie ich dies am besten bewerkstelligen kann. Ist es besser viele vectoren mit mit jeweils einer Klasse zu haben und diese dann mit einander zu überprüfen oder einen vector der auf Boost basiert und somit die Datentypen egal werden.
Wäre es von Vorteil eine Klasse ObjectManager zu schreiben die alle Objekte enthält?
Und noch eine Frage zum Schluss^^. Wenn ich z.B. 30 Gegner habe, muss jeder ein Objekt der Gegnerklasse sein, womit sie sehr Ressourcen fressend werden, gibt es da einen Trick diese alle mit einem Zeiger auf einer Klasse basieret existieren zu lassen?
-
HAWXthy schrieb:
Ist es besser viele vectoren mit mit jeweils einer Klasse zu haben und diese dann mit einander zu überprüfen oder einen vector der auf Boost basiert und somit die Datentypen egal werden.
Hö... ?
HAWXthy schrieb:
Wäre es von Vorteil eine Klasse ObjectManager zu schreiben die alle Objekte enthält?
Definitiv. Es sollte eine Object-Klasse (Attribute wie Geschwindigkeit etc.), eine ObjectManager (Verwaltungspool) und eine ObjectFactory (Lädt die Dateien mit ihren Dateinamen) geben.
HAWXthy schrieb:
Und noch eine Frage zum Schluss^^. Wenn ich z.B. 30 Gegner habe, muss jeder ein Objekt der Gegnerklasse sein, womit sie sehr Ressourcen fressend werden, gibt es da einen Trick diese alle mit einem Zeiger auf einer Klasse basieret existieren zu lassen?
Du könntest allerhöchstens Abbilder machen bzw. mit Zeigern rumhantieren. Ist aber unschön. Dein Rechner hat genug Leistung um mit 30 Gegnern umzugehen, mein kleiner Padawan.
-
Ok, dann mal vielen Dank^^
Und wie sieht es aus, mit der Collisiondetection? Wenn ich z.B. 30 Gegner habe und diese alle auf Objekten, die z.B. Blöcke sind, laufen, muss ich doch jeden Block mit jedem Gegner überprüfen. Ich weiß das man bei einer Tileengine festellen kann an welcher Stelle sich ein Objekt befindet. Kann ich dies auch bei einer Engine machen, die nicht auf Tiles basiert? Achso ich schreibe zur Zeit ein 2D Jump and Run Spiel.
-
Ach reicht wenn du das so überprüfst. Sprich jedes einzelne.