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

20.05.2015, 19:40

Ausgabe eines shapes mehrfach - Array/Funktion? --> SFML Pacman.

Hallo,

ich versuche in SFML eine Art Pacman zu programmieren. Dafür wäre es nützlich eine Wand, die ich als shape definiert habe mehrfach auszugeben. Kann man das wie bei normalen C++ Programmen in eine Funktion verpacken oder das ganze als Array deklarieren? Wenn ja wie? Würde mich über eine schnelle Antwort freuen, auf der Homepage von SFML habe ich nichts gefunden.

Hier ein Codeausschnitt:


C-/C++-Quelltext

1
2
sf::RectangleShape mauer_quadrat(sf::Vector2f(50, 50));mauer_quadrat.setTexture(&mauer);
window.draw(mauer_quadrat);


--> erstellen der Form "mauer_quadrat"


Das soll dann den Wandausschnitt ausgeben. Um dem ganzen seinen reiz zu geben soll das natürlich nicht als einziger Stein bleiben, sondern n mal in Labyrinthform auftauchen. Ich bin "blutiger Anfänger" in SFML, habe allerdings schon eine Zeit mit C++ experimentiert. Daher wäre es nett wenn mir jemand einen Code für das Problem schreiben könnte. Also wie man das in einer list. verpackt.


Danke! :)
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »darioprogrammiert« (20.05.2015, 21:22)


Krane

Treue Seele

Beiträge: 312

Wohnort: Innsbruck, Tirol

  • Private Nachricht senden

2

20.05.2015, 19:54

An deiner Stelle würde ich eine std::list von Shapes erstellen und eine Render Funktion schreiben die durch die Liste iteriert und dabei jede Shape zeichnet.

3

20.05.2015, 20:54

An deiner Stelle würde ich eine std::list von Shapes erstellen und eine Render Funktion schreiben die durch die Liste iteriert und dabei jede Shape zeichnet.
Kannst du mir das mal erklären? Was genau sind render-funkt. und wie erstelle ich eine solche list? Ist eine verwendung von void/int Funktionen oder Arrays/Vectoren aus dem std:: Bereich hier möglich, oder ist das was neues in SFML?
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

ERROR

Alter Hase

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

4

20.05.2015, 21:41

Die list ist einfach ein Container, ähnlich einem Array oder vector. Gemeinsam haben die alle, dass sie Objekte in sich speichern, machen das aber jeweils sehr unterschiedlich. Welchen dieser Contaienr du nimmst ist anfangs erstmal egal. Klar irgendwann sollte man sich mal genauer mit allen befassen und auch nach der Performance schauen, aber für den Anfang ist es wohl einfacher einen zu nehmen, mit dem du bereits vertraut bist.

Die render-Funktion ist hier einfach eine Funktion welche rendert. Das hört sich sehr simpel an und das ist es auch. Jede Funktion hat ja immer eine bestimtme Aufgabe und die Aufgabe dieser Funktion soll es dann einfach sein, durch den Container zu iterieren (jedes Objekt im Container durchzugehen) und jeweils das zu rendern. Etwas genauer heisst das nun also mit einer passenden Schleife den Container durchzugehen und jedes Objekt mit window.draw(shape) rendern lassen. Wobei window für dein SFML::RenderWindow steht und mit shape das jeweilige shape gemeint ist.

Du willst ja anscheinend das ganze als Tile-Map ("Kachel-Map") aufbauen. Hier würde dann natürlich ein Tile jeweils ein "Feld" des Pac-Man Spielfeldes darstellen, du kannst dir das ähnlich wie ein Schachbrett vorstellen. Hier solltest du dann am besten für jedes Tile ein eigenes grafisches Object, also zum Beispiel ein Shape, anlegen. Jedes hat dann eine Position und eine Textur und in der Render-Funktion zeichnest du die dann alle.


Ich hoffe mal, das ist schön einfach und verständlich erklärt :)


EDIT: Hier nochmal eine IMHO sehr gute deutsche Seite über die Container (den Rest habe ich mir nie angeschaut und kann deswegen nichts dazu sagen)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »ERROR« (20.05.2015, 21:52)


5

20.05.2015, 21:53

Ich hoffe mal, das ist schön einfach und verständlich erklärt
Ja! Genau sowas wollte ich hören! Vielen dank für deine schnelle und nette Hilfe. Ich werde mir das mal anschauen und dann nochmal hier schreiben. Vielen dank nochmal!

:thumbsup:
SCHWEIGEN IST SILBER, REDEN IST GOLD :D

Werbeanzeige