Программирование компьютерной графики. Создание игры «Опасный лабиринт», страница 4

{

setcolor(0);

settextstyle( TRIPLEX_FONT, HORIZ_DIR, 32 );

settextjustify(CENTER_TEXT,CENTER_TEXT);

outtextxy(getmaxx()/2,getmaxy()/3*2,us_name);

us_name[i]=ch;

us_name[i+1]='\0';

setcolor(5);

settextstyle( TRIPLEX_FONT, HORIZ_DIR, 32 );

settextjustify(CENTER_TEXT,CENTER_TEXT);

outtextxy(getmaxx()/2,getmaxy()/3*2,us_name);

i++;

}

} while(k!=13&&i<5);

sleep(200);

strcpy(tmp.Name, us_name);

tmp.Time=time;

for(i=0; i<10; i++)

{

if(Spisok[i].Time>tmp.Time||Spisok[i].Time==0)

{

for(j=9; j>i; j--)

{

Spisok[j]=Spisok[j-1];

}

Spisok[i]=tmp;

break;

}

}

this->AddFileRank();

}

};

class BadObject //создание плохого объекта

{

public:

int xst, yst, xk, yk, napr, xt, yt;

void Move (void) //прописка движения

{

if (napr==1)

{

xt+=20;

if (xt==xk)

napr=2;

}

if (napr==2)

{

xt-=20;

if (xt==xst)

napr=1;

}

if (napr==3)

{

yt-=20;

if (yt==yst)

napr=4;

}

if (napr==4)

{

yt+=20;

if (yt==yk)

napr=3;

}

}

void Paint (int c) //прорироска объекта

{

setcolor (c);

circle (xt,yt,8);

line (xt-15,yt-15,xt+15,yt+15);

line (xt-15,yt+15,xt+15,yt-15);

line (xt-15,yt,xt+15,yt);

line (xt,yt-15,xt,yt+15);

}

};

class Play: public Best //описание самой игры

{

public:

int napr, xt, yt, xk, yk, xst, yst,xe,ye,xs,ys,x,y;

float st,ft, f;

clock_t begin, end;

clock_t summa;

BadObject massB[8];

User_Menu m;

Play ()

{

napr=0;

xt=0;  yt=0;

xk=0;  yk=0;

xst=0; yst=0;

xe=0;  ye=0;

xs=0;  ys=0;

x=0;   y=0;

st=0;  ft=0;     

end=0; begin =0;

f=0;

}

void Time(void) //время

{

char string[20] = "";

ft = (end-begin)/CLK_TCK+f;

st=0;

if(ft - st > 0)

{

itoa(ft-1, string, 10);

setcolor(0);

setfillstyle(1, 0);

setcolor(0);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 15 );

outtextxy(100, 460, string);

itoa(ft, string, 10);

setcolor(9);

setfillstyle(1, 9);

setcolor(3);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 15 );

outtextxy(100, 460, string);

st = ft;

}

}

int Life (int l) //изменение кол-ва жизни

{

if (l==3)

{

setcolor (4);

rectangle (330,442,370,479);

setfillstyle (1,0);

floodfill (360,455,4);

setcolor (3);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 20);

outtextxy (350,460,"3");

}

if (l==2)

{

setcolor (4);

rectangle (330,442,370,479);

setfillstyle (1,0);

floodfill (360,455,4);

setcolor (3);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 20);

outtextxy (350,460,"2");

}

if (l==1)

{

setcolor (4);

rectangle (330,442,370,479);

setfillstyle (1,0);

floodfill (360,455,4);

setcolor (3);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 20);

outtextxy (350,460,"1");

}

if (l==0)

{

GameOver ();

return 0;

}

return l;

}

void Vlvl (void) //ф-ия выбора уровня

{

int xc=205, yc=110;

cleardevice();

setcolor (4);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 25);

outtextxy (320,20,"Опасный лабиринт");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 15);

outtextxy (320,40,"Выберите уровень:");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 32 );

setcolor (3);

outtextxy (320,105, "Уровень 1");

outtextxy (315,195, "Уровень 2");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 32 );

outtextxy (315, 285, "Уровень 3");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 32 );

outtextxy (320,370, "Назад");

setcolor (8);

line (0, 50, 50, 50);

line (100,0, 100, 100);

line (50,50, 50, 150);

line (50,150, 0,150);

line (100,100, 190,100);

line (190,100, 190,50);

line (190,50, 450,50);

line (450,50, 450,100);

line (450,100, 540,100);

line (540,100, 540,0);

line (640,50, 590,50);

line (590,50, 590,150);

line (590,150, 640,150);

line (540,150, 450,150);

line (540,150, 540,200);

line (540,200, 590,200);

line (100,150, 100, 200);

line (100,200, 50,200);

line (100,150, 190, 150);

line (190,150, 190,220);

line (50,200, 50,220);

line (50,220, 190,220);

line (190,270, 100,270);

line (100,270, 100,370);

line (100,370, 170,370);

line (170,370, 170,480);

line (0,270, 50,270);

line (50,270, 50,420);

line (50,420, 120,420);

line (120,420, 120,480);

line (590,200, 590,220);

line (590,220, 450,220);

line (450,220, 450,150);

line (450,270, 550,270);

line (550,270, 550,370);

line (550,370, 470,370);

line (470,370, 470,480);

line (590,270, 590,420);

line (590,420, 520,420);

line (520,420, 520,480);

line (590,270, 640,270);

line (190,270, 190,430);

line (190,430, 450,430);

line (450,430, 450,270);

setcolor (13);