Wednesday 16 December 2009

Jamppa on olio!!!!

Seuraava sorsa asettaa jamppa - olion ruudulle hiiren koordinaatteihin :)

#include "SDL/SDL.h"
#include "gl/gl.h"
#include
#include

using namespace std;
using std::string;

class pelihahmo
{
      public:
      int x;
      int y;
      char tiedostonimi[11];
      SDL_Surface * hahmo;
      void PiirraItsesi(int x,int y);
//      int Siirry(int x_akseli,int y_akseli);
      pelihahmo();
};

    SDL_Surface * naytto;

pelihahmo::pelihahmo()
     {hahmo = SDL_LoadBMP("jamppa.bmp");}

void pelihahmo::PiirraItsesi(int x,int y)
{   if ( hahmo == NULL ) {
        fprintf(stderr, "Kuvannäyttö ei onnistunu: %s\n", SDL_GetError());
        return;
    }

    // mihin näytöllä
    SDL_Rect alue;  
    alue.x = x;
    alue.y = y;
  

    // näytölle
    SDL_BlitSurface(hahmo, NULL, naytto, &alue); // koska toinen parametri on NULL, piirretään koko kuva
}
   
void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int x, int y); //esitellään hänet

int main(int argc, char *argv[]) {

    if( SDL_Init(SDL_INIT_EVERYTHING) < 0 )  // paluuarvon ollessa pienempi kuin 0, tapahtui virhe
    {
        fprintf(stderr, "SDL:n alustus ei onnistunut: %s\n", SDL_GetError()); // virheestä tiedot tiedostoon
        return 0; // lopetetaan ohjelma
    }

    pelihahmo jamppa;
   
  //  SDL_Surface * jamppa;
  //  SDL_Surface * pati;
    Uint8* nappi;
  
    naytto = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_RESIZABLE);
    //jamppa = SDL_LoadBMP("Jamppa.bmp");
    //pati = SDL_LoadBMP("Pati.bmp");
   
    bool pelissa=true;
  
    int rottax, rottay; //hiiren koordinaatit
    int ammusx=-10,ammusy=400;
  
//    SDL_SetColorKey(jamppa, SDL_SRCCOLORKEY, SDL_MapRGB(jamppa->format,0,0,0));
  //  SDL_SetColorKey(pati, SDL_SRCCOLORKEY, SDL_MapRGB(pati->format,0,0,0));

    while(pelissa)
    {
                  SDL_FillRect (naytto, 0, 0);
                
                  SDL_GetMouseState(&rottax, &rottay);
                
                  SDL_Event tapahtuma; // tapahtumat
                  SDL_PollEvent(&tapahtuma);
                
    //              PiirraKuva(jamppa,naytto,rottax,rottay);
    //              PiirraKuva(pati,naytto,ammusx,ammusy);
                
                  jamppa.PiirraItsesi(rottax,rottay);
                                 
                  ammusx++;
                 
                  if(ammusx>=900) ammusx=-10;
                
                  nappi = SDL_GetKeyState(NULL);
                
                  if(nappi[SDLK_ESCAPE]) pelissa=false;
                
                  SDL_Flip(naytto);
    }
                    
  
//    SDL_FreeSurface(jamppa);
    SDL_FreeSurface(naytto);

    SDL_Quit(); // "suljetaan" SDL
    return 0;
}

void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int x, int y) {      
  
    if ( kuva == NULL ) {
        fprintf(stderr, "Kuvannäyttö ei onnistunu: %s\n", SDL_GetError());
        return;
    }

    // mihin näytöllä
    SDL_Rect alue;  
    alue.x = x;
    alue.y = y;
  

    // näytölle
    SDL_BlitSurface(kuva, NULL, naytto, &alue); // koska toinen parametri on NULL, piirretään koko kuva
}

No comments:

Post a Comment