Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

28.10.2015, 17:42

C++ SFML Projekt zum üben von Kollisionsabfragen

Hi hier bin ich schon wieder. Nach dem ihr mir Gestern so gut geholfen habt, ist Pong heute "Fertig" geworden.
Also ein Game Menü und sowas will ich jetzt nicht mehr machen.

Aber nun zum eigentlichem Thema, ich suche ein leicht zu programmierendes Spiel indem ich mich mit vielen Kollisionsabfragen beschäftigen muss. Da ich mir zurzeit nicht vorstellen kann wie man ein RPG zBsp programmieren kann indem man ständig mit jedem Objekt eine Abfrage machen muss.

Und nun zum Zweiten, kann mir jemand kurz erklären wie man so viele Abfragen auf einmal hinkriegt. Nur in der Theorie in C++ und SFML will ich mich dann selber damit beschäftigen.

Danke!

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

2

28.10.2015, 17:58

Aber nun zum eigentlichem Thema, ich suche ein leicht zu programmierendes Spiel indem ich mich mit vielen Kollisionsabfragen beschäftigen muss. Da ich mir zurzeit nicht vorstellen kann wie man ein RPG zBsp programmieren kann indem man ständig mit jedem Objekt eine Abfrage machen muss.
Ich bin gearde an einem Projekt dran (Space Fly - Mein Hobbyprojekt [Feedback erwünscht]). Dabei muss ich jeden Asteroiden in einer Schleife durchlaufen und eine Kollisionsabfrage mit dem Spieler machen. Vllt kannst du ja so ein ähnliches Programm schreiben und dich nur auf die Kollision konzentrieren.

Zum zweiten: Du erstellst eine Liste von Objekten (z.B. Asteroiden) und immer wenn ein neuer Asteroid erstelt wird, dann musst du ihn in die Liste einfügen (.push_back()). Das selbe muss du machen, wenn ein Asteroid den Bildschrim verlässt. Also du musst ihn von der Liste entfernen. Die Liste durchläufst du mit einer for-Schleife.

3

28.10.2015, 18:11

Also in der Theorie hab ich es verstanden, danke.
Eine Frage hab ich aber doch noch:
Muss man dann nicht bei jedem Objekt auf der ganzen Map überprüfen ob es im Window ist, raubt das nicht auch Performance?


Dein Projekt geht genau in die Richtung in die ich mir das Vorstelle.

"Java is Bullshit " voll deiner Meinung.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

4

28.10.2015, 18:13

Muss man dann nicht bei jedem Objekt auf der ganzen Map überprüfen ob es im Window ist, raubt das nicht auch Performance?

Aber nicht soviel, als wenn man alle Objekte auf einer Map mit dem Spiler prüft ;)
PS: Falls ich unrecht habe, dann mich einfach korrigieren

5

28.10.2015, 18:17

Kann mir dein Projekt nicht herunterladen, da steht dann dll2 fehlt oder so, hätte es mir gerne angesehen.

6

28.10.2015, 18:17

Muss man dann nicht bei jedem Objekt auf der ganzen Map überprüfen ob es im Window ist, raubt das nicht auch Performance?

Irgendwann geht es in die Performance aber bei einpaar Asteroiden auf keinen Fall.

Für extrem viele Objekte die mit einander kollidieren Können, kann man sich andere Techniken Bedienen (z.B. Spielfeld in Verschieden Bereich aufteilen und nur die Objekte die im Selben Breich sind auf Kollision prüfen).
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

7

28.10.2015, 18:20

Kann mir dein Projekt nicht herunterladen, da steht dann dll2 fehlt oder so, hätte es mir gerne angesehen.

Kannst du einen Screenshot machen?

8

28.10.2015, 18:23

Das Bild:
»gamepro2105« hat folgendes Bild angehängt:
  • show.png

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

9

28.10.2015, 18:31


Das Bild:

Hm komisch, du führst doch die "Space Fly.exe" im heruntergeladenen extrahierten Ordner aus, oder? Da müssten doch die ganzen *.dll`s sein, oder nicht?

10

28.10.2015, 18:34

Ich habe mir direkt die Exe heruntergeladen.

Werbeanzeige