当前位置:首页 » 编程语言 » c语言打砖块

c语言打砖块

发布时间: 2022-12-29 06:47:22

① 弹力球游戏有什么特点

如果是打砖块游戏的话 注意矢量反射就可以了 还有 起始射出球的角度不要是45度 其他的随意了

c语言运行两个子函数

不用线程或进程,cpu是无法调用时间片来执行两个并行的程序的,只能顺序往下执行。

③ 我想用C语言开发一个小项目

很小的游戏,你可以试试猫捉老鼠,请尽量使用图片进行制作。猫捉老鼠的难度还是挺简单的,你可以试试对你生活中有帮助的,例如解方程,解应用题。
我现在正在开发一个游戏,类似于打砖块,但有四个板都能动,就像SHATTER一样。但还是得看自己的爱好,你喜欢什么就做什么。
如果LZ不嫌弃的话,就点一下我下面的最佳答案吧:)

④ C语言有什么作用,编写软件或者游戏是用C语言编写的吗

我也是去年刚学完C语言的,这是一门非常基础的编程语言,有许多的程序员都在用它编写程序。至于你说的C++嘛,也是和C语言一样性质的编程语言。编程语言还有许多,诸如Basic,java等等。当然他们的规则也是不同的,但是也有相同之处。
语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。允许直接访问物理地址,对硬件进行操作。由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。生成目标代码质量高,程序执行效率高。一般只比汇编程序生成的目标代码效率低10へ20%。适用范围大,可移植性好,C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。
缺点也有, C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
像电脑游戏或者手机游戏其他编程语言都可以编写,只是有难易繁简之分罢了。
总之c语言是基础,一定要重视!!!!!因为我们班现在学数据结构就受C语言之苦!还兼学java语言,痛煞我也,如何道哉!
最后,不要指望什么语言都通,学精一门胜过样样疏松啊!兄台!
求加分!

⑤ Java大二课设,做一个打砖块小游戏

很具体点吗

⑥ C语言能制作小游戏需要其他软件辅助吗

能,但是C语言的是最接近系统的
高级语言
,像这类小游戏,建议你学C++,再用
开发平台
来做,比如QT,MFC等等,用面向对象的语言来写游戏,软件,便于扩展,维护。

⑦ C语言-打砖块游戏是如何判断球的反射方向的

一般一个变量表示朝向,两个变量表示坐标
比对坐标和边界判断是否撞到墙和撞到了哪个墙,然后计算出入射角和反射后的坐标

⑧ 这个C语言打砖块的代码,砖块如何实现刷新(砖块怎么消失)

c语言游戏中实现动画靠的是1秒钟多于25次的刷新。大一用easyx做过类似的,现在有点忘了,核心思想大概是

while(判断游戏未结束)//时间没停,未触发游戏终止标志
{
for(inti=0;i<objectNum;i++)
{
//根据时间更新每个砖块的状态
//如果某砖块的flag设为被打到,清除该物品,如果是链表删节点
//未被打到,砖块.y更新
}

//画背景图

for(inti=0;i<objectNum;i++)
{
//画每个砖块
}
//获取用户命令
//一旦有命令,DispatchCommand()
//调用那个函数,检测鼠标位置停留的时候是不是按键了,检测有没有操作砖块
//sleep(100ms),延时造成视觉停留

}

⑨ c语言编的打砖块游戏

这是一个c语言编的打砖块游戏的雏形

编译前在主目录下建立一个文本文件(xia.txt)内容为:0 0 0 0 0

#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
union REGS regs;
unsigned int zhuan[5];

int Msinit();
void Setmouse(int left,int right,int top,int buttom);
int Msread(int *xp,int *yp,int *bup);
void Draw(int x,int y,int sizex,int sizey);

main()
{int mode=VGAHI,driver=VGA;<br/> unsigned int l;<br/> int i,gi,gj,j,flag=1;/*i,j是循环变量,flag是标记变量,-1:向x负半轴移动,+1:向x正半轴移动*/<br/> double qx,qy,k,b=0.0,speech=0.4,x,y;<br/> double r=2.0,bx=60.0,byy=270.0;<br/> double pianx=100.0,piany=100.0,tx=20.0,ty=10.0,jx=2.0,jy=2.0;<br/> int mx=0,my=0,mb,sum;/*sum纪录砖块的数目*/<br/> FILE * p;<br/> if((p = fopen("xia.txt", "r")) == NULL)<br/> {printf("The file cannot open!\n");<br/> exit(1);}
initgraph(&driver,&mode,"\\tc\\BGI");
Msinit();
Setmouse((int)(pianx+1+bx/2),(int)((tx+jx)*8+pianx-1-bx/2),(int)byy+piany,(int)byy+piany);

star:cleardevice();/*程序重载的介入点*/
sum=0;
qx=100.0+pianx-10;qy=180.0+pianx-10;k=0.33;
setcolor(7);
rectangle((int)(pianx-2),(int)(piany-2),(int)((tx+jx)*8+2+pianx),302+piany);
setcolor(1);
rectangle((int)(pianx-1),(int)(piany-1),(int)((tx+jx)*8+1+pianx),301+piany);
/*读取盘面情况*/
for(i=0;i<5;i++)
fscanf(p,"%x ",&zhuan[i]);
/*画砖块*/
for(i=0;i<5;i++)
{l=1;<br/> for(j=0;j<16;j++)<br/> {if((zhuan[i]&l)==0)<br/> {Draw((int)((jx+tx)*((16*i+j)%8)+pianx+jx),(int)((jy+ty)*((int)((16*i+j)/8))+piany+jy),<br/><br/>(int)tx,(int)ty);<br/> sum+=1;<br/> }
l=l*2;
}
}

for(;;)
{ setfillstyle(1, 0);
bar(mx-bx/2,my,mx+bx/2,my+5);
Msread(&mx, &my, &mb);
Draw(mx-bx/2,my,bx,5);
setcolor(0);
circle(qx,qy,r);
/*判断求是否反弹*/
if(qx-r<=pianx+1 || qx+r>=(tx+jx)*8+pianx-1) {flag=-flag;k=-k;}
if(qy-r<=piany+1) k=-k;

for(gi=0;gi<5;gi++)
{l=1;<br/> for(gj=0;gj<16;gj++)<br/> {<br/> if((zhuan[gi]&l)==0)<br/> {j=(16*gi+gj)/8;<br/> i=(16*gi+gj)%8;<br/> x=(jx+tx)*i+jx+tx/2+pianx;<br/> y=(jy+ty)*j+jy+ty/2+piany;<br/> /*边判断1*/<br/> if(qy>=y-ty/2 && qy<=y+ty/2 &&(pow(qx+r-x+tx/2,2)<1 || pow(qx-r-x-tx/2,2)<1))<br/> {flag=-flag;k=-k;<br/> zhuan[gi]=zhuan[gi]|l;<br/> sum-=1;<br/> if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty);
}
else
/*边判断2*/
if(qx>=x-tx/2 && qx<=x+tx/2 &&(pow(qy+r-y+ty/2,2)<1 || pow(qy-r-y-ty/2,2)<1))
{k=-k;<br/> zhuan[gi]=zhuan[gi]|l;<br/> sum-=1;<br/> if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty);
}
else
/*角判断*/
if(pow(qx-x+tx/2,2)+pow(qy-y+ty/2,int *bup)
{int xnew,ynew,ch;<br/> if(kbhit()) return getch();<br/> regs.x.ax=3;<br/> int86(0x33,& regs,& regs);<br/> xnew=regs.x.cx;<br/> ynew=regs.x.dx;<br/> *bup=regs.x.bx;<br/> *xp=xnew;<br/> *yp=ynew;<br/> return -1;<br/>}

⑩ 做一个打砖块的游戏 用C语言

请编译前在主目录下建立一个文本文件(xia.txt)内容为:0 0 0 0 0
哈哈
#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
union REGS regs;
unsigned int zhuan[5];

int Msinit();
void Setmouse(int left,int right,int top,int buttom);
int Msread(int *xp,int *yp,int *bup);
void Draw(int x,int y,int sizex,int sizey);

main()
{int mode=VGAHI,driver=VGA;
unsigned int l;
int i,gi,gj,j,flag=1;/*i,j是循环变量,flag是标记变量,-1:向x负半轴移动,+1:向x正半轴移动*/
double qx,qy,k,b=0.0,speech=0.4,x,y;
double r=2.0,bx=60.0,byy=270.0;
double pianx=100.0,piany=100.0,tx=20.0,ty=10.0,jx=2.0,jy=2.0;
int mx=0,my=0,mb,sum;/*sum纪录砖块的数目*/
FILE * p;
if((p = fopen("xia.txt", "r")) == NULL)
{printf("The file cannot open!\n");
exit(1);}
initgraph(&driver,&mode,"\\tc\\BGI");
Msinit();
Setmouse((int)(pianx+1+bx/2),(int)((tx+jx)*8+pianx-1-bx/2),(int)byy+piany,(int)byy+piany);

star:cleardevice();/*程序重载的介入点*/
sum=0;
qx=100.0+pianx-10;qy=180.0+pianx-10;k=0.33;
setcolor(7);
rectangle((int)(pianx-2),(int)(piany-2),(int)((tx+jx)*8+2+pianx),302+piany);
setcolor(1);
rectangle((int)(pianx-1),(int)(piany-1),(int)((tx+jx)*8+1+pianx),301+piany);
/*读取盘面情况*/
for(i=0;i<5;i++)
fscanf(p,"%x ",&zhuan[i]);
/*画砖块*/
for(i=0;i<5;i++)
{l=1;
for(j=0;j<16;j++)
{if((zhuan[i]&l)==0)
{Draw((int)((jx+tx)*((16*i+j)%8)+pianx+jx),(int)((jy+ty)*((int)((16*i+j)/8))+piany+jy),

(int)tx,(int)ty);
sum+=1;
}
l=l*2;
}
}

for(;;)
{ setfillstyle(1, 0);
bar(mx-bx/2,my,mx+bx/2,my+5);
Msread(&mx, &my, &mb);

Draw(mx-bx/2,my,bx,5);
setcolor(0);
circle(qx,qy,r);
/*判断求是否反弹*/
if(qx-r<=pianx+1 || qx+r>=(tx+jx)*8+pianx-1) {flag=-flag;k=-k;}
if(qy-r<=piany+1) k=-k;

for(gi=0;gi<5;gi++)
{l=1;
for(gj=0;gj<16;gj++)
{
if((zhuan[gi]&l)==0)
{j=(16*gi+gj)/8;
i=(16*gi+gj)%8;
x=(jx+tx)*i+jx+tx/2+pianx;
y=(jy+ty)*j+jy+ty/2+piany;
/*边判断1*/
if(qy>=y-ty/2 && qy<=y+ty/2 &&(pow(qx+r-x+tx/2,2)<1 || pow(qx-r-x-tx/2,2)<1))
{flag=-flag;k=-k;
zhuan[gi]=zhuan[gi]|l;
sum-=1;
if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty);
}
else
/*边判断2*/
if(qx>
;=x-tx/2 && qx<=x+tx/2 &&(pow(qy+r-y+ty/2,2)<1 || pow(qy-r-y-ty/2,2)<1))
{k=-k;
zhuan[gi]=zhuan[gi]|l;
sum-=1;
if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty);
}
else
/*角判断*/
if(pow(qx-x+tx/2,2)+pow(qy-y+ty/2,2)<=r*r || pow(qx-x-tx/2,2)+pow(qy-y+ty/2,2)<=r*r ||

pow(qx-x+tx/2,2)+pow(qy-y-ty/2,2)<=r*r || pow(qx-x-tx/2,2)+pow(qy-y-ty/2,2)<=r*r)
{flag=-flag;
zhuan[gi]=zhuan[gi]|l;
sum-=1;
if(sum==0) {printf("Win!\n");getch();goto star;}
setfillstyle(1, 0);
bar((jx+tx)*i+pianx+jx,(jy+ty)*j+piany+jy,(jx+tx)*i+pianx+jx+tx,(jy+ty)

*j+piany+jy+ty);
}
}l=l*2;}}
/*棍棒的反弹*/
if(qx<=mx+bx/2 && qx>=mx-bx/2 && pow(qy+r-my,2)<1) {k=-(k/pow(k*k,0.5))*(0.3*bx/(pow(pow

(qx-mx,2),0.5)+0.000001));}
if((int)(qy+r)>my+0.5) {printf("DEAD!");Setmouse(0,0,640,480);getch();exit(1);}
b=qy-qx*k;
if(flag==1) qx=qx+speech/pow(1.0+k*k,0.5);
if(flag==-1) qx=qx-speech/pow(1.0+k*k,0.5);
qy=qx*k+b;/*计算球心坐标*/
setcolor(14);
circle((int)qx,(int)qy,r);
delay(1);
if(mb==1) {Setmouse(0,0,640,480);exit(1);}
}
}

/*这个函数用于实现鼠标的初始化*/
int Msinit()
{int recored;
regs.x.ax=0;
int86 (0x33, & regs, & regs);
recored=regs.x.ax;
if(recored==0)
{printf("Mouse not foundd or Mouse driver not installed.\n");
return 0;
}
else
return recored;
}

/*下面的函数用于实现设置鼠标的移动范围*/
void Setmouse(int left,int right,int top,int buttom)
{
regs.x.ax=7;
regs.x.cx=left;
regs.x.dx=right;
int86(0x33,& regs,& regs);
regs.x.ax=8;
regs.x.cx=top;
regs.x.dx=buttom;
int86(0x33,& regs,& regs);
}

/*下面这个函数用于实现鼠标的读取*/
int Msread(int *xp,int *yp,int *bup)
{int xnew,ynew,ch;
if(kbhit()) return getch();
regs.x.ax=3;
int86(0x33,& regs,& regs);
xnew=regs.x.cx;
ynew=regs.x.dx;
*bup=regs.x.bx;
*xp=xnew;
*yp=ynew;
return -1;
}

/*下面这个子程序是完成描绘一个按钮*/
void Draw(int x,int y,int sizex,int sizey)/* x, y为左上角坐标sizex,sizey为长和宽*/
{int sizx=sizex-1;
int sizy=sizey-1;
setcolor(15);/*这里最好用白色*/
line(x,y,x+sizx-1,y);
line(x,y+1,x+sizx-2,y+1);
line(x,y,x,y+sizy-1);
line(x+1,y,x+1,y+sizy-2);
setcolor(8);/*这里最好用深灰色*/
line(x+1,y+sizy,x+sizx,y+sizy);
line(x+2,y+sizy-1,x+sizx,y+sizy-1);
line(x+sizx-1,y+1,x+sizx-1,y+sizy);
line(x+sizx,y+2,x+sizx,y+sizy);
setcolor(7);/*这里最好用灰色*/
putpixel(x,y+sizy,3);
putpixel(x+1,y+sizy-1,3);
putpixel(x+sizx,y,3);
putpixel(x+sizx-1,y+1,3);
setfillstyle(1, 7);/*这里最好用灰色,设置填充模式*/
bar(x+2,y+2,x+sizx-2,y+sizy-2);
}

热点内容
服务器怎么设置电脑远程端口 发布:2025-07-03 16:28:46 浏览:72
电信无线路由器官方密码是什么 发布:2025-07-03 16:25:00 浏览:773
空间只能申请访问 发布:2025-07-03 16:23:27 浏览:735
华硕天选2air配置如何选择 发布:2025-07-03 16:10:09 浏览:571
asp搜索源码 发布:2025-07-03 15:49:55 浏览:235
医美大数据库 发布:2025-07-03 15:47:07 浏览:357
c语言将二进制转化为十进制 发布:2025-07-03 15:32:47 浏览:988
c语言帮助文档 发布:2025-07-03 15:22:43 浏览:320
双端口存储器在情况下会发生读写冲突 发布:2025-07-03 15:12:54 浏览:271
快站数据库 发布:2025-07-03 14:45:44 浏览:40