帮我编个c语言小游戏编程100例的游戏呗

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
使用C语言编写简单小游戏
下载积分:700
内容提示:使用C语言编写简单小游戏
文档格式:PDF|
浏览次数:399|
上传日期: 06:28:41|
文档星级:
该用户还上传了这些文档
使用C语言编写简单小游戏
官方公共微信共30个文档积分:3000分
共30个文档积分:3000分
共57个文档积分:1300分
共50个文档积分:2500分
36477人查阅
35969人查阅
36391人查阅
36528人查阅
36674人查阅
所需积分:0分2010年12月 挨踢职涯大版内专家分月排行榜第三2010年11月 C/C++大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本帖子已过去太久远了,不再提供回复功能。#include "std相关信息.h"
#include "graphics.h"
#include "conio.h"
#include "stdlib.h"
#include "math.h"
void initgr(void){
int gd=DETECT,
registerbgidriver(EGAVGA_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(EGAVGA_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);
}
用GetWindowDirectory()得到windows目录用GetSystemDirectory()得到系统目录用GetModuleFile()得到文件自...
C语言:C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C...
我知道,我是在中看到的,我也玩过,记得叫《泡泡大冒险》你看看吧
Oh,I don't know
答: 一般较小型的采暖、通风、空调、制冷工程设计阶段常分为初步设计和施工图设计两个阶段。大型且技术复杂的采暖、通风、空调、制冷工程项目常分为方案设计阶段、初步设计段和...
答: sina共享里面如果没有的话,估计大家都没有了~
答: 有"青蓝工程"的材料吗和教育有关的
答: 非煤矿山每年需要的教育培训及学时是河北省的非煤矿山,我现在知道的有:入厂新职工三级教育培训;在职安全教育培训;法律法规意识培训;应急救援教育培训;全员安全生产教...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区}

我要回帖

更多关于 c语言编写的小游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信