📄 escenario.cpp
字号:
#include <cstdlib>
#include<iostream>
#include<algif.h>
#include "Escenario.h"
#include "Monito.h"
#include "Momia.h"
#include "Cuadro.h"
#include<allegro.h>
using namespace std;
BITMAP *buffer;
int k,w,i,j;
Escenario::Escenario(){
anchura=600;
altura=400;
nivel=0;
mo=NULL;
mom=NULL;
for (i=0; i<6; i++)
for (j=0; j<6; j++){
tabla[i][j].setId(0);
tabla[i][j].setHere(false);
tabla[i][j].setHeremum(false);
}
}
Escenario::Escenario(Personaje *mon,int an,int al,int n, Cuadro tabla[6][6], Momia *mm){
anchura=an;
altura=al;
nivel=n;
mo=mon;
mom=mm;
for (i=0; i<6; i++)
for (j=0; j<6; j++){
tabla[i][j].setId(0);
tabla[i][j].setHere(false);
tabla[i][j].setHeremum(false);
}
}
void Escenario::cargar(int n)
{
BITMAP *t,*it1,*it2,*lado,*f3,*f1,*li1,*li2,*ld1,*ld2,*piso;
PALETTE pal;
buffer=create_bitmap(600,400);
li1=load_gif("imagenes/li1.gif",pal);
li2=load_gif("imagenes/li2.gif",pal);
ld1=load_gif("imagenes/ld1.gif",pal);
ld2=load_gif("imagenes/ld2.gif",pal);
f3=load_gif("imagenes/f3.gif",pal);
f1=load_gif("imagenes/f1.gif",pal);
lado=load_gif("imagenes/lateral.gif",pal);
for(i=50; i<=getAltura()-100; i+=50){
draw_sprite(buffer,li2,200,i);
draw_sprite(buffer,ld2,550,i);
}
draw_sprite(buffer,f1,200,0);
draw_sprite(buffer,f3,200,350);
draw_sprite(buffer,lado,0,0);
switch (n)
{
case 0:
tabla[0][0].setId(S1);tabla[0][1].setId(C1);tabla[0][2].setId(SD);tabla[0][3].setId(C1);tabla[0][4].setId(S1);tabla[0][5].setId(C1);
tabla[1][0].setId(C1);tabla[1][1].setId(S1);tabla[1][2].setId(C1);tabla[1][3].setId(SL);tabla[1][4].setId(CD);tabla[1][5].setId(S1);
tabla[2][0].setId(S1);tabla[2][1].setId(CL);tabla[2][2].setId(S1);tabla[2][3].setId(C1);tabla[2][4].setId(SL);tabla[2][5].setId(W);
tabla[3][0].setId(C1);tabla[3][1].setId(SD);tabla[3][2].setId(C1);tabla[3][3].setId(S1);tabla[3][4].setId(C1);tabla[3][5].setId(SD);
tabla[4][0].setId(S1);tabla[4][1].setId(C1);tabla[4][2].setId(SL);tabla[4][3].setId(C1);tabla[4][4].setId(S1);tabla[4][5].setId(CL);
tabla[5][0].setId(C1);tabla[5][1].setId(S1);tabla[5][2].setId(C1);tabla[5][3].setId(S1);tabla[5][4].setId(C1);tabla[5][5].setId(S1);
dibujar(tabla);
break;
case 1:
tabla[0][0].setId(S1);tabla[0][1].setId(S1);tabla[0][2].setId(C1);tabla[0][3].setId(C1);tabla[0][4].setId(S1);tabla[0][5].setId(S1);
tabla[1][0].setId(S1);tabla[1][1].setId(SU);tabla[1][2].setId(CL);tabla[1][3].setId(CU);tabla[1][4].setId(S1);tabla[1][5].setId(S1);
tabla[2][0].setId(C1);tabla[2][1].setId(CU);tabla[2][2].setId(SU);tabla[2][3].setId(SU);tabla[2][4].setId(C1);tabla[2][5].setId(CL);
tabla[3][0].setId(CR);tabla[3][1].setId(CU);tabla[3][2].setId(SL);tabla[3][3].setId(S1);tabla[3][4].setId(CU);tabla[3][5].setId(C1);
tabla[4][0].setId(S1);tabla[4][1].setId(S1);tabla[4][2].setId(CU);tabla[4][3].setId(CD);tabla[4][4].setId(S1);tabla[4][5].setId(SU);
tabla[5][0].setId(S1);tabla[5][1].setId(SU);tabla[5][2].setId(W);tabla[5][3].setId(CL);tabla[5][4].setId(SU);tabla[5][5].setId(S1);
dibujar(tabla);
break;
case 2:
tabla[0][0].setId(T);tabla[0][1].setId(S1);tabla[0][2].setId(S1);tabla[0][3].setId(S1);tabla[0][4].setId(S1);tabla[0][5].setId(S1);
tabla[1][0].setId(C1);tabla[1][1].setId(C1);tabla[1][2].setId(CU);tabla[1][3].setId(CR);tabla[1][4].setId(CU);tabla[1][5].setId(W);
tabla[2][0].setId(S1);tabla[2][1].setId(T);tabla[2][2].setId(S1);tabla[2][3].setId(S1);tabla[2][4].setId(S1);tabla[2][5].setId(SU);
tabla[3][0].setId(C1);tabla[3][1].setId(CR);tabla[3][2].setId(CU);tabla[3][3].setId(C1);tabla[3][4].setId(C1);tabla[3][5].setId(CL);
tabla[4][0].setId(S1);tabla[4][1].setId(SU);tabla[4][2].setId(SL);tabla[4][3].setId(S1);tabla[4][4].setId(SL);tabla[4][5].setId(S1);
tabla[5][0].setId(C1);tabla[5][1].setId(CL);tabla[5][2].setId(CU);tabla[5][3].setId(C1);tabla[5][4].setId(C1);tabla[5][5].setId(C1);
dibujar(tabla);
break;
case 3:
tabla[0][0].setId(S1);tabla[0][1].setId(SL);tabla[0][2].setId(C1);tabla[0][3].setId(C1);tabla[0][4].setId(SL);tabla[0][5].setId(S1);
tabla[1][0].setId(SR);tabla[1][1].setId(SU);tabla[1][2].setId(CL);tabla[1][3].setId(CU);tabla[1][4].setId(S1);tabla[1][5].setId(SL);
tabla[2][0].setId(C1);tabla[2][1].setId(CD);tabla[2][2].setId(S1);tabla[2][3].setId(SR);tabla[2][4].setId(CR);tabla[2][5].setId(CU);
tabla[3][0].setId(W);tabla[3][1].setId(CL);tabla[3][2].setId(S1);tabla[3][3].setId(S1);tabla[3][4].setId(CL);tabla[3][5].setId(C1);
tabla[4][0].setId(SU);tabla[4][1].setId(S1);tabla[4][2].setId(C1);tabla[4][3].setId(C1);tabla[4][4].setId(SU);tabla[4][5].setId(S1);
tabla[5][0].setId(S1);tabla[5][1].setId(S1);tabla[5][2].setId(C1);tabla[5][3].setId(CL);tabla[5][4].setId(SU);tabla[5][5].setId(S1);
dibujar(tabla);
break;
case 4:
tabla[0][0].setId(S1); tabla[0][1].setId(C1); tabla[0][2].setId(S1);tabla[0][3].setId(C1);tabla[0][4].setId(S1);tabla[0][5].setId(C1);
tabla[1][0].setId(CU);tabla[1][1].setId(SL);tabla[1][2].setId(C1);tabla[1][3].setId(S1);tabla[1][4].setId(C1);tabla[1][5].setId(S1);
tabla[2][0].setId(S1);tabla[2][1].setId(C1);tabla[2][2].setId(SL);tabla[2][3].setId(C1);tabla[2][4].setId(SL);tabla[2][5].setId(CU);
tabla[3][0].setId(C1);tabla[3][1].setId(S1);tabla[3][2].setId(CU);tabla[3][3].setId(SU);tabla[3][4].setId(CD);tabla[3][5].setId(S1);
tabla[4][0].setId(T);tabla[4][1].setId(C1);tabla[4][2].setId(S1);tabla[4][3].setId(CU);tabla[4][4].setId(SL);tabla[4][5].setId(C1);
tabla[5][0].setId(CU);tabla[5][1].setId(S1);tabla[5][2].setId(CU);tabla[5][3].setId(S1);tabla[5][4].setId(W);tabla[5][5].setId(S1);
dibujar(tabla);
break;
}
draw_sprite(screen,buffer,0,0);
}
int Escenario::getNivel(){
return nivel;
}
int Escenario::getAltura(){
return altura;
}
int Escenario::getAnchura(){
return anchura;
}
void Escenario::dibujar(Cuadro tabla[6][6])
{
BITMAP *piso,*c1,*cu,*cd,*cr,*cl,*s1,*su,*sd,*sr,*sl,*m,*momia,*win,*t;
PALETTE pal;
piso=load_gif("imagenes/piso.gif",pal);
c1=load_gif("imagenes/c1.gif",pal);
cu=load_gif("imagenes/cu.gif",pal);
cd=load_gif("imagenes/cd.gif",pal);
cr=load_gif("imagenes/cr.gif",pal);
cl=load_gif("imagenes/cl.gif",pal);
s1=load_gif("imagenes/s1.gif",pal);
su=load_gif("imagenes/su.gif",pal);
sd=load_gif("imagenes/sd.gif",pal);
sr=load_gif("imagenes/sr.gif",pal);
sl=load_gif("imagenes/sl.gif",pal);
m=load_gif("imagenes/md.gif",pal);
momia=load_gif("imagenes/momd.gif",pal);
t=load_gif("imagenes/trampa.gif",pal);
win=load_gif("imagenes/win.gif",pal);
k=w=0;
for (i=50; i<=300; i+=50)
for (j=250; j<=500; j+=50)
{
switch (tabla[k][w].getId())
{
case S1:
draw_sprite(buffer,s1,j,i);
break;
case SU:
draw_sprite(buffer,su,j,i);
break;
case SD:
draw_sprite(buffer,sd,j,i);
break;
case SR:
draw_sprite(buffer,sr,j,i);
break;
case SL:
draw_sprite(buffer,sl,j,i);
break;
case C1:
draw_sprite(buffer,c1,j,i);
break;
case CU:
draw_sprite(buffer,cu,j,i);
break;
case CD:
draw_sprite(buffer,cd,j,i);
break;
case CR:
draw_sprite(buffer,cr,j,i);
break;
case CL:
draw_sprite(buffer,cl,j,i);
break;
case T:
draw_sprite(buffer,t,j,i);
break;
case W:
draw_sprite(buffer,win,j,i);
break;
}
w++;
}
k++;
draw_sprite(buffer,momia,mom->getX(),mom->getY());
draw_sprite(buffer,m,mo->getX(),mo->getY());
draw_sprite(screen,buffer,0,0);
//destroy_bitmap(buffer);
}
Escenario::~Escenario(){
cout<<"Destructor de Cuadro"<<endl;
delete mo;
delete mom;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -