#include<stdio.h>
#include <graphics.h> // “˝”√Õº–Œø‚Õ∑Œƒº˛
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
int hight=504;
int width=1008;
int rwhight=131;
int rwwidth=134;
int holdback[10320][504]={0};//…Ë÷√µÿÕº…œµƒ’œ∞≠ŒÔµƒ∂˛Œ¨ ˝◊È
int red[504][10320];
int gllow[504][10320];
int blue[504][10320];
char i=0;//”√¿¥∂®“¬̿Ô∞¬∑ΩœÚ
char j=0;//”√¿¥ÃÂœ÷¬Ì¿Ô∞¬‘À∂Ø∏–
float v=0;//¬Ì¿Ô∞¬µƒ…œ…˝ÀŸ∂»
float v1=0;//¬Ì¿Ô∞¬µƒœ¬ΩµÀŸ∂»
float rw_x,rw_y;
float bj_x;
IMAGE img_rw2,img_gw2;//∂®“±≥æ∞£¨»ÀŒÔ£¨π÷ŒÔÕº∆¨µƒ’⁄’÷Õº
IMAGE img_bk,img_rw,img_gw;//∂®“±≥æ∞£¨»ÀŒÔ£¨π÷ŒÔÕº∆¨
IMAGE img_redbj;
void updatewithpeople();//”Δ√ªß ‰»Î”–πÿµƒ∫Ø ˝
void updatewithoutpeople();//”Δ√ªß ‰»ÎŒfiπÿµƒ∫Ø ˝
void star();//≥ı ºªØ∫Ø ˝
void show();//œ‘ æ∫Ø ˝
void gameover();//”Œœ∑Ω· ¯
int main()
{
star();
while(1)
{
updatewithpeople();
updatewithoutpeople();
show();
}
return 0;
}
void updatewithpeople()
{
int x,x1,y;
x=(int)rw_x;
x1=(int)bj_x;
y=(int)rw_y;//Ω¯––«ø÷∆¿‡–Õ◊™ªª£¨“ÚŒ™ ˝◊È «int–Õ
if((GetAsyncKeyState(0x41)&0x8000))//œÚ◊Û“∆∂Ø
{
if(holdback[x+x1-1][y]==0)
{
i=0;
j=!j;
rw_x-=0.5;
if(rw_x<0&&bj_x>1)
{
rw_x=0;
bj_x-=0.5;
}
}
}
if((GetAsyncKeyState(0x44)&0x8000))//œÚ”““∆∂Ø
{
if(holdback[x+x1+66][y]==0)
{
i=1;
j=!j;
rw_x+=0.5;
if(rw_x>504&&bj_x<10320-1008)//“∆∂صΩ÷–º‰£¨±≥æ∞ø™ º“∆∂Ø
{
rw_x=504;
bj_x+=0.5;
}
}
}
if((GetAsyncKeyState(VK_SPACE)&0x8000))
{
if(holdback[x+x1+33][y+66]==1)//¬˙◊„¬Ì¿Ô∞¬¬‰µÿ∫Û£¨≤≈ƒ‹Ã¯‘浃Ãıº˛
v=300;
}
}
void updatewithoutpeople()//”ÎÕʺ“Œfiπÿµƒ∫Ø ˝
{
int x,x1,y;
x=(int)rw_x;
x1=(int)bj_x;
y=(int)rw_y;//Ω¯––«ø÷∆¿‡–Õ◊™ªª£¨“ÚŒ™ ˝◊È «int–Õ
if(v>0) //¬Ì¿Ô∞¬…œ…˝øÿ÷∆
{
rw_y-=1;
v--;
if(rw_y==0)//µΩ¥Ô∂•≤ø£¨Õ£÷π…œ…˝
{
v=0;
}
}
if(v<=0&&holdback[x+x1+33][y+66]==0)//¬Ì¿Ô∞¬œ¬Ωµøÿ÷∆
{
rw_y+=1;
if(rw_y>=500)
{
gameover();
}
}
}
void star()//≥ı ºªØ∫Ø ˝
{
int i,j;
int x=0,y;
initgraph(width, hight); // ¥¥Ω®ªÊÕº¥∞ø⁄£¨¥Û–°Œ™ 1008x504 œÒÀÿ
loadimage(&img_bk,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\±≥æ∞.jpg"));
loadimage(&img_rw,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\¬Ì¿Ô∞¬.jpg"));
loadimage(&img_rw2,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\¬Ì¿Ô∞¬—⁄¬ÎÕº.jpg"));
loadimage(&img_gw,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\“∞π÷2.jpg"));
loadimage(&img_gw2,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\“∞π÷2—⁄¬ÎÕº.jpg"));
//≥ı ºªØ¬Ì¿Ô∞¬µƒ◊¯±Í
rw_x=33;
rw_y=300;
//≥ı ºªØ’œ∞≠ŒÔ◊¯±Í£¨”√∫Ø ˝Ã·»°Õº∆¨÷–µƒ∫Ï…´«¯”Ú◊¯±Í£¨‘ŸΩ¯––∏≥÷µ
loadimage(&img_redbj,_T("C:\\game\\Õº∆¨Àÿ≤ƒ\\red±≥æ∞.jpg"));
DWORD*pic;
pic=GetImageBuffer(&img_redbj);
for(i=0;i<504;i++)
for(j=0;j<10320;j++)
{
red[i][j]=GetRValue(pic[x]);
gllow[i][j]=GetGValue(pic[x]);
blue[i][j]=GetBValue(pic[x]);
x++;
}
for(i=0;i<504;i++)
for(j=0;j<10320;j++)
{
if(red[i][j]==0&&blue[i][j]>=250&&gllow[i][j]==0)
{
holdback[j][i]=1;
}
}
}
void show()
{
BeginBatchDraw();
putimage(0,0,width,hight,&img_bk,bj_x,0);// ‰≥ˆ±≥æ∞Õº∆¨
if(i==1)
{
if(j==0)
{
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw2,0,0,NOTSRCERASE);// ‰≥ˆœÚ”“±fl◊flµƒ¬Ì¿Ô∞¬
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw,0,0,SRCINVERT);
}
else
{
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw2,rwwidth/2,0,NOTSRCERASE);// ‰≥ˆ¬Ì¿Ô∞¬
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw,rwwidth/2,0,SRCINVERT);
}
}
else
{
if(j==0)
{
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw2,0,rwhight/2,NOTSRCERASE);// ‰≥ˆœÚ◊Û◊flµƒ¬Ì¿Ô∞¬
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw,0,rwhight/2,SRCINVERT);
}
else
{
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw2,rwwidth/2,rwhight/2,NOTSRCERASE);// ‰≥ˆ¬Ì¿Ô∞¬
putimage(rw_x,rw_y,rwwidth/2,rwhight/2,&img_rw,rwwidth/2,rwhight/2,SRCINVERT);
}
}
FlushBatchDraw();
}
void gameover()//Ω· ¯’˚∏ˆ”Œœ∑
{
_getch(); // ∞¥»Œ“‚º¸ºÃ–¯
closegraph(); // πÿ±’ªÊÕº¥∞ø⁄
printf("you lose");
Sleep(4000);
exit(0);
}