<?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[New &#x2F; Zeigerproblem]]></title><description><![CDATA[<p>Hallo miteinander</p>
<p>Ich habe folgendes Problem:<br />
Ich habe eine Sprite Klasse, die eigentlich ganz gut funktioniert hat, bis ich<br />
mal Objekte mit Zeiger / new erstellt habe.<br />
Nun, das Verhalten ist anderst. Während das &quot;normale&quot; Objekt ohne Probleme, während<br />
das Objekt, dass ich mitels Zeiger und new erstellt habe nicht gezeichnet wird.</p>
<p>Ich habe mit dem Debugger alles kontrolliert. Die Texturen sind exakt die gleichen und auch Position usw. stimmen. (Da ich sie genau gleich behandle). Dass heisst, dass ich einfach die new /delete ausklammern kann und die * Weglassen und es funktioniert wieder.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">CSprite* sprTree = new CSprite;
CSprite  sprTree2;

...

sprTree-&gt;Load (&quot;tree.bmp&quot;,D3DCOLOR_XRGB (255, 0, 255));
sprTree-&gt;Translate (0.0f,0.0f,1.0f);

sprTree2.Load (&quot;tree.bmp&quot;,D3DCOLOR_XRGB (255, 0, 255));
sprTree2.Translate (0.0f,0.0f,1.0f);

...

sprTree-&gt;SetTo (vec (1.0f,1.0f,2.0f));
sprTree2.SetTo (vec (1.0f,1.5f,2.0f));
sprTree-&gt;Render (); //Ist nicht sichtbar
sprTree2.Render (); //Ist sichtbar
</code></pre>
<p>Hat jemand eine Idee, was da falsch laufen könnte??<br />
Inerhalb der Funktionen sollte alles richtig laufen, da ich ja eigentlich 2 mal genau das gleiche mache..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203984/new-zeigerproblem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 07:54:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203984.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jan 2008 19:31:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to New &#x2F; Zeigerproblem on Mon, 28 Jan 2008 19:31:54 GMT]]></title><description><![CDATA[<p>Hallo miteinander</p>
<p>Ich habe folgendes Problem:<br />
Ich habe eine Sprite Klasse, die eigentlich ganz gut funktioniert hat, bis ich<br />
mal Objekte mit Zeiger / new erstellt habe.<br />
Nun, das Verhalten ist anderst. Während das &quot;normale&quot; Objekt ohne Probleme, während<br />
das Objekt, dass ich mitels Zeiger und new erstellt habe nicht gezeichnet wird.</p>
<p>Ich habe mit dem Debugger alles kontrolliert. Die Texturen sind exakt die gleichen und auch Position usw. stimmen. (Da ich sie genau gleich behandle). Dass heisst, dass ich einfach die new /delete ausklammern kann und die * Weglassen und es funktioniert wieder.<br />
Hier mal der Code:</p>
<pre><code class="language-cpp">CSprite* sprTree = new CSprite;
CSprite  sprTree2;

...

sprTree-&gt;Load (&quot;tree.bmp&quot;,D3DCOLOR_XRGB (255, 0, 255));
sprTree-&gt;Translate (0.0f,0.0f,1.0f);

sprTree2.Load (&quot;tree.bmp&quot;,D3DCOLOR_XRGB (255, 0, 255));
sprTree2.Translate (0.0f,0.0f,1.0f);

...

sprTree-&gt;SetTo (vec (1.0f,1.0f,2.0f));
sprTree2.SetTo (vec (1.0f,1.5f,2.0f));
sprTree-&gt;Render (); //Ist nicht sichtbar
sprTree2.Render (); //Ist sichtbar
</code></pre>
<p>Hat jemand eine Idee, was da falsch laufen könnte??<br />
Inerhalb der Funktionen sollte alles richtig laufen, da ich ja eigentlich 2 mal genau das gleiche mache..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445312</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 28 Jan 2008 19:31:54 GMT</pubDate></item><item><title><![CDATA[Reply to New &#x2F; Zeigerproblem on Mon, 28 Jan 2008 19:36:52 GMT]]></title><description><![CDATA[<p>vielleicht liegts an der Klasse CSprite?<br />
Hau die doch mal raus hier, dann kann man da evtl. mehr zu sagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445316</guid><dc:creator><![CDATA[DocJunioR]]></dc:creator><pubDate>Mon, 28 Jan 2008 19:36:52 GMT</pubDate></item><item><title><![CDATA[Reply to New &#x2F; Zeigerproblem on Mon, 28 Jan 2008 20:04:32 GMT]]></title><description><![CDATA[<p>Also gerendert wird schliesslich so:</p>
<pre><code class="language-cpp">m_pVertBuff-&gt;Lock (0,0,(void**)&amp;m_pData,D3DLOCK_DISCARD );
				sTexInfo tinf;

				tinf = GetTextureInfos ();

				//Vertexposition bestimmen und Transformieren
				D3DXVECTOR3 posUL		= D3DXVECTOR3(-0.5f,0.5f,0.0f);
				D3DXVECTOR3 posUR		= D3DXVECTOR3(0.5f,0.5f,0.0f);
				D3DXVECTOR3 posBL		= D3DXVECTOR3(-0.5f,-0.5f,0.0f);
				D3DXVECTOR3 posBR		= D3DXVECTOR3(0.5f,-0.5f,0.0f);

				D3DXVec3TransformCoord	(&amp;posUL,&amp;posUL,&amp;tinf.mMatrix);
				D3DXVec3TransformCoord	(&amp;posUR,&amp;posUR,&amp;tinf.mMatrix);
				D3DXVec3TransformCoord	(&amp;posBL,&amp;posBL,&amp;tinf.mMatrix);
				D3DXVec3TransformCoord	(&amp;posBR,&amp;posBR,&amp;tinf.mMatrix);

				//Texturposition bestimmen und Transformieren
				D3DXVECTOR2 texUL		= D3DXVECTOR2 (0.0f,0.0f);
				D3DXVECTOR2 texUR		= D3DXVECTOR2 (1.0f,0.0f);
				D3DXVECTOR2 texBL		= D3DXVECTOR2 (0.0f,1.0f);
				D3DXVECTOR2 texBR		= D3DXVECTOR2 (1.0f,1.0f);

				D3DXVec2TransformCoord	(&amp;texUL,&amp;texUL,&amp;tinf.mTextureMatrix);
				D3DXVec2TransformCoord	(&amp;texUR,&amp;texUR,&amp;tinf.mTextureMatrix);
				D3DXVec2TransformCoord	(&amp;texBL,&amp;texBL,&amp;tinf.mTextureMatrix);
				D3DXVec2TransformCoord	(&amp;texBR,&amp;texBR,&amp;tinf.mTextureMatrix);

				//Vertex und Texturinformationen einfügen
				int m_iCount = 0;
				m_pData[0+(m_iCount*6)].vPos		= vec (posUL.x, posUL.y, posUL.z);
				m_pData[0+(m_iCount*6)].vtex		= vec (texUL.x, texUL.y, 0.0f	);
				m_pData[0+(m_iCount*6)].dwColor		= m_dwColor;

				m_pData[1+(m_iCount*6)].vPos		= vec (posUR.x, posUR.y, posUR.z);
				m_pData[1+(m_iCount*6)].vtex		= vec (texUR.x, texUR.y, 0.0f	);
				m_pData[1+(m_iCount*6)].dwColor		= m_dwColor;

				m_pData[2+(m_iCount*6)].vPos		= vec (posBL.x, posBL.y, posBL.z);
				m_pData[2+(m_iCount*6)].vtex		= vec (texBL.x, texBL.y, 0.0f	);
				m_pData[2+(m_iCount*6)].dwColor		= m_dwColor;

				m_pData[3+(m_iCount*6)].vPos		= vec (posUR.x, posUR.y, posUR.z);
				m_pData[3+(m_iCount*6)].vtex		= vec (texUR.x, texUR.y, 0.0f	);
				m_pData[3+(m_iCount*6)].dwColor		= m_dwColor;

				m_pData[4+(m_iCount*6)].vPos		= vec (posBL.x, posBL.y, posBL.z);
				m_pData[4+(m_iCount*6)].vtex		= vec (texBL.x, texBL.y, 0.0f	);
				m_pData[4+(m_iCount*6)].dwColor		= m_dwColor;

				m_pData[5+(m_iCount*6)].vPos		= vec (posBR.x, posBR.y, posBR.z);
				m_pData[5+(m_iCount*6)].vtex		= vec (texBR.x,	texBR.y, 0.0f	);
				m_pData[5+(m_iCount*6)].dwColor		= m_dwColor;

				m_pVertBuff-&gt;Unlock ();
				m_pDevice-&gt;SetFVF (Svert::dwFvF);
				m_pDevice-&gt;SetTexture (0,m_pTexture);
				m_pDevice-&gt;SetStreamSource (0,m_pVertBuff,0,sizeof(Svert));
				m_pDevice-&gt;DrawPrimitive (D3DPT_TRIANGLELIST,0,2);
</code></pre>
<p>Wie gesagt, die Textur, die eingesezt wird, stimmt sicher, da sie genau gleich ist für beide Sprites..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445341</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 28 Jan 2008 20:04:32 GMT</pubDate></item><item><title><![CDATA[Reply to New &#x2F; Zeigerproblem on Mon, 28 Jan 2008 21:32:07 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Hat jemand eine Idee, was da falsch laufen könnte??<br />
Inerhalb der Funktionen sollte alles richtig laufen, da ich ja eigentlich 2 mal genau das gleiche mache..</p>
</blockquote>
<p>An sich dürfte es keinen Unterschied geben, auch ich kann nur auf die Klasse tippen (oder auf überladene new/delete...). Am Besten du kopierst deinen Code und reduzierst ihn auf das Wesentliche bei dem grade noch der Fehler nachzuvollziehen ist (auch ein Debugger kann Wunder wirken ;p).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445383</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445383</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 28 Jan 2008 21:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to New &#x2F; Zeigerproblem on Tue, 29 Jan 2008 11:10:48 GMT]]></title><description><![CDATA[<p>habe (oder besser dot hat) den Fehler gefunden.</p>
<p>Ich habe vergessen einen Vektor zu initialisieren... <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>
<p>Das hatte die Wirkung, dass die normalen Objekte dennoch auf 0 gesetzt worden sind, aber die mit den Zeigern hald nicht..</p>
<p>Auf eine Art bin ich froh, dass ich kein Verständnissfehler gehabt habe, aber anderseits ist mir das jetzt ziemlich peinlich, weil ich gestern ca. 10 Stunden gesucht habe... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Naja.. Danke nochmals an dot für die Hilfe und die Einweisung in zusätzliche Debugtools.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445543</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 29 Jan 2008 11:10:48 GMT</pubDate></item></channel></rss>