<?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[Memberfunktion erstellen Glut &amp;amp; Opengl]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich esse gleich meinen Teppich <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>
<p>Ich &quot;spiele&quot; gerade etwas mit glut und opengl herum aber stehe da irgendwie vor einem riesigen Problem.</p>
<p>Ich habe eine Klasse:</p>
<pre><code class="language-cpp">class CPlayer{

private:
float xpos;
float ypos;

public:
void positionierung (float x, float y);
void positionausgabe();

};

// C PLAYER Positionierung
void CPlayer::positionierung (float x, float y){
xpos = x;
ypos = y;
}

// C PLAYER Positionausgabe
void CPlayer::positionausgabe(){
cout &lt;&lt; &quot;YPos:&quot;  &lt;&lt; ypos &lt;&lt; endl;
cout &lt;&lt; &quot;XPos:&quot;  &lt;&lt; xpos &lt;&lt; endl;
}
</code></pre>
<p>In meiner Main Funktion erstelle ich nun den ersten Spieler</p>
<pre><code class="language-cpp">CPlayer Spieler1;
</code></pre>
<p>soweit so gut... .</p>
<p>Nun versuche ich schon den halben Tag eine weitere Memberfunktion zu schreiben mit der es möglich ist den posx wert zu erhöhen.<br />
Dazu brauche ich ja</p>
<pre><code class="language-cpp">glutKeyboardFunc(handleKeypress);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">void handleKeypress(unsigned char key, int x, int y) {
	switch (key) {
		case 27: //Escape key
			exit(0); //Exit the program
	}
}
</code></pre>
<p>Mein versuche das ganze nun irgendwie in eine Memberfuntion zu bekommen sind bislang kläglich gescheitert.</p>
<p>Wie gehe ich bei so etwas richtig vor ?</p>
<p>Vielen Dank</p>
<p>Askar</p>
<p>// Edit: Codetags</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223619/memberfunktion-erstellen-glut-amp-opengl</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 19:19:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223619.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Sep 2008 18:29:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Memberfunktion erstellen Glut &amp;amp; Opengl on Mon, 29 Sep 2008 19:24:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich esse gleich meinen Teppich <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>
<p>Ich &quot;spiele&quot; gerade etwas mit glut und opengl herum aber stehe da irgendwie vor einem riesigen Problem.</p>
<p>Ich habe eine Klasse:</p>
<pre><code class="language-cpp">class CPlayer{

private:
float xpos;
float ypos;

public:
void positionierung (float x, float y);
void positionausgabe();

};

// C PLAYER Positionierung
void CPlayer::positionierung (float x, float y){
xpos = x;
ypos = y;
}

// C PLAYER Positionausgabe
void CPlayer::positionausgabe(){
cout &lt;&lt; &quot;YPos:&quot;  &lt;&lt; ypos &lt;&lt; endl;
cout &lt;&lt; &quot;XPos:&quot;  &lt;&lt; xpos &lt;&lt; endl;
}
</code></pre>
<p>In meiner Main Funktion erstelle ich nun den ersten Spieler</p>
<pre><code class="language-cpp">CPlayer Spieler1;
</code></pre>
<p>soweit so gut... .</p>
<p>Nun versuche ich schon den halben Tag eine weitere Memberfunktion zu schreiben mit der es möglich ist den posx wert zu erhöhen.<br />
Dazu brauche ich ja</p>
<pre><code class="language-cpp">glutKeyboardFunc(handleKeypress);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">void handleKeypress(unsigned char key, int x, int y) {
	switch (key) {
		case 27: //Escape key
			exit(0); //Exit the program
	}
}
</code></pre>
<p>Mein versuche das ganze nun irgendwie in eine Memberfuntion zu bekommen sind bislang kläglich gescheitert.</p>
<p>Wie gehe ich bei so etwas richtig vor ?</p>
<p>Vielen Dank</p>
<p>Askar</p>
<p>// Edit: Codetags</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1589822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1589822</guid><dc:creator><![CDATA[Askar]]></dc:creator><pubDate>Mon, 29 Sep 2008 19:24:19 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktion erstellen Glut &amp;amp; Opengl on Mon, 29 Sep 2008 06:28:11 GMT]]></title><description><![CDATA[<p>1. Bitte benutze cpp-Tags. Das kann man so kaum lesen.</p>
<p>2. Wäre es ev. angebrachter das in einem anderen Forum zu posten, da ich aber nicht so recht weiss, was dein Problem ist.</p>
<pre><code class="language-cpp">class CPlayer{

private:
float xpos;
float ypos;

public:
void positionierung (float x, float y);
void positionausgabe();
void increase_xposition () {xpos++;}
void increase_yposition () {ypos++;}

};
</code></pre>
<p>Ist es das, was du willst?</p>
<p>Hmm. Ich glaube ich weiss jetzt, was dein Problem ist..<br />
Du willst per Tastendruck dein Objekt (CPlayer bewegen)?</p>
<p>Nun. Da musst du zuerst einmal die Schnittstelle zu dem Player erstellen. Was so viel bedeutet, wie schauen, dass du das Objekt von aussen verändern kannst. (ist jetzt mittels positionierung und increase_x/yposition() möglich.)<br />
OK. Nun kommt der andere Teil. Du musst die Eingabe zu dem Objekt weiterleiten.<br />
Das regelst du aber an einem anderen Ort. Wenn das ganze ein Spiel ist, dann verwaltet z.B CGame oder sonst etwas die ganzen Objekte. Und somit auch die Eingabe. Die Eingab kannst du dann an das Objekt, das du erreichen willst weiterleiten.</p>
<pre><code class="language-cpp">class CGame
{
public:
     ...
     void doInput ( unsigned char key, int x, int y ) 
     {
         switch (key)
         {
           case (nur_who_represent_left):
             player.increase_xposition ();
             break;
           ...
         }
     }
     //Mache ein Singleton daraus
     static CGame&amp; instance () {static CGame inst; return inst;}
     ...
private:
    CGame (){}
    CGame ( CGame &amp; );
    CGame &amp; operator = ( CGame &amp; const );
    CPlayer player;
    ....
};

void handleKeypress(unsigned char key, int x, int y) {
 CGame::instance().doInput (key,x,y);
}
</code></pre>
<p>Wo ich mal annehme, dass dein Problem lag, ist, dass du eine Funktion haben musst, die aufgerufen wird, wenn eine Eingabe gemacht wurde. (handleKeypress) und du das aber in einer Klasse haben willst. Das kannst du ganz einfach machen, indem du die Informationen einfach weiterleitest. Dafür musst du aber auch noch wissen zu welchem Objekt das weitergeleitet werden soll. Das musst du dann aber in einem anderne Kontext lösen, oder du machst einfach ein Singleton draus (nur ein Objekt möglich/sinnvoll). (Wegen des Singletons ist auch der c'tor/copy-c'tor privat, aber das ist ein anderes Thema. <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/1590034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1590034</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 29 Sep 2008 06:28:11 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktion erstellen Glut &amp;amp; Opengl on Mon, 29 Sep 2008 09:50:55 GMT]]></title><description><![CDATA[<p>Vielen Dank <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>
<p>Das mit dem Information weitergeben hat den Knoten in meinem Kopf platzen lassen <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/1590129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1590129</guid><dc:creator><![CDATA[Askar]]></dc:creator><pubDate>Mon, 29 Sep 2008 09:50:55 GMT</pubDate></item></channel></rss>