<?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[Klassen und deren verwendung..]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>Ich habe hier 3 Klassen, eine Map, eine Spieler und eine SpielKlasse, nun habe ich es soweit geschafft das ich in der Spielklasse ein Objekt von der Map erstelle, die Map dann Initialisiere, Lade und Zeichne. Nun möchte ich natürlich darauf rumlaufen, also mache ich ein Objekt vom Spieler und Initialisiere diesen und Zeichne ihn auch. Alles soweit sogut.</p>
<p>Jetzt möchte ich aber, während ich in der Klasse vom Spieler mich fortbewege, von der Mapklasse wissen wo ich genau steh (Also ich will wissen ob ich auf Wasser bin, Land, usw.) aber irgendwie raff ich nicht wie ich nun das Map Objekt, was ich in der SpielKlasse erstellt habe, an die Spielerklasse weitergebe..?</p>
<pre><code class="language-cpp">void c_Spiel::Run()
{
	c_BombenFeld bombfield;
	c_Player player;

	player.Init();
	bombfield.Init();
	bombfield.Load();

	while (spielWindow.isOpen())
	{

		while (spielWindow.pollEvent(spielevents))
		{

			if (spielevents.type == spielevents.Closed)
				spielWindow.close();

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
				spielWindow.close();

		}

		bombfield.Draw(&amp;spielWindow);
		player.Update(&amp;spielWindow);
		spielWindow.display();
		spielWindow.clear(sf::Color::Black);

	}
</code></pre>
<pre><code class="language-cpp">void c_Player::Update(sf::RenderWindow *spielWindow)
{

	Move();
	CheckPosition();
	Render(spielWindow);

}

void c_Player::CheckPosition()
{

	int x = m_s_player.getPosition().x / c_Spiel::BlockSize;
	int y = m_s_player.getPosition().y / c_Spiel::BlockSize;

	c_BombenFeld CheckPos;

	b_move = false;
	b_move = CheckPos.CheckMove(x, y);

	if (b_move == true) 
		m_s_player.move(m_s_speedX, m_s_speedY);

}
</code></pre>
<pre><code class="language-cpp">bool c_BombenFeld::CheckMove(int x, int y)
{

	if (map[x][y] == 'G') 
		return 1;
	else 
		return 0;

}
</code></pre>
<p>Im letzten abschnitt, also beim schaun ob ich richtig steh, ist die map[][] Variable leer. Ich nehme mal an das ist weil ich ja da ein neues Objekt erstelle und die Map in dem Objekt halt nunmal leer ist, ich weis nur nicht wie ich das vorherige Objekt jetzt dort einsetzen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308435/klassen-und-deren-verwendung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 21:12:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308435.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Sep 2012 07:39:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 07:39:45 GMT]]></title><description><![CDATA[<p>Guten Tag,</p>
<p>Ich habe hier 3 Klassen, eine Map, eine Spieler und eine SpielKlasse, nun habe ich es soweit geschafft das ich in der Spielklasse ein Objekt von der Map erstelle, die Map dann Initialisiere, Lade und Zeichne. Nun möchte ich natürlich darauf rumlaufen, also mache ich ein Objekt vom Spieler und Initialisiere diesen und Zeichne ihn auch. Alles soweit sogut.</p>
<p>Jetzt möchte ich aber, während ich in der Klasse vom Spieler mich fortbewege, von der Mapklasse wissen wo ich genau steh (Also ich will wissen ob ich auf Wasser bin, Land, usw.) aber irgendwie raff ich nicht wie ich nun das Map Objekt, was ich in der SpielKlasse erstellt habe, an die Spielerklasse weitergebe..?</p>
<pre><code class="language-cpp">void c_Spiel::Run()
{
	c_BombenFeld bombfield;
	c_Player player;

	player.Init();
	bombfield.Init();
	bombfield.Load();

	while (spielWindow.isOpen())
	{

		while (spielWindow.pollEvent(spielevents))
		{

			if (spielevents.type == spielevents.Closed)
				spielWindow.close();

			if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
				spielWindow.close();

		}

		bombfield.Draw(&amp;spielWindow);
		player.Update(&amp;spielWindow);
		spielWindow.display();
		spielWindow.clear(sf::Color::Black);

	}
</code></pre>
<pre><code class="language-cpp">void c_Player::Update(sf::RenderWindow *spielWindow)
{

	Move();
	CheckPosition();
	Render(spielWindow);

}

void c_Player::CheckPosition()
{

	int x = m_s_player.getPosition().x / c_Spiel::BlockSize;
	int y = m_s_player.getPosition().y / c_Spiel::BlockSize;

	c_BombenFeld CheckPos;

	b_move = false;
	b_move = CheckPos.CheckMove(x, y);

	if (b_move == true) 
		m_s_player.move(m_s_speedX, m_s_speedY);

}
</code></pre>
<pre><code class="language-cpp">bool c_BombenFeld::CheckMove(int x, int y)
{

	if (map[x][y] == 'G') 
		return 1;
	else 
		return 0;

}
</code></pre>
<p>Im letzten abschnitt, also beim schaun ob ich richtig steh, ist die map[][] Variable leer. Ich nehme mal an das ist weil ich ja da ein neues Objekt erstelle und die Map in dem Objekt halt nunmal leer ist, ich weis nur nicht wie ich das vorherige Objekt jetzt dort einsetzen kann... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254171</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 07:39:45 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 07:49:26 GMT]]></title><description><![CDATA[<p>Wo ist denn deine map wie deklariert?</p>
<p>Diese &quot;c_Name&quot;-Notation ist auch sehr ungewöhnlich. Das solltest du dir schnell abgewöhnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254176</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 25 Sep 2012 07:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 07:54:59 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort.</p>
<pre><code class="language-cpp">class c_BombenFeld
{

public:
	void Init();
	void Draw(sf::RenderWindow *spielWindow);
	void Load();
	bool CheckMove(int x, int y);

	char map[100][100];

private:

	sf::Texture t_ground, t_wall;
	sf::Sprite s_ground, s_wall;

};
</code></pre>
<pre><code class="language-cpp">void c_BombenFeld::Load()
{

	for (int x=0;x&lt;c_Spiel::mapgroesseX;x++)
	{
		for (int y=0;y&lt;c_Spiel::mapgroesseY;y++)
		{
			map[x][y] = 'G';
			if(y % 2 == 0)	if (x % 2 == 0)  map[x][y] = 'W';
			if ((x == 0) || (x == c_Spiel::mapgroesseX) || (y==0) || (y==c_Spiel::mapgroesseY))
				map[x][y] = 'W';
		}
	}

}
</code></pre>
<p>und c_Name steht halt für class_name, irgendwie dacht ich für mich ist das logisch ^^ was wäre denn der Standard hier?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254177</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 07:54:59 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 08:46:01 GMT]]></title><description><![CDATA[<p>Ich benutze überhaupt keine Präfixe für Klassennamen. Beiuns ist Konvention, dass Klassennamen mit einem großen, Methoden/freie Funktionen mit einem kleinen Buchstaben beginnen.</p>
<p>Wieso verwendest du ein char[][] und keinen std::vector? Das wurde doch in einem anderen Thread schonmal angemerkt, wenn ich mich richtig erinnere. Dann hättest du auch gleich die Größen mit &quot;eingebaut&quot;.</p>
<p>Dein Fehler ist, wie du bereits selbst erkennst, dass du in &quot;CheckPositions&quot; eine neue Instanz vom Bombenfeld anlegst. Du solltest das Bombenfeld als Referenz an &quot;Spieler::Update&quot; übergeben und dort - ebenfalls als konstante Referenz - an &quot;CheckPosition&quot; weitergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254186</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 25 Sep 2012 08:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 08:49:39 GMT]]></title><description><![CDATA[<p>Jo das mit dem vector weis ich, hab nur halt das alte übernommen, es geht mir hierbei nicht um die map ansich sondern um den aufbau <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>
<p>wenn ich aber versuche jetzt das Objekt zu übergeben, geht das nicht, wie übergeb ich das Objekt einer Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254187</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 08:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 09:15:48 GMT]]></title><description><![CDATA[<p>Flutscherino schrieb:</p>
<blockquote>
<p>wenn ich aber versuche jetzt das Objekt zu übergeben, geht das nicht, wie übergeb ich das Objekt einer Funktion?</p>
</blockquote>
<p>Was heißt &quot;geht nicht&quot;? Das Zauberwort heißt &quot;Parameter&quot;. Wenn du an dieser Stelle ernsthaft Probleme hast, solltest du erstmal in Ruhe ein gutes Grundlagenbuch lesen, bevor du irgendwelche Spiele programmierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254197</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 25 Sep 2012 09:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 09:40:41 GMT]]></title><description><![CDATA[<p>ich kann das Objekt nicht übergeben, mit (c_BombenFeld bombfield) geht es nicht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254206</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254206</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 09:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 09:46:07 GMT]]></title><description><![CDATA[<p>Flutscherino schrieb:</p>
<blockquote>
<p>ich kann das Objekt nicht übergeben, mit (c_BombenFeld bombfield) geht es nicht..</p>
</blockquote>
<p>daddy_felix schrieb:</p>
<blockquote>
<p>Was heißt &quot;geht nicht&quot;?</p>
</blockquote>
<p>außerdem sollst du es ja auch als Referenz übergeben. Wenn du nicht weißt, was eine Referenz ist, solltest du erstmal un gutes Grundlagenbuch lesen, bevor du irgendwelche Spiele programmierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254207</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 25 Sep 2012 09:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 09:58:56 GMT]]></title><description><![CDATA[<p>nee nee ich weis schon was das is, ich bin nur einfach zu lange dran glaub ich, ich hab das bombenfeld gar nich included in der hpp..</p>
<p>habs gefunden jetzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254211</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 09:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 11:56:42 GMT]]></title><description><![CDATA[<p>Flutscherino schrieb:</p>
<blockquote>
<p>und c_Name steht halt für class_name, irgendwie dacht ich für mich ist das logisch ^^ was wäre denn der Standard hier?</p>
</blockquote>
<p>Es gibt keinen Standard, aber deine Variante ist gänzlich ungewöhnlich. Die häufigsten mir bekannten Varianten arbeiten ohne Präfix, und wenn schon mit Präfix dann mit &quot;C&quot; (Ohne Unterstrich).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254257</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 25 Sep 2012 11:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen und deren verwendung.. on Tue, 25 Sep 2012 12:02:50 GMT]]></title><description><![CDATA[<p>jo bin neu im business, muss noch vieles lernen <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/2254259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254259</guid><dc:creator><![CDATA[Flutscherino]]></dc:creator><pubDate>Tue, 25 Sep 2012 12:02:50 GMT</pubDate></item></channel></rss>