<?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[2D Kollision]]></title><description><![CDATA[<p>Also ich verzeifeln grad an einer 2D Kollision,<br />
die kollision mit den schüssen und den asteoriden klapt wudnerbar.<br />
die schüsse kommen von <strong>unten</strong> und die asteroiden von <strong>oben</strong>.</p>
<p>nur will ich aber abfragen ob die asteroiden das raumschiff treffen.<br />
doch leider funzt es nicht so wie ich es will:</p>
<pre><code class="language-cpp">if(RectShot.y &lt; RectAsteroid.y + RectAsteroid.h &amp;&amp;
				RectShot.y + RectShot.h &gt; RectAsteroid.y &amp;&amp;
				RectShot.x &lt; RectAsteroid.x + RectAsteroid.w &amp;&amp;
				RectShot.x + RectShot.w &gt; RectAsteroid.x)
			{
</code></pre>
<p>das ist der code für die schüsse und die asteroiden aber ich bekommst<br />
nicht hin für das raumschiff.</p>
<p>das raumschiff selber kann man steuern und damit rumfliegen in alle richtungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169690/2d-kollision</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 20:32:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169690.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Jan 2007 20:41:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2D Kollision on Sun, 07 Jan 2007 20:41:08 GMT]]></title><description><![CDATA[<p>Also ich verzeifeln grad an einer 2D Kollision,<br />
die kollision mit den schüssen und den asteoriden klapt wudnerbar.<br />
die schüsse kommen von <strong>unten</strong> und die asteroiden von <strong>oben</strong>.</p>
<p>nur will ich aber abfragen ob die asteroiden das raumschiff treffen.<br />
doch leider funzt es nicht so wie ich es will:</p>
<pre><code class="language-cpp">if(RectShot.y &lt; RectAsteroid.y + RectAsteroid.h &amp;&amp;
				RectShot.y + RectShot.h &gt; RectAsteroid.y &amp;&amp;
				RectShot.x &lt; RectAsteroid.x + RectAsteroid.w &amp;&amp;
				RectShot.x + RectShot.w &gt; RectAsteroid.x)
			{
</code></pre>
<p>das ist der code für die schüsse und die asteroiden aber ich bekommst<br />
nicht hin für das raumschiff.</p>
<p>das raumschiff selber kann man steuern und damit rumfliegen in alle richtungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205254</guid><dc:creator><![CDATA[Dj_KoLoGe]]></dc:creator><pubDate>Sun, 07 Jan 2007 20:41:08 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Sun, 07 Jan 2007 22:43:37 GMT]]></title><description><![CDATA[<p>Dj_KoLoGe schrieb:</p>
<blockquote>
<p>Also ich verzeifeln grad an einer 2D Kollision, [...]<br />
nur will ich aber abfragen ob die asteroiden das raumschiff treffen.<br />
doch leider funzt es nicht so wie ich es will:</p>
<pre><code class="language-cpp">if(    RectShot.y              &lt; RectAsteroid.y + RectAsteroid.h     /* Schuss unterer Rand unterhalb Asteriod oberer Rand */
    &amp;&amp; RectShot.y + RectShot.h &gt; RectAsteroid.y                      /* Schuss oberer  Rand über Asteriod unterer Rand */
    &amp;&amp; RectShot.x              &lt; RectAsteroid.x + RectAsteroid.w     /* Schuss linker  Rand links von Asteriod rechter Rand */
    &amp;&amp; RectShot.x + RectShot.w &gt; RectAsteroid.x )                    /* Schuss rechter Rand rechts von Asteriod linker Rand */
</code></pre>
</blockquote>
<p>Wie kann der Schuss mit dem unteren Rand unterhalb des Asteriods sein &amp;&amp; gleichzeitig der obere Rand oberhalb des Asteriods?<br />
Kann das passieren? Ist das das, was Du abfragen möchtest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205316</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Sun, 07 Jan 2007 22:43:37 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Mon, 08 Jan 2007 14:05:23 GMT]]></title><description><![CDATA[<p>also das klapt alles einwandfrei. ich hab diesen code aus dem buch was ich habe übernommen,<br />
aber habe auch wie beschrieben mir mla 2 papiere genommen und das angeguckt und ist ja eig ganz logisch und nur so funzt es halt.</p>
<p>dann hab ich das gleiche nochmal probiert mit den papieren mit den asteroiden aber es klapt leider nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205666</guid><dc:creator><![CDATA[Dj_KoLoGe]]></dc:creator><pubDate>Mon, 08 Jan 2007 14:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Mon, 08 Jan 2007 14:19:10 GMT]]></title><description><![CDATA[<p>Dj_KoLoGe schrieb:</p>
<blockquote>
<p>also das klapt alles einwandfrei. ich hab diesen code aus dem buch was ich habe übernommen,<br />
aber habe auch wie beschrieben mir mla 2 papiere genommen und das angeguckt und ist ja eig ganz logisch und nur so funzt es halt.</p>
<p>dann hab ich das gleiche nochmal probiert mit den papieren mit den asteroiden aber es klapt leider nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Meine Klassen haben in der Regel eine Methode 'ToString()', so dass ich sie einfach auf die Standardkonsole ausgeben kann.<br />
Gib die Werte der Klassen mal aus und prüfe, ob die Werte so sind, wie Du sie erwartest...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205681</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 08 Jan 2007 14:19:10 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Mon, 08 Jan 2007 18:35:48 GMT]]></title><description><![CDATA[<p>ihc glaube es leigt vllt eher an meinem restlichen code,<br />
da wennn ich RectSHot einfach durch die RectPlayer ersetze,<br />
dann is das ja im pürinzip genau das gleiche der spieler kommt von unten<br />
und die asteroiden von oben.</p>
<pre><code class="language-cpp">// CheckCollisions
//
void CGame::CheckCollisions()
{
	// Schussliste des Spielers holen
	list&lt;CShot&gt; *ShotList = m_pPlayer-&gt;GetShotList();

	// Iteratoren für Asteroiden- und Schussliste
	list&lt;CAsteroid&gt;::iterator ItAsteroid = m_AsteroidList.begin();
	list&lt;CShot&gt;::iterator ItShot;

	// Rects für Asteroiden, Schüsse und Spieler
	SDL_Rect RectAsteroid;
	SDL_Rect RectShot;
        SDL_Rect RectPlayer;

	// Alle Asteroiden durchlaufen
	while(ItAsteroid != m_AsteroidList.end())
	{
		// Rect des Asteroiden holen
		RectAsteroid = ItAsteroid-&gt;GetRect();

                // Rect des Spielers holen
                RectPlayer = m_pPlayer-&gt;GetRect();

                // Kollision vom Spieler und den Asteroiden
                if(RectPlayer .y &lt; RectAsteroid.y + RectAsteroid.h &amp;&amp;
		       RectPlayer .y + RectPlayer .h &gt; RectAsteroid.y &amp;&amp;
		       RectPlayer .x &lt; RectAsteroid.x + RectAsteroid.w &amp;&amp;
		       RectPlayer .x + RectPlayer .w &gt; RectAsteroid.x)
		{
                    m_pPlayer-&gt;Reset();
                }

		// Alle Schüsse durchlaufen
		for(ItShot = ShotList-&gt;begin(); 
		ItShot != ShotList-&gt;end();
		++ItShot)
		{
			// Rect des Schusses holen
			RectShot = ItShot-&gt;GetRect();

			// Überschneiden sich die Rects?
			if(RectShot.y &lt; RectAsteroid.y + RectAsteroid.h &amp;&amp;
				RectShot.y + RectShot.h &gt; RectAsteroid.y &amp;&amp;
				RectShot.x &lt; RectAsteroid.x + RectAsteroid.w &amp;&amp;
				RectShot.x + RectShot.w &gt; RectAsteroid.x)
			{
				// Ja, also gab es eine Kollision. Somit Schuss und
				// Asteroid deaktivieren
				ItAsteroid-&gt;SetAlive(false);
				ItShot-&gt;SetAlive(false);

				// Punkte erhöhen
				m_pPlayer-&gt;Score();
			}
		}

		// Asteroid löschen, falls deaktiviert
		if(ItAsteroid-&gt;IsAlive())
			ItAsteroid++;
		else
			ItAsteroid = m_AsteroidList.erase(ItAsteroid);
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1205916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205916</guid><dc:creator><![CDATA[Dj_KoLoGe]]></dc:creator><pubDate>Mon, 08 Jan 2007 18:35:48 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Mon, 08 Jan 2007 19:55:32 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Hast du das von Kalista? Da hatte ich mal das gleiche Problem und das lag daran, dass der erste &quot;Asteroid&quot; nicht sichtbar ist und man immer mit diesem kolidiert und deswegen an der Kollisionsabfrage rumspielt. Versuch mal mit dem Raumschiff nicht in der Mitte zu bleiben, sondern sofort nach Spielstart nach links oder rechts auszuweichen.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205987</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 08 Jan 2007 19:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to 2D Kollision on Mon, 08 Jan 2007 21:30:02 GMT]]></title><description><![CDATA[<p>Oder mach das Schiff nicht gleich tot wenn du kollidierst, sondern gib bloss irgendeine &quot;Meldung&quot; aus, z.B. nen Sound. Oder nen Pixel in einem Eck denn du Rot machst wenn das Schiff in dem Frame mit irgendwas kollidiert ist, und sonst schwarz. Bloss als Beispiel. Irgendsowas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206053</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 08 Jan 2007 21:30:02 GMT</pubDate></item></channel></rss>