sere un poco mas especifico este es mi codigo y no se como meter el mapa no me sale el mapa
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include "csprite.h"
#define MAXMAP 400
SDL_Surface *screen;
CFrame fnave;
CFrame fmalo;
CFrame tile1;
CFrame tile2;
CFrame tile3;
CSprite nave(1);
CSprite malo(1);
CSprite suelo[3];
SDL_Rect rectangulo;
SDL_Joystick *joystick;
char mapa[401];
int joyx, joyy;
int done=0;
int indice, indice_in;
FILE *f;
// estructura que contiene la información
// de nuestro avión
struct minave {
int x,y;
} jugador;
// Estructura que contiene información
// del avión enemigo
struct naveenemiga {
int x,y;
} enemigo;
// Dibuja el escenario
void DrawScene(SDL_Surface *screen) {
int i,j,x,y,t;
// movimiento del scenario (scroll)
indice_in+=2;
if (indice_in>=64) {
indice_in=0;
indice-=10;
}
if (indice <= 0) {
indice=MAXMAP-100; // si llegamos al final, empezamos de nuevo.
indice_in=0;
}
//dibujar escenario
for (i=0 ; i<10 ; i++) {
for (j=0 ; j<10 ; j++) {
t=mapa[indice+(i*10+j)];
// calculo de la posición del tile
x=j*64;
y=(i-1)*64+indice_in;
// dibujamos el tile
suelo[t].setx(x);
suelo[t].sety(y);
suelo[t].draw(screen);
}
}
// dibuja avión
nave.setx(jugador.x);
nave.sety(jugador.y);
nave.draw(screen);
// Dibuja enemigo
malo.setx(enemigo.x);
malo.sety(enemigo.y);
malo.draw(screen);
// ¿ha colisionado con la nave?
if (malo.colision(nave) == TRUE) {
done=1;
}
// Mostramos todo el frame
SDL_Flip(screen);
}
// Inicializamos estados
void inicializa() {
int c;
jugador.x=300;
jugador.y=300;
enemigo.x=100;
enemigo.y=100;
indice=MAXMAP-100;
indice_in=0;
// Carga del mapa
if((f=fopen("C:/mapa.map","r")) != NULL) {
c=fread(mapa,MAXMAP,1,f);
fclose(f);
}
}
void finaliza() {
// finalizamos los sprites
nave.finalize();
malo.finalize();
suelo[0].finalize();
suelo[1].finalize();
suelo[2].finalize();
// cerramos el joystick
if (SDL_JoystickOpened(0)) {
SDL_JoystickClose(joystick);
}
}
// Preparamos los esprites
int InitSprites() {
fnave.load("C:/minave.bmp");
nave.addframe(fnave);
fmalo.load("C:/malo1.bmp");
malo.addframe(fmalo);
tile1.load("C:/tile_0.bmp");
suelo[0].addframe(tile1);
tile2.load("C:/planeta.bmp");
suelo[1].addframe(tile2);
tile3.load("C:/wood.bmp");
suelo[2].addframe(tile3);
return 0;
}
int main(int argc, char *argv[]) {
SDL_Event event;
Uint8 *keys;
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) {
printf("No se pudo iniciar SDL: %s\n",SDL_GetError());
return 1;
}
screen = SDL_SetVideoMode(640,480,24,SDL_HWSURFACE);
if (screen == NULL) {
printf("No se puede inicializar el modo gráfico: \n",SDL_GetError());
return 1;
}
atexit(SDL_Quit);
inicializa();
InitSprites();
while (done == 0) {
// dibujamos el frame
DrawScene(screen);
// consultamos el estado del teclado
keys=SDL_GetKeyState(NULL);
// consultamos el estado del joystick
SDL_JoystickUpdate();
joyx = SDL_JoystickGetAxis(joystick, 0);
joyy = SDL_JoystickGetAxis(joystick, 1);
if ((keys[SDLK_UP] || joyy < -10) && (jugador.y > 0)) {jugador.y=jugador.y-(5);}
if ((keys[SDLK_DOWN] || joyy > 10) && (jugador.y < 460)) {jugador.y=jugador.y+(5);}
if ((keys[SDLK_LEFT] || joyx < -10) && (jugador.x > 0)) {jugador.x=jugador.x-(5);}
if ((keys[SDLK_RIGHT] || joyx > 10) && (jugador.x < 620)) {jugador.x=jugador.x+(5);}
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {done=1;}
if (event.type == SDL_KEYDOWN || event.type == SDL_JOYBUTTONDOWN) {
if (event.key.keysym.sym == SDLK_ESCAPE) {
done=1;
}
}
}
}
finaliza();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include "csprite.h"
#define MAXMAP 400
SDL_Surface *screen;
CFrame fnave;
CFrame fmalo;
CFrame tile1;
CFrame tile2;
CFrame tile3;
CSprite nave(1);
CSprite malo(1);
CSprite suelo[3];
SDL_Rect rectangulo;
SDL_Joystick *joystick;
char mapa[401];
int joyx, joyy;
int done=0;
int indice, indice_in;
FILE *f;
// estructura que contiene la información
// de nuestro avión
struct minave {
int x,y;
} jugador;
// Estructura que contiene información
// del avión enemigo
struct naveenemiga {
int x,y;
} enemigo;
// Dibuja el escenario
void DrawScene(SDL_Surface *screen) {
int i,j,x,y,t;
// movimiento del scenario (scroll)
indice_in+=2;
if (indice_in>=64) {
indice_in=0;
indice-=10;
}
if (indice <= 0) {
indice=MAXMAP-100; // si llegamos al final, empezamos de nuevo.
indice_in=0;
}
//dibujar escenario
for (i=0 ; i<10 ; i++) {
for (j=0 ; j<10 ; j++) {
t=mapa[indice+(i*10+j)];
// calculo de la posición del tile
x=j*64;
y=(i-1)*64+indice_in;
// dibujamos el tile
suelo[t].setx(x);
suelo[t].sety(y);
suelo[t].draw(screen);
}
}
// dibuja avión
nave.setx(jugador.x);
nave.sety(jugador.y);
nave.draw(screen);
// Dibuja enemigo
malo.setx(enemigo.x);
malo.sety(enemigo.y);
malo.draw(screen);
// ¿ha colisionado con la nave?
if (malo.colision(nave) == TRUE) {
done=1;
}
// Mostramos todo el frame
SDL_Flip(screen);
}
// Inicializamos estados
void inicializa() {
int c;
jugador.x=300;
jugador.y=300;
enemigo.x=100;
enemigo.y=100;
indice=MAXMAP-100;
indice_in=0;
// Carga del mapa
if((f=fopen("C:/mapa.map","r")) != NULL) {
c=fread(mapa,MAXMAP,1,f);
fclose(f);
}
}
void finaliza() {
// finalizamos los sprites
nave.finalize();
malo.finalize();
suelo[0].finalize();
suelo[1].finalize();
suelo[2].finalize();
// cerramos el joystick
if (SDL_JoystickOpened(0)) {
SDL_JoystickClose(joystick);
}
}
// Preparamos los esprites
int InitSprites() {
fnave.load("C:/minave.bmp");
nave.addframe(fnave);
fmalo.load("C:/malo1.bmp");
malo.addframe(fmalo);
tile1.load("C:/tile_0.bmp");
suelo[0].addframe(tile1);
tile2.load("C:/planeta.bmp");
suelo[1].addframe(tile2);
tile3.load("C:/wood.bmp");
suelo[2].addframe(tile3);
return 0;
}
int main(int argc, char *argv[]) {
SDL_Event event;
Uint8 *keys;
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0) {
printf("No se pudo iniciar SDL: %s\n",SDL_GetError());
return 1;
}
screen = SDL_SetVideoMode(640,480,24,SDL_HWSURFACE);
if (screen == NULL) {
printf("No se puede inicializar el modo gráfico: \n",SDL_GetError());
return 1;
}
atexit(SDL_Quit);
inicializa();
InitSprites();
while (done == 0) {
// dibujamos el frame
DrawScene(screen);
// consultamos el estado del teclado
keys=SDL_GetKeyState(NULL);
// consultamos el estado del joystick
SDL_JoystickUpdate();
joyx = SDL_JoystickGetAxis(joystick, 0);
joyy = SDL_JoystickGetAxis(joystick, 1);
if ((keys[SDLK_UP] || joyy < -10) && (jugador.y > 0)) {jugador.y=jugador.y-(5);}
if ((keys[SDLK_DOWN] || joyy > 10) && (jugador.y < 460)) {jugador.y=jugador.y+(5);}
if ((keys[SDLK_LEFT] || joyx < -10) && (jugador.x > 0)) {jugador.x=jugador.x-(5);}
if ((keys[SDLK_RIGHT] || joyx > 10) && (jugador.x < 620)) {jugador.x=jugador.x+(5);}
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {done=1;}
if (event.type == SDL_KEYDOWN || event.type == SDL_JOYBUTTONDOWN) {
if (event.key.keysym.sym == SDLK_ESCAPE) {
done=1;
}
}
}
}
finaliza();
return 0;
}