找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2978|回复: 0
收起左侧

第一次用c语言编游戏之-弹球游戏

[复制链接]
ID:101489 发表于 2016-1-3 02:13 | 显示全部楼层 |阅读模式

说明:我用VC外挂了TC的图形库,所以VC不能正确运行,要安装一个叫easyx的软件才行这是一个双人弹球游戏一个人用ws控制左边板的上下,一个人用ol控制右边板的上下,一共30秒,比分高的人胜。
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
void main()
{
initgraph(640, 480);
struct pai
{
int x;
int y;
int a;
}pai1,pai2;
int x3,y3,m=0,n=0,i=1,j=2,k=30000;
char p1,p2,p3,p4;
loop:
pai1.x=220;pai1.y=260;
pai2.x=220;pai2.y=260;
x3=320;y3=240;
setcolor(WHITE);
setfillstyle(WHITE);
rectangle(0,pai1.x,5,pai1.y);
rectangle(635,pai2.x,640,pai2.y);
circle(x3,y3,5);
// 画初始图形
   
char c;
while(1)
{
p1=m+'0';
p2=n+'0';
p3=k/10000+'0';
p4=(k/1000)%10+'0';
outtextxy(300,5,p1);
outtextxy(340,5,p2);
    outtextxy(280,20,"TIME");
outtextxy(360,20,p3);
outtextxy(370,20,p4);
    if (kbhit())
   {
// 获取按键
        c = getch();
        // 先擦掉上次显示的旧图形
        setcolor(BLACK);
        setfillstyle(BLACK);
        rectangle(0,pai1.x,5,pai1.y);
        rectangle(635,pai2.x,640,pai2.y);
        // 根据输入,计算新的坐标
        switch(c)
        {
case 'w': {pai1.x-=10;pai1.y-=10;} break;
        case 's': {pai1.x+=10;pai1.y+=10;}; break;
case 'o': {pai2.x-=10;pai2.y-=10;}break;
        case 'l': {pai2.x+=10;pai2.y+=10;}break;
        case 27: break;
        }
        // 绘制新的图形
        setcolor(WHITE);
        setfillstyle(WHITE);
        rectangle(0,pai1.x,5,pai1.y);
        rectangle(635,pai2.x,640,pai2.y);
        // 延时
        Sleep(10);
}




    setcolor(BLACK);
    setfillstyle(BLACK);
circle(x3,y3,5);
if(y3<=480&&y3>=0)
{if((i>0&&(635-x3)>=6)||(i<0&&x3>=11))
{x3+=i;y3+=j;}
else if(i>0&&(635-x3)==5)
{if (y3>=pai2.x&&y3<=pai2.y)  
{i=-i;x3+=i;y3+=j;}
else {m+=1;setcolor(BLACK);rectangle(0,pai1.x,5,pai1.y);
        rectangle(635,pai2.x,640,pai2.y);goto loop;}
}
else if(i<0&&x3==10)
{if(y3>=pai1.x&&y3<=pai1.y)
    {i=-i;x3+=i;y3+=j;}
else {n+=1;setcolor(BLACK);
       rectangle(0,pai1.x,5,pai1.y);
   rectangle(635,pai2.x,640,pai2.y);goto loop;}
}


}


    else if(y3>480||y3<0) {x3+=i;j=-j;y3+=j;}
setcolor(WHITE);
    setfillstyle(WHITE);
    circle(x3,y3,5);
    Sleep(18);
    //球的初始运行轨迹
k-=10;
if(k==0) goto loop1;


    }
loop1:
if(m>n) outtextxy(320,240,"player1 wins");
else if(m<n) outtextxy(320,240,"player2 wins");
else if(m==n) outtextxy(320,240,"平局");
getch();   
closegraph();

}












回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表