📄 frame.cpp
字号:
}
else
{
DDraw_Draw_Surface(lpddsbackground[4],0,0,1024,768, lpddsback,0);
if(mark==1)
{
HouYi.DrawPeople(a);
for(int i=0;i<2;i++)
{
if(kkp[i]->get_life())
kkp[i]->free_walk(a);
}
int cc, dd;
int num;
for(num=0;num<2;num++)
{
cc = HouYi.get_x()-kkp[num]->get_x();
dd = HouYi.get_y()-kkp[num]->get_y();
cc= cc*cc+dd*dd;
if(kkp[num]->get_life())
if(cc<=10000)
{
rs=fight(lpddsbackground[0],lpddsbackground[2],lpddsbackground[2],*(kkp[num]));
PlaySound(MAKEINTRESOURCE(IDR_WAVE6),hinstance_app,SND_ASYNC|SND_RESOURCE|SND_LOOP);
if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[1].palette)))
return(0);
mark=2;
cx=0;
}
}
if(!kkp[0]->get_life()&&!kkp[1]->get_life())
{
char ** word1;
word1 = (char**) malloc(12*sizeof(char*));
for(int i = 0;i<10 ;i++)
word1[i] = (char*)malloc(120);
strcpy(word1[0],"众太阳神。。。");
strcpy(word1[1],"大胆后羿,你竟敢擅闯太阳宫重地,该当何罪?");
strcpy(word1[2],"你们十兄弟同时出现在太阳宫,民间已然是一片焦土。你们是何居心?");
strcpy(word1[3],"。。。。看来你是存心来阻止我们。");
strcpy(word1[4],"我奉玉帝令,要求你们立即悬崖勒马,否则天规论处。");
strcpy(word1[5],"后羿,我们敬你是条汉子,不如加入我们,事成之后,上天下地,惟我独尊。");
strcpy(word1[6],"住口!你们身为天神,为求权势却甘入魔道,受魔王指使,残害苍生,神人共怒!");
strcpy(word1[7],"好吧,既然话都说到这份上了,我们只好成全你了,让你形神俱灭。");
strcpy(word1[8],"那要看你们有没那个本事了。。。一起来吧!");
strcpy(word1[9],"不愧为天庭第一猛将,好,我们痛快地决一死战!");
tou=4;
talk(lpddsbackground[4],houyitou,lpddsotherpeople[3],word1,10);
mark=3;
}
}
if(mark==2)
{
if(!rs)
mark=1;
else
{
if(!HouYi.get_life())
GameState = START_PICTURE;
else mark=1;
}
}
if(mark==3)
{
HouYi.DrawPeople(a);
cx++;
if(cx%16<=4)
cy=412;
else if(cx%16<=8&&cx%16>4)cy=400;
else if(cx%16<=12&&cx%16>8)cy=388;
else cy=400;
if(aboluo.get_life())
DDraw_Draw_Surface(lpddsotherpeople[2],400,cy,172,224, lpddsback,1);
int cc, dd;
cc = HouYi.get_x()-aboluo.get_x();
dd = HouYi.get_y()-aboluo.get_y();
cc= cc*cc+dd*dd;
if(cc<=10000)
{
rs=fight(lpddsbackground[0],NULL,NULL,aboluo);
PlaySound(MAKEINTRESOURCE(IDR_WAVE6),hinstance_app,SND_ASYNC|SND_RESOURCE|SND_LOOP);
if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[1].palette)))
return(0);
if(!rs)
{
mark=4;
changer.set_xy(78,483);
}
else if(rs==1)
GameState=START_PICTURE;
}
}
if(mark==4)
{
static int k=0,kk=0;
if(!k)
{
HouYi.DrawPeople(a);
changer.free_walk(a);
int cc = HouYi.get_x()-changer.get_x();
int dd = HouYi.get_y()-changer.get_y();
cc= cc*cc+dd*dd;
if(cc<=10000)
{
char ** word1;
word1 = (char**) malloc(2*sizeof(char*));
for(int i = 0;i<2 ;i++)
word1[i] = (char*)malloc(120);
strcpy(word1[0],"一切终于都结束了。。。啊,嫦娥你怎么了。。。");
strcpy(word1[1],"我感觉轻飘飘地,我身不由己,要飞起来了。。。看来预言要实现 了,将军,我们也要永别了。。。。");
// strcpy(word1[2],"不——不——不——预言怎么会是真的,为什么要这样对我,我究竟做错了什么。。。");
// strcpy(word1[3],"将军保重,嫦娥要走了");
tou=1;
talk(lpddsbackground[4],houyitou,lpddsotherpeople[1],word1,2);
for (i=0;i<2;i++)
free(word1[i]);
free(word1);
k=1;
}
}
if(k==1)
{
cy-=3;
changer.set_xy(changer.get_x(),cy);
kk++;
if(kk<20)
{
DDraw_Draw_Surface(changer.lpdds1[2][1],changer.get_x(),changer.get_y(),72,96,lpddsback,1);
}
else
{
k=2;
}
}
if(k==2)
{
changer.position();
// Houyi.position();
char ** word1;
word1 = (char**) malloc(5*sizeof(char*));
for(int i = 0;i<5 ;i++)
word1[i] = (char*)malloc(120);
strcpy(word1[0],"不——不——预言不会是真的!上天为什么要这样对我。。。嫦娥你别走,我不能没有你!");
strcpy(word1[1],"啊,将军,我看到了双眸中的泪水。将军居然为嫦娥落泪了....");
strcpy(word1[2],"我不相信这是真的,嫦娥,我要和你一起走,我拼死也要去月宫!");
strcpy(word1[3],"不,将军,预言是不可违的。将军将对嫦娥的感情深放在心底,嫦娥已经觉得和幸福了。");
strcpy(word1[4],"嫦娥你等等我,我不要你离开我!");
talk(lpddsbackground[4],houyitou,lpddsotherpeople[1],word1,5);
for (i=0;i<5;i++)
free(word1[i]);
free(word1);
k=3;
HouYi.set_xy(changer.get_x()+120,changer.get_y());
cy=changer.get_y();
}
if(k==3)
{
if(cy>250)
{
cy-=3;
HouYi.set_xy(HouYi.get_x(),cy);
changer.set_xy(changer.get_x(),cy);
}
else
k=4;
HouYi.position();
changer.position();
}
if(k==4)
{
HouYi.position();
changer.position();
char ** word1;
word1 = (char**) malloc(4*sizeof(char*));
for(int i = 0;i<4 ;i++)
word1[i] = (char*)malloc(120);
strcpy(word1[0],"啊,我感觉我体内的能量在急速流失,我快飞不动了,然道我真要成为凡人了?");
strcpy(word1[1],"永别了,将军,嫦娥的心里,永远烙住将军的容颜。。。");
strcpy(word1[2],"嫦娥,我要下落了,永别了,我的爱人。。。");
strcpy(word1[3],"不——不——将军——");
talk(lpddsbackground[4],houyitou,lpddsotherpeople[1],word1,4);
for (i=0;i<4;i++)
free(word1[i]);
free(word1);
k=5;
kk=0;
}
if(k==5)
{
kk++;
DDraw_Draw_Surface(HouYi.lpdds[0][0],HouYi.get_x(),HouYi.get_y()+kk*3,
120,120,lpddsback,1);
DDraw_Draw_Surface(changer.lpdds1[0][0],changer.get_x(),changer.get_y()-kk*3,
changer.get_W(),changer.get_H(),lpddsback,1);
if(kk>200)
{
Draw_Text_GDI("后羿用尽了最后一丝成为凡人前的能量,只通慢慢在下落,年轻的生命在急速地流失着.....!",150,150,255,lpddsback);
Sleep(500);
Draw_Text_GDI("他只能眼睁睁地看着嫦娥的远离",150,250,255,lpddsback);
Sleep(500);
Draw_Text_GDI("我们的英雄,天堂不是在上面吗,你为什么要往下飞呢?",150,350,255,lpddsback);
Sleep(500);
Draw_Text_GDI("他落到地面上了,手里握着嫦娥袖口上的一块布。。。。",150,450,255,lpddsback);
Sleep(500);
Draw_Text_GDI("他安然地笑了笑,闭上了双眼,曾经紧握的双手,终于无力地松开了。。。",150,550,255,lpddsback);
Sleep(500);
Draw_Text_GDI("风中,飘着那块布......",150,650,255,lpddsback);
if(KEYDOWN(VK_RETURN))
window_closed=1;
}
}
}
}
for ( i=0;i<4;i++)
free(a[i]);
free(a);
while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));
Sleep(50);
return 0;
}
int talk(LPDIRECTDRAWSURFACE7 background,LPDIRECTDRAWSURFACE7 people1,LPDIRECTDRAWSURFACE7 people2,char **word,int n)
{
int i;
for(i=0;i<n;i++)
{
DDraw_Draw_Surface(background,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,lpddsback,0);
DDraw_Draw_Surface(talkbar,110,645,898,93,lpddsback,1);
// DDraw_Draw_Surface(people1,HouYi.get_x(,,)
HouYi.position();
if(tou==0)
{
for(int j=0;j<3;j++)
if(kkp[j]->get_life())
kkp[j]->position();
}
if(tou)
{
if(tou!=4)
changer.position();
if(tou==3)
DDraw_Draw_Surface(lpddsotherpeople[0],500,350,73,137, lpddsback,1);
if(tou==4)
DDraw_Draw_Surface(lpddsotherpeople[2],400,500,172,224, lpddsback,1);
}
if(i%2==0)
{
if(!tou)
DDraw_Draw_Surface(people1,20,630,120,120,lpddsback,1);
else
DDraw_Draw_Surface(people1,20,630,101,130,lpddsback,1);
}
else
DDraw_Draw_Surface(people2,20,630,toux[tou],touy[tou],lpddsback,1);
Draw_Text_GDI(word[i],150,690,255,lpddsback);
while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));
while(1)
{
if(KEYDOWN(VK_SPACE))
{
Sleep(300);
break;
}
}
}
return 0;
}
//return 0 怪死了,return 1 主人公死了
int fight(LPDIRECTDRAWSURFACE7 background,LPDIRECTDRAWSURFACE7 guai,
LPDIRECTDRAWSURFACE7 houyi,
people & guaiwu)
{
int i=0,j=0,k=0,final=0,sound=0,jiaxue=0;
int life=guaiwu.get_life();
LPDIRECTDRAWSURFACE7 fight_state[4];
if(FAILED(Load_Bitmap_File(&bitmap[3],"resource\\1.bmp")))
return 0;
for(i=0;i<4;i++)
{
fight_state[i] = DDraw_Create_Surface(106,183,0,0);
Scan_Image_Bitmap(&bitmap[3],
fight_state[i],
i, 0);
}
Unload_Bitmap_File(&bitmap[3]);
if(FAILED(Load_Bitmap_File(&bitmap[3],"resource\\effect.bmp")))
return 0;
for(i=0;i<1;i++)
{
fight_effect[i]=DDraw_Create_Surface(100,100,0,0);
Scan_Image_Bitmap(&bitmap[3],fight_effect[i],i,0);
}
Unload_Bitmap_File(&bitmap[3]);
if (FAILED(lpddpal->SetEntries(0,0,MAX_COLORS_PALETTE,bitmap[0].palette)))
return(0);
i=0;
while(1)
{
i++;
DDraw_Draw_Surface(background,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,lpddsback,0);
if(!final)
{
if(i%2==0)
{
if(KEYDOWN(VK_DOWN))j+=1;
if(KEYDOWN(VK_UP))j-=1;
if(j>3)j=3;
if(j<0)j=0;
if(KEYDOWN(VK_RETURN))
{
if(j==0)
{
DDraw_Draw_Surface(fight_effect[0],0,0,100,100,lpddsback,1);
// DDraw_Draw_Surface(background,0,0,SCREEN_WIDTH,SCREEN_HEIGHT,lpddsback,0);
srand(time(NULL));
HouYi.attack_fuction(guaiwu);
Sleep(500);
if(guaiwu.get_life()==0)
{
HouYi.set_experience(guaiwu.get_level());
HouYi.levelup();
final=1;
}
k=1;
}
if(j==3)
{
srand(time(NULL));
int aa=rand()%10;
if(aa<8)
{
HouYi.set_xy(1,300);
return 2;
}
else
k=1;
}
// PlaySound(MAKEINTRESOURCE(IDR_WAVE1),hinstance_app,SND_ASYNC|SND_RESOURCE);
}
Sleep(50);
}
else
{
if(k==1)
{
guaiwu.attack_fuction(HouYi);
if(HouYi.get_life()==0)
final=2;
k=0;
}
Sleep(50);
}
}
if(final==1) //怪死了
{
char a[10],b[30]="胜利了!得到血瓶生命值+";
itoa(life,a,10);
Draw_Text_GDI(strcat(b,a),275,370,150,lpddsback);
if(!jiaxue)
{
HouYi.setlife(life);
jiaxue=1;
}
if(!sound)
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE2),hinstance_app,SND_ASYNC|SND_RESOURCE);
sound=1;
}
Sleep(50);
if(KEYDOWN(VK_RETURN))
return 0;
}
if(final==2) //后羿死了
{
Draw_Text_GDI("小子你挂了!",650,402,150,lpddsback);
if(!sound)
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE3),hinstance_app,SND_ASYNC|SND_RESOURCE);
sound=1;
}
Sleep(50);
if(KEYDOWN(VK_RETURN))
return 1;
}
guaiwu.show();
HouYi.show();
DDraw_Draw_Surface(fight_state[j],459,485,106,183,lpddsback,1);
// DDraw_Draw_Surface(fight_effect[0],200,360,100,100,lpddsback,1);
while (FAILED(lpddsprimary->Flip(NULL, DDFLIP_WAIT)));
// Sleep(50);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -