<?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[screen-Pointer übergeben an Funktion in SDL]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich teste mich gerade an SDL heran und komm' hier gerade nicht weiter...<br />
vielleicht kann mir wer helfen <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>Und zwar, erstelle ich den SDL-screen momentan in der main-Datei und<br />
rufe danach eine Funktion in der Grafik-Klasse auf, die auf den screen zeichnen soll. Von daher übergeb' ich an diese Funktion den Zeiger auf den screen. Hab' da aber wohl einen Fehler drin, der Compiler sagt mir:<br />
&quot;no matching function call to &quot;Grafik::update(SDL_Surface**)&quot;<br />
&quot;note: candidate: void Grafik:update(SDL_Surface*)&quot;</p>
<p>Hier bisschen Code:</p>
<pre><code class="language-cpp">SDL_Surface *screen, *osito_vorne = NULL; // Pointer auf Null setzen

...
if (SDL_Init ( SDL_INIT_EVERYTHING ) == -1)
        cout &lt;&lt; &quot;Fehler in der SDL-Initialisierung&quot; &lt;&lt; endl;

    screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
    SDL_WM_SetCaption( &quot;Artes marciales&quot;, NULL );

    time1 = SDL_GetTicks(); // speichert die Zeit in Milisekunden
    cout &lt;&lt; time1 &lt;&lt; endl;

Grafik Zeichnung; // Instanz der Klasse Grafik

    while (game==true)
    {
        while (SDL_PollEvent(&amp;event))
        {
        cout &lt;&lt; &quot;Zähler1:&quot; &lt;&lt; contador1 &lt;&lt; endl;

        Zeichnung.update(&amp;screen); // 1x pro Schleifendurchlauf wird gezeichnet! screen-Zeiger muss übergeben werden...
...
</code></pre>
<pre><code class="language-cpp">//grafik.hpp

#include &lt;iostream&gt;

using namespace std;

class Grafik
{
  private:
  // Membervariablen
  int x_koordinate_spieler1, y_koordinate_spieler1; // sollte ich mir aus der Klasse Spieler holen!
  int x_koordinate_gegner, y_koordinate_gegner;

  public:

  SDL_Surface *screen, *osito_vorne;

  //Memberfunktionen
  void update(SDL_Surface *screen);
  void draw_hintergrund ();
  void draw_spieler1 ();
  void draw_gegner ();

};
</code></pre>
<pre><code class="language-cpp">void Grafik::update(SDL_Surface *screen)  // zeichnet den kompletten Frame , beinhaltet alle einzelnen Funktionen
{
    Grafik::draw_hintergrund();
    // Mostramos la pantalla
    SDL_Flip(screen);
}
</code></pre>
<p>Den screen müsste ich danach noch an die anderen Funktionen geben...<br />
was ist denn an der Übergabe bisher wohl falsch? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/252305/screen-pointer-übergeben-an-funktion-in-sdl</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 13:27:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/252305.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Oct 2009 20:14:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to screen-Pointer übergeben an Funktion in SDL on Sat, 17 Oct 2009 20:14:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich teste mich gerade an SDL heran und komm' hier gerade nicht weiter...<br />
vielleicht kann mir wer helfen <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>Und zwar, erstelle ich den SDL-screen momentan in der main-Datei und<br />
rufe danach eine Funktion in der Grafik-Klasse auf, die auf den screen zeichnen soll. Von daher übergeb' ich an diese Funktion den Zeiger auf den screen. Hab' da aber wohl einen Fehler drin, der Compiler sagt mir:<br />
&quot;no matching function call to &quot;Grafik::update(SDL_Surface**)&quot;<br />
&quot;note: candidate: void Grafik:update(SDL_Surface*)&quot;</p>
<p>Hier bisschen Code:</p>
<pre><code class="language-cpp">SDL_Surface *screen, *osito_vorne = NULL; // Pointer auf Null setzen

...
if (SDL_Init ( SDL_INIT_EVERYTHING ) == -1)
        cout &lt;&lt; &quot;Fehler in der SDL-Initialisierung&quot; &lt;&lt; endl;

    screen = SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, SDL_SWSURFACE );
    SDL_WM_SetCaption( &quot;Artes marciales&quot;, NULL );

    time1 = SDL_GetTicks(); // speichert die Zeit in Milisekunden
    cout &lt;&lt; time1 &lt;&lt; endl;

Grafik Zeichnung; // Instanz der Klasse Grafik

    while (game==true)
    {
        while (SDL_PollEvent(&amp;event))
        {
        cout &lt;&lt; &quot;Zähler1:&quot; &lt;&lt; contador1 &lt;&lt; endl;

        Zeichnung.update(&amp;screen); // 1x pro Schleifendurchlauf wird gezeichnet! screen-Zeiger muss übergeben werden...
...
</code></pre>
<pre><code class="language-cpp">//grafik.hpp

#include &lt;iostream&gt;

using namespace std;

class Grafik
{
  private:
  // Membervariablen
  int x_koordinate_spieler1, y_koordinate_spieler1; // sollte ich mir aus der Klasse Spieler holen!
  int x_koordinate_gegner, y_koordinate_gegner;

  public:

  SDL_Surface *screen, *osito_vorne;

  //Memberfunktionen
  void update(SDL_Surface *screen);
  void draw_hintergrund ();
  void draw_spieler1 ();
  void draw_gegner ();

};
</code></pre>
<pre><code class="language-cpp">void Grafik::update(SDL_Surface *screen)  // zeichnet den kompletten Frame , beinhaltet alle einzelnen Funktionen
{
    Grafik::draw_hintergrund();
    // Mostramos la pantalla
    SDL_Flip(screen);
}
</code></pre>
<p>Den screen müsste ich danach noch an die anderen Funktionen geben...<br />
was ist denn an der Übergabe bisher wohl falsch? <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=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1793983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1793983</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Sat, 17 Oct 2009 20:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to screen-Pointer übergeben an Funktion in SDL on Sat, 17 Oct 2009 20:23:15 GMT]]></title><description><![CDATA[<p>In main funktion sollte man schreiben</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Zähler1:&quot; &lt;&lt; contador1 &lt;&lt; endl;

        Zeichnung.update(screen); // 1x pro Schleifendurchlauf wird gezeichnet! screen-Zeiger muss übergeben werden..
</code></pre>
<p>denn du hast schon &quot;screen&quot; als einen Zeiger, brauchst deshalb keine Adresse davon nochmal ziehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1793988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1793988</guid><dc:creator><![CDATA[CppCoder]]></dc:creator><pubDate>Sat, 17 Oct 2009 20:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to screen-Pointer übergeben an Funktion in SDL on Sat, 17 Oct 2009 20:38:06 GMT]]></title><description><![CDATA[<p>Ok, danke!</p>
<p>Und was muss ich an die jeweilige Stelle der Funktion schreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1793992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1793992</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Sat, 17 Oct 2009 20:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to screen-Pointer übergeben an Funktion in SDL on Sat, 17 Oct 2009 20:48:06 GMT]]></title><description><![CDATA[<blockquote>
<p>Und was muss ich an die jeweilige Stelle der Funktion schreiben?</p>
</blockquote>
<p>Wenn es funktioniert, bleibt alles anderes wie es ist.<br />
Aber bevor sich mit den verschiedenen Biblioteken wie SDL etc zu beschäftigen, würde ich dir raten, sich sowohl mit der C++ Zeigern und Referenzen, als auch mit &quot;new&quot; und &quot;delete&quot; ganz klar auseinanderzusetzen. Dies sind in C/C++ ganz wichtige Sachen, die immer wieder auftauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1793996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1793996</guid><dc:creator><![CDATA[CppCoder]]></dc:creator><pubDate>Sat, 17 Oct 2009 20:48:06 GMT</pubDate></item></channel></rss>