导航:首页 > 软件问题 > c语言怎么开发游戏软件

c语言怎么开发游戏软件

发布时间:2022-05-14 09:08:14

‘壹’ 如何用C语言制作游戏

你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-1818074554951406228

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-1818074554951406228

在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

‘贰’ C语言做一个小游戏程序,按y或n是否进行游戏,如果进行游戏回到游戏开头怎么写

摘要 做一个判断就可以了。

‘叁’ 学了电脑二级C语言,能开发出软件(或游戏)么C语言主要用来做什么的

你可以先去【绘学霸】网站找“游戏特效/unity3D”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=305,306&zdhhr-11y17r-22460983

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】:
www.cgwang.com/course/gecoursemobilecheck/?zdhhr-11y17r-22460983

在“游戏特效/unity3D”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

‘肆’ 怎么用编程开发个游戏

第一就是游戏逻辑,也就是与平台无关的游戏逻辑的开发。

第二部分是游戏引擎,大部分会用到一些引擎的工作流、一些各种系统封装好的高层的API。

但是小游戏有一个重要的一个限制是禁止动态执行代码,开发者必须先提交审核,在审核通过后才可以上架给普通用户。另外,小游戏包括引擎的代码量比较大,所以限制大小比小程序要大,首包限制大小为4M。

‘伍’ C语言制作游戏、视频软件教程有吗

你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y04r-1518389039042221740

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y04r-1518389039042221740

在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

‘陆’ 如何用c语言编写一些小软件或小游戏,要傻瓜式的。

你是不是想做图形界面。。。图形的话可以考虑windows下的graphics.h和linux下的ncurses.h库,它们支持字符下的图形!但是效果不是很好。如果非要做的漂亮一些的话可以使用gtk+或者qt...不建议使用mfc

‘柒’ 如何用C语言做游戏开发

你错了~
理论上说,其他语言做到的c语言一定能够做到~而且效率高得多,只不过其他语言一句话就能做到的,C语言可能要上百行代码~
c语言时代,一个大软件
动辄几十万行,几百万行代码,其中出一个错误,是绝对令人抓狂的,所以有c++,java,。net
等应运而生~
linux
系统是纯c语言写的哦~
也能有vista
那样美的图形用户界面~
发明c语言的人真的很了不起~
从汇编的角度看C语言是垃圾,从C语言的角度看其他语言,同样是垃圾~
其中也包括了怀旧的
MAX
3
界面(3DSMaxR3.cui)。当然如果你有足够的时间和耐心,也可以自己设计...

‘捌’ 有C语言基础想开发游戏,还需要学哪些

你可以先去【绘学霸】网站找“游戏特效/unity3D”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=305,306&zdhhr-11y17r-694997618062854084

想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。

自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】:
www.cgwang.com/course/gecoursemobilecheck/?zdhhr-11y17r-694997618062854084

在“游戏特效/unity3D”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。

大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html

‘玖’ C语言设计游戏是用什么软件的!

一般用dev C++的图形模式 就可以开发C环境下的小型游戏如果是大型的3D 建议用Java去写比如拿 贪吃蛇做一个例子 #define N 200/*定义全局常量*/
#define m 25
#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define Esc 0x011b
int i,j,key,k;
struct Food/*构造食物结构体*/
{
int x;
int y;
int yes;
}food;
struct Goods/*构造宝贝结构体*/
{
int x;
int y;
int yes;
}goods;
struct Block/*构造障碍物结构体*/
{
int x[m];
int y[m];
int yes;
}block;
struct Snake{/*构造蛇结构体*/
int x[N];
int y[N];
int node;
int direction;
int life;
}snake;
struct Game/*构建游戏级别参数体*/
{
int score;
int level;
int speed;
}game;
/*定义函数*/
void init(void);/*定义图形驱动*/
void close(void);/*定义关闭函数*/
void drawk(void);/*定义界面函数*/
void gameover(void);/*定义游戏结束函数*/
void gameplay(void);/*定义游戏主函数*/
void prscore(void);/*定义得分函数*/

void main(void){/*主函数体,调用以下四个函数*/
init();
setbkcolor(7);
drawk();
gameplay();
close();
}

void init(void){/*构建图形驱动函数*/
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
cleardevice();
}

void drawk(void){/*构建游戏界面函数*/
/*setbkcolor(LIGHTGREEN);*/
char str3[50];
setfillstyle(SOLID_FILL,BLUE);/*条型边框,显示版本信息*/
bar3d(48,9,610,38,1,45);
setcolor(YELLOW);/*版本信息*/
sprintf(str3,"Version:5.01,Powerwing Studio");
outtextxy(330,20,str3);
setfillstyle(LTSLASH_FILL,YELLOW);/*设定墙边的填充形式*/
bar3d(48,48,58,462,0,0);/*设定墙边*/
bar3d(48,39,611,48,0,0);
bar3d(48,452,611,462,0,0);
bar3d(602,39,611,462,0,0);

}

void gameplay(void){/*构建游戏主函数*/
/*初始化游戏角色*/
randomize();/*随机数发生器*/
goods.yes=1;
block.yes=1;
food.yes=1;/*场景中需建立新的食物*/
snake.life=1;/*初始化蛇生命值*/
snake.direction=1;/*蛇起始的移动方向定义为向右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标初始化*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*蛇初始化节数,共两节只有蛇头*/
/*初始化障碍物的数组*/
block.x[0]=170;block.y[0]=270;/*level 1*/
block.x[1]=410;block.y[1]=310;
block.x[2]=300;block.y[2]=200;
block.x[3]=320;block.y[3]=420;
block.x[4]=250;block.y[4]=350;
block.x[5]=220;block.y[5]=320;/*level 2*/
block.x[6]=310;block.y[6]=410;
block.x[7]=400;block.y[7]=500;
block.x[8]=230;block.y[8]=230;
block.x[9]=280;block.y[9]=280;
block.x[10]=170;block.y[10]=280;/*level 3*/
block.x[11]=420;block.y[11]=310;
block.x[12]=310;block.y[12]=200;
block.x[13]=320;block.y[13]=400;
block.x[14]=250;block.y[14]=260;/*level 4*/
block.x[15]=220;block.y[15]=330;
block.x[16]=130;block.y[16]=410;
block.x[17]=310;block.y[17]=510;
block.x[18]=230;block.y[18]=340;
block.x[19]=280;block.y[19]=380;
block.x[20]=270;block.y[20]=170;/*level 5*/
block.x[21]=410;block.y[21]=450;
block.x[22]=190;block.y[22]=200;
block.x[23]=150;block.y[23]=320;
block.x[24]=270;block.y[24]=350;
block.x[25]=340;block.y[25]=320;

game.score=0;
game.speed=50000;
game.level=1;
prscore();/*得分初始化*/
while(1){/*判断为真可以按Esc退出循环结束游戏*/
while(!kbhit()){/*无按键按下时,蛇自己移动身体*/

if(game.level==1){/*画出障碍物*/
for(j=0;j<5;j++){
setcolor(5);/**/
rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);
block.yes=0;
}
}
if(game.level==2){/*画出障碍物*/
for(j=0;j<9;j++){
setcolor(5);/**/
rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);
block.yes=0;
}
}
if(game.level==3){/*画出障碍物*/
for(j=0;j<14;j++){
setcolor(5);/**/
rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);
block.yes=0;
}
}
if(game.level==4){/*画出障碍物*/
for(j=0;j<19;j++){
setcolor(5);/**/
rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);
block.yes=0;
}
}
if(game.level==5){/*画出障碍物*/
for(j=0;j<25;j++){
setcolor(5);/**/
rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);
block.yes=0;
}
}
if(food.yes==1){/*需要画出新的食物*/
food.x=rand()%400+60;/*获得间隔60的随机数食物坐标值*/
food.y=rand()%350+60;
while(food.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*新的食物已经产生*/
}

if(goods.yes==1){/*需要画出新的宝物*/
goods.x=rand()%380+60;/*获得间隔60的随机数宝贝坐标值*/
goods.y=rand()%320+80;
while(goods.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/
goods.x++;
while(goods.y%10!=0)
goods.y++;
goods.yes=0;/*新的宝贝已经产生*/
}
if(goods.yes==0){/*新宝贝产生,应显示出来*/

setcolor(0);/*擦除*/
rectangle(goods.x,goods.y,goods.x+10,goods.y-10);
delay(50);/*延时*/
setcolor(YELLOW);
goods.x=goods.x+random(10)-random(20);/*随机数增量*/
goods.y=goods.y+random(10)-random(20);
while(goods.x%10!=0)/*判断变化后的坐标值是否满足被10整除,否,自动增加*/
goods.x++;
while(goods.y%10!=0)
goods.y++;
rectangle(goods.x,goods.y,goods.x+10,goods.y-10);/*重画出宝贝*/
if(goods.x<65||goods.x>585||goods.y<65|goods.y>445){/*判定宝贝是否越界*/
setcolor(0);/*擦除越界的宝贝*/
rectangle(goods.x,goods.y,goods.x+10,goods.y-10);
goods.yes=1;/*越界后重新生成宝贝*/
}

}

if(food.yes==0){/*新食物产生,应显示出来*/
setcolor(GREEN);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i--){/*取得需重画的蛇的节数*/
snake.x[i]=snake.x[i-1];/*最后一节的坐标值等于倒数第二节的坐标值*/
snake.y[i]=snake.y[i-1];
}
switch(snake.direction){/*判断蛇头的移动方向*/
case 1:snake.x[0]+=10;break;/*向右*/
case 2:snake.x[0]-=10;break;/*向左*/
case 3:snake.y[0]-=10;break;/*向上*/
case 4:snake.y[0]+=10;break;/*向下*/
}
for(i=3;i<snake.node;i++){/*超过4节后,判断蛇自身碰撞*/
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){/*即自身的任一节坐标值与蛇头坐标相等*/
for(i=1;i<snake.node-1;i++){/*擦除自己碰撞后位置蛇的身子*/
setcolor(0);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
snake.life-=1;/*生命值减少一*/
snake.node-=5;
prscore();/*输出结果*/
if(snake.life==0){/*判断生命值是否为0*/
gameover();/*游戏结束*/
break;/*退出内循环*/
}
}
}
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){/*判断蛇是否与墙体碰撞*/
for(i=1;i<snake.node-1;i++){/*擦除撞墙后位置蛇的身子*/
setcolor(0);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/
snake.x[1]=110;snake.y[1]=100;
snake.direction=1;/*蛇起始的移动方向定义为向右*/
snake.life-=1;/*生命值减少一*/
snake.node-=5;/*相应节数减少5节*/
prscore();
if(snake.life==0){
gameover();
break;
}
}
/*判断蛇与障碍物碰撞,食物是否与障碍物重叠*/
if(game.level==1){/*判断级别,并设定相应的障碍物数量,即数组个数*/
k=5;
}
else if(game.level==2){
k=9;
}
else if(game.level==3){
k=14;
}
else if(game.level==4){
k=19;
}
else if(game.level==5){
k=25;
}
for(j=0;j<k;j++){
if(snake.x[0]==block.x[j]&&snake.y[0]==block.y[j]){
for(i=1;i<snake.node-1;i++){/*擦除撞墙后位置蛇的身子*/
setcolor(0);
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);
}
if(food.x==block.x[j]&&block.y[j]==food.y){/*防止障碍物与食物重叠*/
setcolor(0);/*设定食物的颜色为背景色,即擦除*/
rectangle(food.x,food.y,food.x+10,food.y-10);
food.yes=1;/*食物重新生成*/
}
snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/
snake.x[1]=110;snake.y[1]=100;
snake.direction=1;/*蛇起始的移动方向定义为向右*/
snake.life-=1;
snake.node-=5;
prscore();
if(snake.life==0){
gameover();
break;
}
}
}

if(snake.x[0]==food.x&&snake.y[0]==food.y){/*判断蛇是否吃到食物*/

setcolor(0);/*设定食物的颜色为背景色,即擦除*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;/*新的一节放在不可见的位置*/
snake.y[snake.node]=-20;
snake.node++;/*蛇身增加一节*/
if(snake.node>2){/*当节数每增加5节生命值增加一*/
snake.life=1+fabs((snake.node-2)/5);
}
food.yes=1;/*场景需要增加食物*/
game.score+=20;/*加分*/
prscore();/*输出得分*/
}
if(snake.x[0]==goods.x&&snake.y[0]==goods.y){/*判定蛇是否得到宝贝*/
setcolor(0);/*设定宝贝的颜色为背景色,即擦除*/
rectangle(goods.x,goods.y,goods.x+10,goods.y-10);
goods.yes=1;/*场景需要增加新的宝贝*/
game.score+=100;/*得到宝贝后加100分*/
prscore();/*输出得分*/
}

if(game.score<500){/*设定游戏速度和难度级别*/
game.speed=50000;
game.level=1;}
else if(game.score>=500&&game.score<1000){
game.level=2;
game.speed=40000;}
else if(game.score>=1000&&game.score<1500){
game.level=3;
game.speed=30000;}
else if(game.score>=1500&&game.score<2000){
game.level=4;
game.speed=20000; }
else if(game.score>=5000){
game.level=5;
game.speed=10000;}

setcolor(4);/*画出移动的蛇*/
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);
delay(game.speed);
setcolor(0);/*用背景色擦去最后一节*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(! kbhit) */

if(snake.life==0)/*判断循环结束条件:蛇死或者检测到Esc按键*/
break;

key=bioskey(0);/*判断按键*/
if(key==Esc)
break;
/*判断蛇头接收到的用户按键响应的移动方向*/
else if(key==UP&&snake.direction!=4)
snake.direction=3;
else if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else if(key==DOWN&&snake.direction!=3)
snake.direction=4;

}/*endwhile(1)*/
}
void gameover(void){/*游戏结束处理*/
cleardevice();/*清屏*/
prscore();/*输出得分*/
setcolor(RED);/*打印出“Game Over”字样*/
settextstyle(0,0,4);
outtextxy(200,200,"Game Over!");
getch();
}

void prscore(void){/*定义分数输出函数*/
char str1[10];
char str2[10];
char str4[20];
setfillstyle(SOLID_FILL,BLUE);/*用于清除旧的显示信息*/
bar(49,10,320,37);
setcolor(WHITE);
settextstyle(0,0,1);
sprintf(str1,"score:%d",game.score);/*输出得分*/
outtextxy(55,20,str1);
sprintf(str2,"level:%d",game.level);/*输出级别*/
outtextxy(250,20,str2);
sprintf(str4,"life:%d",snake.life);/*输出级别*/
outtextxy(150,20,str4);
}

void close(void){/*定义关闭函数,退出图形模式*/
getch();
closegraph();
}

‘拾’ 关于c语言编写游戏或软件~

c可以调用windows api实现很多功能,相当强大,但写起来代码量还是很多的。可以去看看windows程序设计,不过我建议你先找本书入个门。比如精通Windows API——函数、接口、编程实例,我觉得作为入门的书籍还是不错的。

阅读全文

与c语言怎么开发游戏软件相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1158
无痕迹消除图片软件 浏览:722
免费小票软件 浏览:956
华为在哪里设置软件停止运行 浏览:962
用电脑键盘调节声音大小 浏览:1261
自动刷软件赚钱 浏览:1263
古装连续剧免费版 浏览:1416
工免费漫画 浏览:1149
手机软件专门储存文件 浏览:1510
uos如何用命令安装软件 浏览:1317
有线耳机插电脑麦克风 浏览:649
侏罗纪世界3在线观看完整免费 浏览:995
单个软件怎么设置名称 浏览:721
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1386
明白之后如何免费获得无人机 浏览:833
如何解禁软件菜单 浏览:855
副路由器连接电脑视频 浏览:1352
内置wifi电视如何装软件 浏览:1108
手机换零免费雪碧 浏览:1589
国行苹果如何下载美版软件 浏览:1216