可以用c语言开发游戏编写游戏吗

#include "std相关信息.h"
#include "graphics.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
void initgr(void){
int gd=DETECT,
registerbgidriver(EG***GA_driver);
initgraph(&gd,&gm,"");
}
int x1=200,y1=100;
char accept,*p,*q;
int *
void
turn_right(char accept);
void
turn_left(char accept) ;
void
turn_down(char accept) ;
void
change();
void main()
{
int polygon1[18],polygon2[18],polygon3[1...
#include "std相关信息.h"
#include "graphics.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
void initgr(void){
int gd=DETECT,
registerbgidriver(EG***GA_driver);
initgraph(&gd,&gm,"");
}
int x1=200,y1=100;
char accept,*p,*q;
int *
void
turn_right(char accept);
void
turn_left(char accept) ;
void
turn_down(char accept) ;
void
change();
void main()
{
int polygon1[18],polygon2[18],polygon3[18],polygon4[18];
/*第一方块*/
polygon1[0]=x1;
polygon1[1]=y1;
polygon1[2]=x1+30;
polygon1[3]=y1;
polygon1[4]=x1+30;
polygon1[5]=y1+10;
polygon1[6]=x1+20;
polygon1[7]=y1+10;
polygon1[8]=x1+20;
polygon1[9]=y1+20;
polygon1[10]=x1+10;
polygon1[11]=y1+20;
polygon1[12]=x1+10;
polygon1[13]=y1+10;
polygon1[14]=x1;
polygon1[15]=y1+10;
polygon1[16]=x1;
polygon1[17]=y1;
/*第二方块*/
polygon2[0]=x1+10;
polygon2[1]=y1;
polygon2[2]=x1+20;
polygon2[3]=y1;
polygon2[4]=x1+20;
polygon2[5]=y1+30;
polygon2[6]=x1+10;
polygon2[7]=y1+30;
polygon2[8]=x1+10;
polygon2[9]=y1+20;
polygon2[10]=x1;
polygon2[11]=y1+20;
polygon2[12]=x1;
polygon2[13]=y1+10;
polygon2[14]=x1+10;
polygon2[15]=y1+10;
polygon2[16]=x1+10;
polygon2[17]=y1;
you=polygon2;
/*设置方块*/
setcolor(RED);
setbkcolor(8);
setfillstyle(1,RED);
drawpoly(9,polygon2);
floodfill(x1+14,y1+14,RED);
setcolor(14);
drawpoly(9,polygon2);
/*把方块信息载入*/
p=malloc(imagesize(x1,y1,x1+30,y1+20));
/*enter=13*/
getimage(x1,y1,x1+30,y1+30,p);
/*接受字符判断和实现方块的具体移动*/
accept=getch();
while(accept!='*'){
if(accept=='d'||accept=='D')
turn_right(accept);
else if(accept=='a'||accept=='A')
turn_left(accept);
else if(accept=='s'||accept=='S')
turn_down(accept);
accept=getch();
/* if(accept==13) change();
/*结束函数*/
closegraph();
}
void
turn_right(char accept) /*把方块向右移动*/
{
while(accept=='d'||accept=='D'){
putimage(x1,y1,p,1);
putimage(x1,y1,p,1);
accept=getch();
/* if(accept==13) change();
delay(000);
}
}
void turn_left(char accept)
/*把方块向左移动*/
{
while(accept=='a'||accept=='A'){
putimage(x1,y1,p,1);
putimage(x1,y1,p,1);
accept=getch();
/* if(accept==13) change();
delay(000);
}
}
void turn_down(char accept)
/*把方块向下移动*/
{
while(accept=='s'||accept=='S'){
putimage(x1,y1,p,1);
putimage(x1,y1,p,1);
accept=getch();
if(accept==13) change();
delay(1000000);
}
}
/*void change()
{
setcolor(8);
setfillstyle(1,8);
rectangle(x1,y1,x1+30,y1+30);
floodfill(x1+15,y1+15,8);
setcolor(RED);
setbkcolor(8);
setfillstyle(1,RED);
drawpoly(9,you);
floodfill(x1+14,y1+14,RED);
setcolor(14);
drawpoly(9,you);
p=malloc(imagesize(x1,y1,x1+30,y1+20));
getimage(x1,y1,x1+30,y1+30,p);
}
其他***(共1个回答)
在不同机子上编译时需修改init()函数中TC路径
#include "graphics.h"
#include "stdlib.h"
#include "math.h"
#include "bios.h"
#define pi 3.14
#define r 10
#define right 8292
#define left
7777
#define esc 283
#define pause 14624
struct ball
{
int oldx,
/*球的方向采用角度制,范围是0-360度*/
}
struct platform
{
int oldx,
}
int score=0;/*得分*/
int speed=1;/*速度*/
void init();
void base();
void scoreview();
void play();
double change(int x);
void gameover();
void close();
void main()
{
scoreview();
close();
}
void init()/*初始化图形模式*/
{
int gm=DETECT,
initgraph(&gm,&gd,"G:\\tc\\bgi");/*根据不同的TC进行路径修改*/
}
void close()/*关闭图形模式*/
{
closegraph();
}
void base()/*画边框,球以及板并且对球和板的各参数初始化*/
{
setbkcolor(GREEN);
setcolor(8);
setfillstyle(4,LIGHTGRAY);
rectangle(149,149,501,351);
rectangle(140,140,510,360);
floodfill(141,141,8);
setfillstyle(9,BLUE);
platform.x=300;
platform.y=343;
bar(platform.x,platform.y,platform.x+40,platform.y+5);
randomize();
ball.x=random(330)+160;
ball.y=160;
rection=random(30)+280;
setfillstyle(1,YELLOW);
setcolor(YELLOW);
fillellipse(ball.x,ball.y,r,r);
}
void scoreview()/*显示当前的得分数*/
{
char sco[20];
setcolor(WHITE);
setfillstyle(1,YELLOW);
bar(300,50,440,80);
sprintf(sco,"score:%d",score);
setcolor(RED);
settextstyle(0,0,2);
outtextxy(310,60,sco);
}
void play()
{
settextstyle(0,0,2);
setcolor(11);
outtextxy(50,400,"'A'for left
'D'for right");/*提示各个控制键*/
outtextxy(50,450,"'space'for pause
'ESC' for quit");
setcolor(RED);
setfillstyle(1,GREEN);
while(!kbhit())/*开始之前提示按任意键进入相关信息,且提示不停闪烁*/
outtextxy(100,100,"press any key to begin!");
delay(400);
bar(100,100,500,120);
delay(400);
while(!kbhit())
ball.oldx=ball.x;
ball.oldy=ball.y;/*记录下当前球的位置*/
/*根据球的方向来利用角度的正切值来改变球的坐标*/
if( rection&0&& rection&90) {ball.x+=10;ball.y+= (-10*tan(change( rection)));}
if( rection&90&& rection&180) {ball.x+=-10;ball.y+=(10*tan(change( rection)));}
if( rection&180&& rection&270) {ball.x+=-10;ball.y+=(10*tan(change( rection)));}
if( rection&270&& rection&360) {ball.x+=10;ball.y+=(-10*tan(change( rection)));}
if(ball.y+r&=platform.y)/*如果球到底有两种情况*/
{if(ball.x+r-platform.x&0||ball.x-r-platform.x&40) /*球不在板上*/
ball.y=platform.y-r+7;
setfillstyle(1,GREEN);
setcolor(GREEN);
fillellipse(ball.oldx,ball.oldy,r,r);
/*球在游戏结束处闪烁五次*/
setfillstyle(1,YELLOW);
setcolor(YELLOW);
fillellipse(ball.x,ball.y,r,r);
delay(300);
setfillstyle(1,GREEN);
setcolor(GREEN);
fillellipse(ball.x,ball.y,r,r);
delay(300);
gameover();/*游戏结束*/
else { ball.y=platform.y-r;
rection=/*球在板上的话得一分,且速度加一但不能超过5*/
if(speed&5) speed=5;
scoreview();/*刷新得分*/
/*如果球撞墙或板后修正坐标并改变方向*/
if(ball.y-r&150)
ball.y=150+r;
if(ball.x-r&150)
ball.x=150+r;
if( rection&180&& rection&270)
if( rection&90&& rection&180)
if(ball.x+r&500)
ball.x=500-r;
if( rection&270&& rection&360)
if( rection&0&& rection&90)
setfillstyle(1,GREEN);
setcolor(GREEN);
fillellipse(ball.oldx,ball.oldy,r,r);/*在先前位置用底色抹掉球*/
setfillstyle(1,YELLOW);
setcolor(YELLOW);
fillellipse(ball.x,ball.y,r,r);/*在新位置显示球*/
delay(150+(5-speed)*50);
/*对底板的控制*/
key=bioskey(0);
platform.oldx=platform.x;
platform.oldy=platform.y;/*记录下底板先前位置*/
/*通过方向键改变底板的坐标*/
if(key==right) platform.x+=15;
if(key==left) platform.x-=15;
if(key==esc) gameover();
/*如果暂停则闪烁提示按任意键(除暂停键)继续*/
if(key==pause)
while(!kbhit())
setcolor(RED);
outtextxy(10,20,"paused! press any key to continue.");
delay(400);
setfillstyle(1,GREEN);
bar(10,20,600,40);
delay(400);
if(platform.x&150) platform.x=150;
if(platform.x&460) platform.x=460;/*对底板坐标修正*/
setfillstyle(1,GREEN);
bar(platform.oldx,platform.y,platform.oldx+40,platform.y+5);/*在先前位置抹掉底板*/
setfillstyle(9,BLUE);
bar(platform.x,platform.y,platform.x+40,platform.y+5);/*在新位置显示底板*/
}
}
void gameover()/*游戏结束,显示最终得分*/
{
char buffer[50];
cleardevice();
sprintf(buffer,"your final score is:%d",score);
setcolor(BLUE);
settextstyle(0,0,3);
outtextxy(100,300,buffer);
setcolor(RED);
settextstyle(0,0,5);
outtextxy(0,150,"thanks for play!");
getch();
exit(0);
}
double change(int x)/*将角度转化为弧度*/
{
return(x*pi/180);
}
编写完成后直接就可以运行啊
#include &stdio.h&
#define X 11
#define BLANK " "
#define LOVE "\003"
#include &stdio.h&
int IsLeapYear(int);
第一题:#include "stdio.h"
void main()
int a,b,sum=0;
for(a=0;a&=9;a++...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
使用C语言编写简单小游戏
下载积分:700
内容提示:使用C语言编写简单小游戏
文档格式:PDF|
浏览次数:470|
上传日期: 06:28:41|
文档星级:
全文阅读已结束,如果下载本文需要使用
 700 积分
下载此文档
该用户还上传了这些文档
使用C语言编写简单小游戏
官方公共微信

参考资料

 

随机推荐