-BHT-Skypers- Monitor
Nombre de messages : 2009 Age : 32 Localisation : L'Arche Date d'inscription : 27/08/2006
| Sujet: Re: Programmation Jeu 14 Déc - 19:11 | |
| nan le problème n'est pas là mais plutot là : - Code:
-
#include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> #include <SDL/SDL_image.h> #include "jouer.h"
void jouer(SDL_Surface *ecran) { SDL_Surface *mario[4] = {NULL}; SDL_Surface *mur[21][21] = {NULL}, *caisse[3] = {NULL}, *caisse_OK = NULL, *objectif[3] = {NULL}; SDL_Rect pos_m, pos_mur[20][20], pos_c, pos_cOK, pos_obj, pos_map; SDL_Event event; int continuer = 1, i, j, a = -34, b = 0;
for (i = 0, j = 0; i < 20; j++) { // Chargement de 400 positions a = a + 34; pos_mur[i][j].x = a; pos_mur[i][j].y = b;
if (j == 20) { i++; j = 0; a = -34; b = b + 34; } } for (i = 0, j = 0; i != 21; j++) { // Chargement de 400 murs mur[i][j] = IMG_Load("mur.jpg"); if (j == 20) { i++; j = 0; } } mario[0] = IMG_Load("mario_haut.gif"); // Chargement de mario de haut mario[1] = IMG_Load("mario_bas.gif"); // Chargement de mario vu de face mario[2] = IMG_Load("mario_gauche.gif"); // Chargement de mario vu de gauche mario[3] = IMG_Load("mario_droite.gif"); // Chargement de mario vu de droite
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); // Actualisation de l'écran
for (i = 0, j = 0; i < 20; j++) { // Blit des 400 murs SDL_BlitSurface(mur[i][j], NULL, ecran, &pos_mur[i][j]); if (j == 20) { i++; j = 0; } }
creerCheminNiveau1(ecran, &caisse[3], &objectif[3]);
SDL_Flip(ecran);
do { SDL_WaitEvent(&event); switch (event.type) { case SDL_QUIT: continuer = 0; break;
case SDL_KEYUP: switch (event.key.keysym.sym) { case SDLK_ESCAPE: continuer = 0; break;
} break; } }while(continuer);
for (i = 0; i < 4; i++) { // Libération des 4 marios SDL_FreeSurface(mario[i]); }
SDL_FreeSurface(mur[20][20]); // Libération des murs SDL_FreeSurface(caisse); // Libération des caisses SDL_FreeSurface(caisse_OK); // Libération des caisses_OK SDL_FreeSurface(objectif); // Libération des objectifs }
void creerCheminNiveau1(SDL_Surface *ecran, SDL_Surface *caisse[3], SDL_Surface *objectif[3]) { SDL_Surface *chemin[88] = {NULL}; SDL_Rect pos_chem[20][20]; int z, o, c = -34, d = 0;
for (z = 0, o = 0; o < 20; z++) { // Chargement de 400 positions c = c + 34; pos_chem[o][z].x = c; pos_chem[o][z].y = d;
if (z == 20) { o++; z = 0; c = -34; d = d + 34; } } for (z = 0; z <= 88; z++) { // Création de 400 chemins chemin[z] = SDL_CreateRGBSurface(SDL_HWSURFACE | SDL_DOUBLEBUF, 34, 34, 32, 0, 0, 0, 0); SDL_FillRect(chemin[z], NULL, SDL_MapRGB(chemin[z]->format, 255, 255, 255)); } for (z = 0; z < 3; z++) { // Création de 3 caisses caisse[z] = IMG_Load("caisse.jpg"); } for (z = 0; z < 3; z++) { objectif[z] = IMG_Load("objectif.png"); }
SDL_BlitSurface(chemin[0], NULL, ecran, &pos_chem[7][3]); SDL_BlitSurface(chemin[1], NULL, ecran, &pos_chem[7][5]); SDL_BlitSurface(chemin[2], NULL, ecran, &pos_chem[8][3]); SDL_BlitSurface(chemin[3], NULL, ecran, &pos_chem[8][4]); SDL_BlitSurface(chemin[4], NULL, ecran, &pos_chem[8][5]); SDL_BlitSurface(chemin[5], NULL, ecran, &pos_chem[9][3]); SDL_BlitSurface(chemin[6], NULL, ecran, &pos_chem[9][4]); SDL_BlitSurface(chemin[7], NULL, ecran, &pos_chem[9][5]); SDL_BlitSurface(chemin[8], NULL, ecran, &pos_chem[10][3]); SDL_BlitSurface(chemin[9], NULL, ecran, &pos_chem[10][4]); // 10 SDL_BlitSurface(chemin[10], NULL, ecran, &pos_chem[10][5]); SDL_BlitSurface(chemin[11], NULL, ecran, &pos_chem[11][3]); SDL_BlitSurface(chemin[12], NULL, ecran, &pos_chem[11][4]); SDL_BlitSurface(chemin[13], NULL, ecran, &pos_chem[12][4]); SDL_BlitSurface(chemin[14], NULL, ecran, &pos_chem[12][5]); SDL_BlitSurface(chemin[15], NULL, ecran, &pos_chem[12][6]); SDL_BlitSurface(chemin[16], NULL, ecran, &pos_chem[12][7]); SDL_BlitSurface(chemin[17], NULL, ecran, &pos_chem[12][8]); SDL_BlitSurface(chemin[18], NULL, ecran, &pos_chem[12][9]); SDL_BlitSurface(chemin[19], NULL, ecran, &pos_chem[12][10]); // 20 SDL_BlitSurface(chemin[20], NULL, ecran, &pos_chem[12][11]); SDL_BlitSurface(chemin[21], NULL, ecran, &pos_chem[12][12]); SDL_BlitSurface(chemin[22], NULL, ecran, &pos_chem[12][13]); SDL_BlitSurface(chemin[23], NULL, ecran, &pos_chem[13][3]); SDL_BlitSurface(chemin[24], NULL, ecran, &pos_chem[13][4]); SDL_BlitSurface(chemin[25], NULL, ecran, &pos_chem[13][5]); SDL_BlitSurface(chemin[26], NULL, ecran, &pos_chem[14][3]); SDL_BlitSurface(chemin[27], NULL, ecran, &pos_chem[14][4]); SDL_BlitSurface(chemin[28], NULL, ecran, &pos_chem[14][5]); SDL_BlitSurface(chemin[29], NULL, ecran, &pos_chem[14][6]); // 30 SDL_BlitSurface(chemin[30], NULL, ecran, &pos_chem[14][7]); SDL_BlitSurface(chemin[31], NULL, ecran, &pos_chem[14][8]); SDL_BlitSurface(chemin[32], NULL, ecran, &pos_chem[14][9]); SDL_BlitSurface(chemin[33], NULL, ecran, &pos_chem[14][10]); SDL_BlitSurface(chemin[34], NULL, ecran, &pos_chem[14][11]); SDL_BlitSurface(chemin[35], NULL, ecran, &pos_chem[14][12]); SDL_BlitSurface(chemin[36], NULL, ecran, &pos_chem[14][13]); SDL_BlitSurface(chemin[37], NULL, ecran, &pos_chem[14][14]); SDL_BlitSurface(chemin[38], NULL, ecran, &pos_chem[14][15]); SDL_BlitSurface(chemin[39], NULL, ecran, &pos_chem[13][11]); // 40 SDL_BlitSurface(chemin[40], NULL, ecran, &pos_chem[13][12]); SDL_BlitSurface(chemin[41], NULL, ecran, &pos_chem[13][13]); SDL_BlitSurface(chemin[42], NULL, ecran, &pos_chem[15][3]); SDL_BlitSurface(chemin[43], NULL, ecran, &pos_chem[15][4]); SDL_BlitSurface(chemin[44], NULL, ecran, &pos_chem[15][5]); SDL_BlitSurface(chemin[45], NULL, ecran, &pos_chem[15][6]); SDL_BlitSurface(chemin[46], NULL, ecran, &pos_chem[15][7]); SDL_BlitSurface(chemin[47], NULL, ecran, &pos_chem[15][8]); SDL_BlitSurface(chemin[48], NULL, ecran, &pos_chem[15][9]); SDL_BlitSurface(chemin[49], NULL, ecran, &pos_chem[15][10]); // 50 SDL_BlitSurface(chemin[50], NULL, ecran, &pos_chem[15][11]); SDL_BlitSurface(chemin[51], NULL, ecran, &pos_chem[15][13]); SDL_BlitSurface(chemin[52], NULL, ecran, &pos_chem[15][15]); SDL_BlitSurface(chemin[53], NULL, ecran, &pos_chem[5][10]); SDL_BlitSurface(chemin[54], NULL, ecran, &pos_chem[5][11]); SDL_BlitSurface(chemin[55], NULL, ecran, &pos_chem[5][12]); SDL_BlitSurface(chemin[56], NULL, ecran, &pos_chem[5][13]); SDL_BlitSurface(chemin[57], NULL, ecran, &pos_chem[5][14]); SDL_BlitSurface(chemin[58], NULL, ecran, &pos_chem[5][15]); SDL_BlitSurface(chemin[59], NULL, ecran, &pos_chem[6][10]); // 60 SDL_BlitSurface(chemin[60], NULL, ecran, &pos_chem[6][15]); SDL_BlitSurface(chemin[61], NULL, ecran, &pos_chem[7][10]); SDL_BlitSurface(chemin[62], NULL, ecran, &pos_chem[7][11]); SDL_BlitSurface(chemin[63], NULL, ecran, &pos_chem[7][12]); SDL_BlitSurface(chemin[64], NULL, ecran, &pos_chem[7][13]); SDL_BlitSurface(chemin[65], NULL, ecran, &pos_chem[7][14]); SDL_BlitSurface(chemin[66], NULL, ecran, &pos_chem[7][15]); SDL_BlitSurface(chemin[67], NULL, ecran, &pos_chem[8][13]); SDL_BlitSurface(chemin[68], NULL, ecran, &pos_chem[8][15]); SDL_BlitSurface(chemin[69], NULL, ecran, &pos_chem[8][10]); // 70 SDL_BlitSurface(chemin[70], NULL, ecran, &pos_chem[9][12]); SDL_BlitSurface(chemin[71], NULL, ecran, &pos_chem[9][13]); SDL_BlitSurface(chemin[72], NULL, ecran, &pos_chem[9][15]); SDL_BlitSurface(chemin[73], NULL, ecran, &pos_chem[10][7]); SDL_BlitSurface(chemin[74], NULL, ecran, &pos_chem[10][8]); SDL_BlitSurface(chemin[75], NULL, ecran, &pos_chem[10][9]); SDL_BlitSurface(chemin[76], NULL, ecran, &pos_chem[10][10]); SDL_BlitSurface(chemin[77], NULL, ecran, &pos_chem[10][11]); SDL_BlitSurface(chemin[78], NULL, ecran, &pos_chem[10][12]); SDL_BlitSurface(chemin[79], NULL, ecran, &pos_chem[10][13]); // 80 SDL_BlitSurface(chemin[80], NULL, ecran, &pos_chem[11][8]); SDL_BlitSurface(chemin[81], NULL, ecran, &pos_chem[11][10]); SDL_BlitSurface(chemin[82], NULL, ecran, &pos_chem[11][11]); SDL_BlitSurface(chemin[83], NULL, ecran, &pos_chem[11][12]); SDL_BlitSurface(chemin[84], NULL, ecran, &pos_chem[11][13]); SDL_BlitSurface(chemin[85], NULL, ecran, &pos_chem[10][15]); SDL_BlitSurface(chemin[86], NULL, ecran, &pos_chem[11][15]); SDL_BlitSurface(chemin[87], NULL, ecran, &pos_chem[12][15]); SDL_BlitSurface(chemin[88], NULL, ecran, &pos_chem[13][15]); // 89
SDL_BlitSurface(caisse[0], NULL, ecran, &pos_chem[9][4]); SDL_BlitSurface(caisse[1], NULL, ecran, &pos_chem[10][3]); SDL_BlitSurface(caisse[0], NULL, ecran, &pos_chem[11][8]);
SDL_BlitSurface(objectif[0], NULL, ecran, &pos_chem[7][3]); SDL_BlitSurface(objectif[1], NULL, ecran, &pos_chem[15][15]); SDL_BlitSurface(objectif[2], NULL, ecran, &pos_chem[8][10]); }
Et encore c'est un exemple, c'est ce que je suis en train de programmer, Mario Sokoban, j'ai pas mis tous les fichiers, ça prendrait une page complète du fofo | |
|