Primo programma in c++ con sdl 2.0.3

di il
5 risposte

Primo programma in c++ con sdl 2.0.3

Ciao ragazzi questo è il mio secondo post, non mi sembra di aver visto post di questo tipo sul forum
(se c'è vi prego di linkarlo nei commenti) quindi l'ho creato io. Stò cercando su internet(da qualche giorno) come fare un'hello world con un'immagine usando le librerie SDL 2.0.3, ma ho molti dubbi... Quindi vi chiedo se riuscireste ad aiutarmi con la programmazione c++ con sdl installate.
Il codice che dovrei usare(trovato da internet)è:
http://lazyfoo.net/SDL_tutorials/lesson01/index2.ph
ma non riesco a capire alcune cose, ad esempio il comando dove dovrebbe prendere l'immagine. Non c'è il comando dove devi dare il percorso del file(e il suo nome) e il compilatore usa quell'immagine? E perchè se compilo mi apre solo una finestra nera(simile a quella del cmd) con scritto "premere un tasto per continuare" e il tempo di elaborazione della finestra? E' possibile che le sdl siano installate male? Come faccio a sapere se sono installate correttamente?

p.s. :sto usando Code::Blocks 13.12 e le SDL 2.0.3 con l'SDL_platform modifcato per non avere l'errore di <winapifamily.h>

Grazie a tutti per l'attenzione

5 Risposte

  • Re: Primo programma in c++ con sdl 2.0.3

    Il comando per caricare un'immagine in SDL è (preso dal tutorial da te linkato):
    //Load image
    hello = SDL_LoadBMP( "hello.bmp" );
  • Re: Primo programma in c++ con sdl 2.0.3

    L'ho già visto, ma come fa a sapere quale immagine caricare? Prende l'immagine con quel nome dalla directory del progetto?
  • Re: Primo programma in c++ con sdl 2.0.3

    Carica l'immagine "hello.bmp" che si trova nella stessa cartella dell'eseguibile. Puoi anche scrivere una cosa tipo "res/hello.bmp": verrà caricata l'immagine che si trova nella cartella res, la quale a sua volte è contenuta nella cartella dell'eseguibile.
    In alternativa, puoi utilizzare dei path assoluti "C:\Documents\blabla\hello.bmp" o "/home/users/blabla/hello.bmp" in base al sistema operativo che stai utilizzando.
  • Re: Primo programma in c++ con sdl 2.0.3

    Grazie, mi hai tolto un dubbio. .. Ma per cartella dell'eseguibile si intende la cartella progetto? E apre anche i png? E da code::blocks come si fa a fare un'eseguibile?
  • Re: Primo programma in c++ con sdl 2.0.3

    Scusate se vi faccio troppe domande ma sono ancora alle prime armi e devo imparare molte cose xD
    Ho trovato il nuovo tutorial(quello più aggiornato):
    http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php
    Sembrerebbe più affidabile, ma devo ancora provarlo. Per vedere se funziona(velocemente) potrei fare una prova copiando e incollando tutto? Anche se sospetto che mi apra comunque una finestra nera vuota o con "premere un tasto per continuare", quella dell'hello world...
    Comunque, in vari comandi ho notato che c'è la parola NULL; , cosa significa? Devo aggiungere qualcosa al posto di null?
    _______________________

    Ecco, ho scaricato il file, copiato su code::blocks e:
    Con il debugger mi apre una scheda nera(come quella del cmd o dell'hello qorld) vuota;
    con il build and run mi apre la stessa scheda con scritto il tempo di esecuzione e premere un tasto per continuare ;(
    // Standard iostream objects -*- C++ -*-
    
    // Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
    //
    // This file is part of the GNU ISO C++ Library.  This library is free
    // software; you can redistribute it and/or modify it under the
    // terms of the GNU General Public License as published by the
    // Free Software Foundation; either version 2, or (at your option)
    // any later version.
    
    // This library is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    
    // You should have received a copy of the GNU General Public License along
    // with this library; see the file COPYING.  If not, write to the Free
    // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    // USA.
    
    // As a special exception, you may use this file as part of a free software
    // library without restriction.  Specifically, if other files instantiate
    // templates or use macros or inline functions from this file, or you compile
    // this file and link it with other files to produce an executable, this
    // file does not by itself cause the resulting executable to be covered by
    // the GNU General Public License.  This exception does not however
    // invalidate any other reasons why the executable file might be covered by
    // the GNU General Public License.
    
    //
    // ISO C++ 14882: 27.3  Standard iostream objects
    //
    
    /** @file iostream
     *  This is a Standard C++ Library header.  You should @c #include this header
     *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
     */
    
    #ifndef _GLIBCXX_IOSTREAM
    #define _GLIBCXX_IOSTREAM 1
    
    #pragma GCC system_header
    
    #include <bits/c++config.h>
    #include <ostream>
    #include <istream>
    
    namespace std 
    {
      /**
       *  @name Standard Stream Objects
       *
       *  The <iostream> header declares the eight <em>standard stream
       *  objects</em>.  For other declarations, see
       *  http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#10 and the
       *  @link s27_2_iosfwd I/O forward declarations @endlink
       *
       *  They are required by default to cooperate with the global C library's
       *  @c FILE streams, and to be available during program startup and
       *  termination.  For more information, see the HOWTO linked to above.
      */
      //@{
      extern istream cin;		///< Linked to standard input
      extern ostream cout;		///< Linked to standard output
      extern ostream cerr;		///< Linked to standard error (unbuffered)
      extern ostream clog;		///< Linked to standard error (buffered)
    
    #ifdef _GLIBCXX_USE_WCHAR_T
      extern wistream wcin;		///< Linked to standard input
      extern wostream wcout;	///< Linked to standard output
      extern wostream wcerr;	///< Linked to standard error (unbuffered)
      extern wostream wclog;	///< Linked to standard error (buffered)
    #endif
      //@}
    
      // For construction of filebuffers for cout, cin, cerr, clog et. al.
      static ios_base::Init __ioinit;
    } // namespace std
    
    #endif /* _GLIBCXX_IOSTREAM */
    
Devi accedere o registrarti per scrivere nel forum
5 risposte