找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3353|回復(fù): 0
收起左側(cè)

第一次用c語(yǔ)言編游戲之-彈球游戲

[復(fù)制鏈接]
ID:101489 發(fā)表于 2016-1-3 02:13 | 顯示全部樓層 |閱讀模式

說明:我用VC外掛了TC的圖形庫(kù),所以VC不能正確運(yùn)行,要安裝一個(gè)叫easyx的軟件才行這是一個(gè)雙人彈球游戲一個(gè)人用ws控制左邊板的上下,一個(gè)人用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);
        // 根據(jù)輸入,計(jì)算新的坐標(biāo)
        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);
        // 延時(shí)
        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);
    //球的初始運(yùn)行軌跡
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();

}












回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表