大家好,我是@菜就多练,输不起,就别玩;今天我来给大家分享一个goc游戏
喜欢的话就点个赞吧!
坦克
void tanke1()
{
p.up();
p.picU(0);
p.oo(30,7);
p.rr(50,50,3);
p.rr(25,25,10);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke2()
{
p.rt(90);
p.up();
p.picU(0);
p.oo(30,7);
p.rr(50,50,3);
p.rr(25,25,10);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke3()
{
p.rt(180);
p.up();
p.picU(0);
p.oo(30,7);
p.rr(50,50,3);
p.rr(25,25,10);
p.fd(20).rr(10,40,0).bk(20);
}
void tanke4()
{
p.lt(90);
p.up();
p.picU(0);
p.oo(30,7);
p.rr(50,50,3);
p.rr(25,25,10);
p.fd(20).rr(10,40,0).bk(20);
}
void paodan()
{
p.c(15).oo(10,0).up().fd(10).down().c(5).fd(5).oo(3,1).up().c(15);
}
void bg()
{
for(int i=-10;i<=10;i++)
{
p.moveTo(i*100,0);
p.rr(50,1000,12);
}
}
int a,b,c,s=0,l=0;
int tankex,tankey;
int paodanx,paodany;
int sp=20;//速度
int tankefx=1;//坦克方向
int pdfs=0;//是否发射
int pdfx;
int stonex,stoney;
int stonehua=0;//是否重新画石头
int cishu=0;//打中次数
int bsec;
double daoshu=60;
void stone()
{
for(int i=1;i<=5;i++)
{
if(stonehua==0)
{
stonex=rand(-250,250);
stoney=rand(-250,250);
stonehua=1;
}
p.moveTo(stonex,stoney);
stonex+=rand(-l,l);
stoney+=rand(-l,l);
p.rr(50,50,6);
if(s==0)
{
a=rand(1,3);
b=rand(1,3);
c=rand(1,3);
s=1;
}
if((a==2&&b==2)||(b==2&&c==2)||(a==2&&c==2))
{
p.text("日军间谍",15,12);
l=2;
}
else
if(a==3&&b==3&&c==3)
{
p.text("日本军官",15,12);
l=3;
}
else
{
p.text("日军",15,18);
l=1;
}
}
}
void check()
{
if(paodanx>=stonex-30&&paodanx<=stonex+30&&paodany>=stoney-30&&paodany<=stoney+30)
{
s=0;
stonehua=0;
paodanx=0;
paodany=0;
pdfs=0;
cishu+=l;
}
}
int main()
{
p.speed(10).hide();
cout<<"空格键发射炮弹,攻击日本军,有60秒的时间。";
cout<<"日军1分,日军间谍2分,日本军官3分。";
for(;;)
{
p.speed(10000000000000000000000000000).hide();
p.rr(800,800,10);//绿色背景
if(getTime()>=60)
{
cout<<" 你一共获得"<<cishu<<"分。"<<endl;
break;
}
int k=getKey();//检测键盘按键,根据不同的按键,计算坦克新的坐标
if(k==37)
{
tankex-=sp;
tankefx=4;
}
if(k==39)
{
tankex+=sp;
tankefx=2;
}
if(k==38)
{
tankey+=sp;
tankefx=1;
}
if(k==40)
{
tankey-=sp;
tankefx=3;
}
if(k==32)//空格键
{
pdfs=1;
pdfx=tankefx;
paodanx=tankex;
paodany=tankey;
}
bg();//画背景
stone();//画石头
p.speed(10).hide();
if(pdfs==1)
{
p.moveTo(paodanx,paodany);
if(pdfx==1)paodany+=10;
if(pdfx==2)paodanx+=10;
if(pdfx==3)paodany-=10;
if(pdfx==4)paodanx-=10;
paodan();//画炮弹
}
p.moveTo(tankex,tankey);//到坦克坐标,根据坦克方向画出坦克
if(tankefx==1)tanke1();
if(tankefx==2)tanke2();
if(tankefx==3)tanke3();
if(tankefx==4)tanke4();
p.moveTo(0,-200);
p.text(60-getTime());//输出倒计时时间
check();//检测是否时间结束
wait(0.0001);
p.cls();
}
return 0;
}