<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Cpp + SFML Spiel]]></title><description><![CDATA[<p>Hi,</p>
<p>um ich mal wieder etwas in C++ einzuarbeiten wollte ich einfach mal ein 2d Spiel schreiben mit Hilfe von SFML.<br />
Sicher kennt ihr die Pokemon Spiele für den gameboy, so ähnlich solls halt werden. Spieler immer in der Mitte nur der Hintergund bewegt sich und alles mit vorgegebenen Feldern, sodass Pixel Kollisonen nichts zur Sache tun. Nun wollt ich erstm mit dem graphischen Teil anfangen, da ich damit doch recht wenig Erfahrung habe.<br />
Sprich erstmal nur ein Raum, an den Seiten begrentzt ohne irgendwelche Objekte, nur der Spieler der dort lang läuft.</p>
<p>Animationen zu erstellen war bis jetzt kein Problem, man müsste sie nur in die Bewegung einbinden.</p>
<p>Jetzt zu meiner Frage wie geh ich das am Besten an ? Mit einem 2d vector der jedes Feld speichert(Textur, denn es soll nicht eine einfache Fläsche sein sondern jedes Feld soll eine eigene Textur haben können) oder den Hintergrund einfach um eine konstante Pixelzahl verschieben ...<br />
Ich bin mir da echt nicht ganz sicher, hoffe jemand der schon etwas mit SFML oder allgemein 2d Anwendungen gearbeitet hat kann mir helfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315364/cpp-sfml-spiel</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 18:04:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315364.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 31 Mar 2013 14:44:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 14:44:25 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>um ich mal wieder etwas in C++ einzuarbeiten wollte ich einfach mal ein 2d Spiel schreiben mit Hilfe von SFML.<br />
Sicher kennt ihr die Pokemon Spiele für den gameboy, so ähnlich solls halt werden. Spieler immer in der Mitte nur der Hintergund bewegt sich und alles mit vorgegebenen Feldern, sodass Pixel Kollisonen nichts zur Sache tun. Nun wollt ich erstm mit dem graphischen Teil anfangen, da ich damit doch recht wenig Erfahrung habe.<br />
Sprich erstmal nur ein Raum, an den Seiten begrentzt ohne irgendwelche Objekte, nur der Spieler der dort lang läuft.</p>
<p>Animationen zu erstellen war bis jetzt kein Problem, man müsste sie nur in die Bewegung einbinden.</p>
<p>Jetzt zu meiner Frage wie geh ich das am Besten an ? Mit einem 2d vector der jedes Feld speichert(Textur, denn es soll nicht eine einfache Fläsche sein sondern jedes Feld soll eine eigene Textur haben können) oder den Hintergrund einfach um eine konstante Pixelzahl verschieben ...<br />
Ich bin mir da echt nicht ganz sicher, hoffe jemand der schon etwas mit SFML oder allgemein 2d Anwendungen gearbeitet hat kann mir helfen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311218</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 14:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 14:47:31 GMT]]></title><description><![CDATA[<p>Du machst dir eine große Textur (Tilemap) die alle Tiles für das Level hält. Das Aussehen des Levels wird dann definiert durch einen Index in diese map. Den Kram schiebst du in einen VBO (äh, das wäre für OpenGL/DirectX, also, du hälst die Daten irgendwie so vor, dass man sie zeichnen kann) und dann zeichnest du den Kram halt abhängig von der Position der Spielfigur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311219</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 31 Mar 2013 14:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 15:30:46 GMT]]></title><description><![CDATA[<p>Ok, Tilemap schau ich mir mal an und du meinst alles relaiv zum Spieler zeichnen ? Klingt schonmal logisch vielen Dank, falls ihr noch Tipps habt würd ich mich sehr freuen oder ich melde mich nochmal wenn ich noch Fragen habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311224</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 15:30:46 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 18:25:23 GMT]]></title><description><![CDATA[<p>Fang am besten einfach an. Vertex Arrays (VBOs gibts in SFML nicht) brauchst du für den Anfang nicht, das kannst du dir später zur Optimierung vormerken.</p>
<p>Einfach heisst: Du hast ein logisches 2D-Array, das die Daten für jedes Tile abspeichert. Am Anfang ist pro Tile vielleicht nur eine <code>enum</code> -Variable für den Tile-Typen gespeichert, mit der Zeit kannst du da auch andere Daten einbauen.</p>
<p>Nun schaust du pro Frame, welche Tiles gerade im aktuellen Sichtfeld ( <code>sf::View</code> ) sind, und zeichnest nur diese. Zeichnen kannst du mittels <code>sf::Sprite</code> , die zugehörige <code>sf::Texture</code> wählst du aufgrund des Tile-Typen aus. Eigentlich sollte es performancemässig kein Problem sein, pro Frame neue Sprites zu erstellen, aber alternativ kannst du diese auch in der Tilemap abspeichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311273</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 Mar 2013 18:25:23 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 19:02:33 GMT]]></title><description><![CDATA[<p>Vielen Dank und wenn sich der Spiele bewegt und sich der Hintergrund verschieb soll ich die Kamera schwenken lassen oder wirklich die Tile Texturen verschieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311288</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 19:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 19:04:16 GMT]]></title><description><![CDATA[<p>Die Tiles bleiben am Ort, du kannst das View verschieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311290</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 Mar 2013 19:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 19:09:29 GMT]]></title><description><![CDATA[<p>und dann wenn es mal was größer wird mit Chunks ? Also am Rande schon den nächsten vorladen oder alles wie bisher verschiebn und nur das nächste zeichnen ? Dann wär aber alles im Speicher</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311293</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 19:09:29 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 19:45:49 GMT]]></title><description><![CDATA[<p>Du kannst es erstmal machen wie Pokemon, also mehr oder weniger kleine Level connected mit Portalen. Das ist sehr einfach. Eine kontinuierliche Welt ist schon etwas komplizierter, da musste dir was ausdenken. Chunks sind dabei schon mal keine schlechte Idee, dann musst du halt noch überlegen wann du was von der Platte lädst etc. Wobei, auf einem PC kannst du bei so einem Spiel wahrscheinlich mehr Strecke auf einmal in den Speicher laden als jemals jemand zurücklegen könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311304</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 31 Mar 2013 19:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 19:57:56 GMT]]></title><description><![CDATA[<p>Ok, ich denke soweit ist mir das jetzt eigentlich alles klar, aber bei der umsetzung bekomm ich dann doch etwas Schwierigkeiten. Ich habe grad einfachmal versucht eine 10*10 Tile große Fläsche mit der selben Textur zu erstellen.<br />
Ich denke aber, dass ich das irgendwie falsch angegangen bin, da es erstens doch relativ lange dauert bis etwas geschiet und zweitens, da anstatt der Textur nur ein weißes Feld entsteht.</p>
<pre><code>#include &lt;SFML/Graphics.hpp&gt;
#include &quot;Tile.h&quot;

int main() {
	sf::RenderWindow window(sf::VideoMode(600, 600, 32), &quot;Einfacher Raum&quot;, sf::Style::Close);
	sf::Texture t;
	t.loadFromFile(&quot;texture.png&quot;, sf::IntRect(0, 0, 16, 16));
	std::vector&lt;std::vector&lt;Tile&gt;&gt; tilemap(10, std::vector&lt;Tile&gt;(10));
	for(unsigned int x = 0; x &lt; tilemap.size(); x++) {
		for(unsigned int y = 0; y &lt; tilemap[x].size(); y++) {
			Tile tile;
			tile.setTexture(t);
			tilemap[x][y] = tile;
		}
	}
	sf::Event event;
	while(window.isOpen()) {
		while(window.pollEvent(event)) {
			if(event.type == sf::Event::Closed || event.type == sf::Event::KeyPressed &amp;&amp; event.key.code == sf::Keyboard::Escape) window.close();
		}
		for(unsigned int x = 0; x &lt; tilemap.size(); x++) {
			for(unsigned int y = 0; y &lt; tilemap[x].size(); y++) {
				sf::Sprite s;
				s.setTexture(tilemap[x][y].getTexture());
				s.setPosition(x * s.getGlobalBounds().width, y * s.getGlobalBounds().height);
				window.draw(s);
			}
		}
		window.display();
		window.clear();
	}
	return 0;
}
</code></pre>
<pre><code>#ifndef TILE_H
#define TILE_H

#include &lt;SFML/Graphics/Texture.hpp&gt;

class Tile {
public:
	void setTexture(sf::Texture texture) { _texture = texture; };
	sf::Texture getTexture() { return _texture; };
private:
	sf::Texture _texture;
};
#endif
</code></pre>
<p>Sorry wenn hier gravierende Fehler sind komm grad von Java und will natürlich auch C++ beherschen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311306</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 19:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 20:08:58 GMT]]></title><description><![CDATA[<p>Schau dir die Dokumentation zu <code>sf::Sprite</code> und <code>sf::Texture</code> an. Du willst sicher nicht pro Tile eine Textur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311309</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 Mar 2013 20:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 20:15:12 GMT]]></title><description><![CDATA[<p>Sorry, hab nochmal eure Antworten durchgelesen und schon überarbeitet, Tile sieht jetzt so aus, so war das doch gemeint oder ?</p>
<pre><code>#ifndef TILE_H
#define TILE_H

#include &lt;SFML/Graphics/Texture.hpp&gt;

class Tile {
public:
	void setTyp(unsigned int typ) { _typ = typ; };
	unsigned int getTyp() { return _typ; };
	const enum Typs { WOOD, STONE };
private:
	unsigned int _typ;
};
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2311312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311312</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 20:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 20:22:05 GMT]]></title><description><![CDATA[<p>Grundsätzlich ja, aber was soll <code>const enum</code> sein? Und warum nimmst du <code>unsigned int</code> , wenn du extra den Datentyp <code>Typs</code> (englisch wäre übrigens &quot;Type&quot;) definierst?</p>
<p>Das <code>#include</code> brauchst du auch nicht mehr. Und du solltest von der Angewohnheit wegkommen, präventiv für jede Eigenschaft gleich ein get/set-Methodenpaar zu definieren. Ein Konstruktor wäre vielleicht sinnvoll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311315</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 31 Mar 2013 20:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 20:40:40 GMT]]></title><description><![CDATA[<p>Sorry bin das mit den unsigned so gewöhnt und typs ist eine art Denglisch ^^<br />
hab halt die alte Klasse verändert und vergessen den #include rauszunehmen und das set get zu ändern. Mit const hab ich was ausprobiert, frag besser nicht war etwas sinnlos und _typ speichert die Art dieses Tiles während man Typs einfach zum vergleichen verwendet(if(tile.getTyp == Tile::WOOD) usw..<br />
Ok, das war nur ne schnell ausgetauschte Klasse, tut mir leid, hab einfach keinen 2. Blick drüber geworfen. Und View verschiebe ich mit move? Wie mach ich denn dann die Spielfigur davon unabhängig ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311319</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 20:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 20:49:31 GMT]]></title><description><![CDATA[<p>Sorry habs schon, erst denken dann Fragen oder eher sein lassen XD</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311321</guid><dc:creator><![CDATA[reason4u2]]></dc:creator><pubDate>Sun, 31 Mar 2013 20:49:31 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Sun, 31 Mar 2013 21:37:06 GMT]]></title><description><![CDATA[<p>Und kein _ vor Variablen, etc. Das ist für die Implementierung reserviert!!!!!!!!!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311326</guid><dc:creator><![CDATA[jhhhhhhhhh]]></dc:creator><pubDate>Sun, 31 Mar 2013 21:37:06 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Tue, 02 Apr 2013 10:22:02 GMT]]></title><description><![CDATA[<p>u machst dir eine große Textur (Tilemap) die alle Tiles für das Level hält. Das Aussehen des Levels wird dann definiert durch einen Index in diese map. Den Kram schiebst du in einen VBO (äh, das wäre für OpenGL/DirectX, also, du hälst die Daten irgendwie so vor, dass man sie zeichnen kann) und dann zeichnest du den Kram halt abhängig von der Position der Spie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311692</guid><dc:creator><![CDATA[konglong]]></dc:creator><pubDate>Tue, 02 Apr 2013 10:22:02 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Tue, 02 Apr 2013 12:13:37 GMT]]></title><description><![CDATA[<p>jhhhhhhhhh schrieb:</p>
<blockquote>
<p>Und kein _ vor Variablen, etc. Das ist für die Implementierung reserviert!!!!!!!!!!!</p>
</blockquote>
<p>Nö.</p>
<pre><code>int _Gross; // Nicht erlaubt !
int _klein; // Erlaubt !
int __bla;  // Nicht erlaubt !
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2311716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311716</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 02 Apr 2013 12:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to Cpp + SFML Spiel on Tue, 02 Apr 2013 14:53:20 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>jhhhhhhhhh schrieb:</p>
<blockquote>
<p>Und kein _ vor Variablen, etc. Das ist für die Implementierung reserviert!!!!!!!!!!!</p>
</blockquote>
<p>Nö.</p>
<pre><code>int _klein; // Erlaubt !
</code></pre>
</blockquote>
<p>ausser im globalen Namensraum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2311785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2311785</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 02 Apr 2013 14:53:20 GMT</pubDate></item></channel></rss>