Voici un de mes codes :
// screen.cc
#include<iostream>
#include<cstdlib>
#include<string>
#include "SDL.h"
#include "SDL_image.h"
using namespace std;
const int SCREEN_WIDTH=640;
const int SCREEN_HEIGHT=480;
const int SCREEN_BPP=32;
int main(int argc, char* argv[])
{
bool quit=false;
SDL_Rect rectanglePos;
SDL_Surface *screen;
SDL_Event event;
rectanglePos.x=SCREEN_WIDTH/2-20/2;
rectanglePos.y=SCREEN_HEIGHT/2-20/2;
rectanglePos.w=20;
rectanglePos.h=20;
SDL_Init(SDL_INIT_EVERYTHING);
screen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_BPP,SDL_SWSURFACE);
while(!quit)
{
SDL_FillRect(screen,&screen->clip_rect,
SDL_MapRGB(screen->format,255,255,255));
SDL_FillRect(screen,&rectanglePos,
SDL_MapRGB(screen->format,255,0,0));
SDL_Flip(screen);
while(SDL_PollEvent(&event))
if(event.type==SDL_QUIT)
quit=true;
}
SDL_FreeSurface(screen);
SDL_Quit();
return EXIT_SUCCESS;
}
/* ***********************************************************
Ce programme permet de créer une fenêtre ayant un fond blanc.
Pour compiler ce programme, lancer :
g++ -I/usr/include/SDL -L/usr/lib -lSDLmain -lSDL -lSDL_image -lSDL_ttf screen.cc -o screen
L'executable créé est "screen". Lancer le :
./screen
Avant d'aller plus loin, nous allons décortiquer le programme :
pour cela vous aller le commenter. Pour chaque mot de la liste suivante
vous chercherez une explication sur internet. Le but est ici de
trouver le rôle de chaque instruction. Voici la liste:
- SDL_Surface
- SDL_Event
- SDL_Init
- SDL_INIT_EVERYTHING
- SDL_SetVideoMode
- SDL_FillRect
- SDL_MapRGB
- SDL_Flip
- SDL_PollEvent
- SDL_QUIT
- SDL_FreeSurface
- SDL_Quit
L'ensemble de ces fonctions et constantes appartient à la bibliothèque
SDL. Voir http://www.libsdl.org/. Cette bibliothèque est à la base de
nombreux jeux. Durant tout ce seùestre, nous nous baserons sur cette
bibliothèque pour la création nos interfaces de jeux.
Vous allez maintenant modifier le programme proposé.
1. Commencer par définir les variables globales constantes
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP et utilisez-les dans le code.
2. Ajouter un rectangle rouge de taille 20x20 dans la fenetre. Vous
utiliserez une variable de type SDL_Rect (N'oubliez pas de regarder sur
internet à quoi correspond ce type)... En effet c'est une structure !!!
Ce nouveau rectangle sera centré au centre de la fenêtre.
3. Nous savons donc créer la fenetre principale et ajouter un rectangle.
Essayer de faire bouger ce rectangle. Une boucle modifiant les coordonnées
du rectangle serait la bienvenue.
À vous de jouer.
*********************************************************** */