高中编程游戏
❶ c++ 编程游戏是怎么实现的
跟我刚学程序的时候一模一样阿。
1.在WIN32下可执行程序都是.exe的,实际上你在vc里编译 联接运行的也是exe文件。他通常在你工程下的build路径下。编译通常分为debug跟realease,debug版本一般不能独立运行 需要在IDE(也就是VC里运行),realease可以单独运行。
2.首先要记住无论什么语言都只是一个工具,这个工具在没有实际平台的时候没有任何用处。所以纯粹的c++语言在脱离平台的情况下只能制作命令行(console)程序与静态库。要制作一个游戏你需要依赖平台的图形库,声音库等等。比如在VC下最简单的制作游戏,你需要用GDI来绘制图形,当然这些是依赖于平台的也就是windows的。而你所使用的语言,比如c++就是这么以们负责使用图形库,与描述逻辑的工具。如果你有兴趣制作游戏的话,可以看看相关书籍与图形学方面的东西。
❷ 如何学习游戏编程好学吗
学动漫游戏编程是吧,这个行业现在很不错,也算是新新产业吧,我建议你去北京的中关村游戏学院 教学质量不错,你可以到那里去学 详细资料可以到网络上去搜,地址:北京市海淀区海淀南路13号(人民大学西门)亿方大厦11层
地铁十号线乘至苏州街下车。 B口出就到。
编程就是将程序的运行过程和方式用英文编译出来,从“输入”“下一步.....”一直到“输出”.然后转换成能运行的程序,程序就会按编译的内容执行命令。一专心去学的话还是挺好的,现在计算机时代这些是很有用的
❸ 有哪些python写的游戏
python编程游戏有哪些?下面给大家介绍几款由Python开发的游戏:
1. Github上面有个项目Free Python Games,里面集合了不少的Python开发的小游戏,能玩,也适合新手用来练练手,另外 PyGame 这个网站里面里面集合了很多Python开发的小游戏。
2. Python版本的 Flapy Bird 简化版,但是感觉更加难玩了。当然你也可以尝试用Python开发原版的 Flapy Bird,涵盖了颜色图像等:Flappy Block - 1.0
3. 小时候经常在手机上玩的一个游戏,也是一款经典的街机游戏,这款游戏进化之后其实就是一个打乒乓的小游戏,这里同样有一个进化版本,图形设计的更加好看:Ping Pong
相关推荐:《Python基础教程》
4. 以前初高中在学校很无聊的时候跟同桌或者前后桌玩的游戏,你还记得么
5. 同样一款小时候在小霸王上玩的游戏:Junk Jungle
6. 除此之外,一款比较有名基于Pyhton的战争的游戏:Home - TaleWorlds Entertainment
7. 一款看起来非常有趣的3D游戏:Galcon
8. 据说是能与Pyhton搭上边最有名的一款游戏,但好像他的客户端是用的C++,我试了一下很炸裂:EVE Online - One community. Countless journeys
❹ 高中毕业能不能学习电脑编程学习电脑编程都需要知道什么
可以啊,有计算机科学与技术 数字媒体技术方向。
数字媒体技术主要包含场景设计、角色形象设计、游戏程序设计、多媒体后期处理、人机交互技术。主要针对游戏开发和网站美工还有创意设计这类工作设计的专业。
数字媒体技术,此专业最早出现在北京,目前实力较强的大学是南京大学、浙江大学、中国传媒大学、吉林动画学院及浙江科技学院等。
培养目标
本专业培养德智体美全面发展的、面向当今信息化时代的、从事数字媒体开发与数字传播
数字媒体技术的研究内容
的专业人才。毕业生将兼具信息传播理论、数字媒体技术和设计管理能力,可在党政机关、新闻媒体、出版、商贸、教育、信息咨询及IT相关等领域,从事数字媒体开发、音视频数字化、网页设计与网站维护、多媒体设计制作、信息服务及数字媒体管理等工作。
主要课程
摄影摄像技术、艺术设计基础、数字媒体技术概论、程序设计基础、数据库设计、网页设计与制作、交互式多媒体网站开发、数字信号处理、数据结构、算法设计与分析、面向对象程序设计(java)、计算机图形图像处理、人机交互技术、多媒体数据库、动画设计与制作、3D造型、电视节目编导与制作、音视频信息处理、特效制作与非线性编辑等。
专业特色
数字媒体技术专业的教学与出版、新闻、影视等文化媒体及其它数字媒体软件开发和产品设计制作行业的要求相结合,培养面向数字网络时代兼具信息传播理论、数字媒体技术和设计管理能力的复合型人才。
1,计算机系统结构,就是俗话说的硬件。其实不限于硬件。主要搞网络体系结构,网格技术,计算机嵌入式结构,计算机结构,甚至是计算机CPU结构设计。其实这些专业,主要是编程,出来以后,除了搞CPU结构设计的,大多数还是做软件工程师去了。真正的硬件工程师,大多数是学电子的人做的。
2,计算机软件理论。这个主要是搞数据库,操作系统,网络软件,中间件,数据挖掘什么的,出来以后肯定是软件工程师。
3,计算机应用。这个什么都有,肯定是偏软件。还有一些所谓的计算机图象处理,计算机识别,专家系统什么的。
现在很多学校还开始了一个叫 网络安全 的二级学科。
其实我告诉你,我是国内一个重点大学计算机本科出来的,本科的时候,你要是用心学,自学比较勤奋,确实能学到东西,甚至很牛。要是很着混,也能毕业,毕业了什么都不会,对计算机狗屁都不是。大多数人是混,反正我们学校是这样,那些不如我们学校的估计也是。比我们学校好的,我不知道。能好些吧。
要是研究生,好一些,会点具体的技术。但是也看你学校,看你水平。
很大一部分学计算机的人毕业以后,做的是和计算机一点关系都没有的活。或者如上面2个老兄说的,做什么修理电脑,或者卖电脑,网管,替人做网页,这些没有什么技术含量的工作。
但是如果你真的有本事,学到东西,主要是良好的基础知识和娴熟的编程技巧,还有英语,那么不管你是本科还是研究生,华为,中兴,大唐,甚至微软,NEC,通用电气这些极其牛的研究型公司就会要你。那就不光是一个工资的问题了,你得到的是一分前途。
计算机还是前景很好,就业比其他专业都容易。其实我觉得不一定非要上计算机专业,我个人认为,现在最好的专业是微电子,就是所谓的电子科学与技术。就是IC。是IT业最赚钱的行业。我觉得计算机本科学东西,编程机会少,所以软件学不到什么,硬件又接触不上,也没有硬件知识。不如学电子信息工程,极其实用。
好了,差不多就这样。如果你是一个高考的学生,那么我今天打这么多字就算没有白打,我高考的时候就是什么都不明白。哎。无论学校好坏,只要你大学好好学,都能学出来。关键看你自己。专业很重要,比学校重要,专业决定你一生,而学校只是4年的事情。毕业了还可以考研究生。当年我是太在意学校了。最后学校也垃圾,在学校里面呆的也不开心,学习也没有学好。
如果你报志愿,有一个千万不能报,就是生物学科。出来没有工作,即便你是复旦毕业的也一样。
如果你学习特别好,且不说清华,你要是能考上浙江大学,上海交大,西安交大,华中科大这些工科学校,我建议你报电子科学与技术,就是微电子。因为这个专业一旦你日后上研究生,出来了前途无量。
如果你学习一般,为了以后就业考虑,报电子信息工程就不错,或者计算机也可以。好好学,出来了总有一份1500元以上的工作等你。研究所,高新企业什么的,很多地方需要电子类人才。
我们常说的学计算机,主要指的是学计算机专业中的编程技术,
想学好编程技术,首先就是自己要对这个方面感兴趣(不反感就行)。
其次就是找个专业的计算机学校学习,有名师指导,会少走弯路~
良好的学习氛围更能激发你学习的欲望。
当然除了一个好的计算机学校之外,自己的态度也很重要,
自己需要按照以下的要求去做。
1、付出足够的时间和精力。
2、每天上课认真的听。
3、学习的时候不会的东西要及时学会搞懂,不要越积越多,多问老师。
4、每天的学习内容在前一天预习,在自习的时候复习,在睡前自己把知识点再过一遍。
5、在一周的周末,对于一周学习的内容进行一个总结。
其实学好计算机编程并不难,就算你没有基础,没有经验,没有任何概念,也能学好。
高中生可以先从java编程语言开始。
这首先得看你的时间充不充裕了。另外我并不知道楼主你想学习计算机哪方面的。毕竟你只说计算机的话,太广了。如果想学习编程的话可以买本书,再找些视频来学习。编程这一块可以慢慢学,学编程是急不来的。如果是其他方面的话,也可以找些其他的资料没事的时候看看,毕竟高中的学业还是很重要的。
可以自己买些电脑的书,从基础开始学,只要用心学就可以。没有什么太难的,不懂的可以再网上查查。
❺ 游戏编程
做网络游戏 视频教材基本上都是国外的,你能不能看懂英语很重要
我给你的建议:
先学编程(VC或者C) 然后学习图形图象 其中有opengl 和dx 看你的方向如何.其中会有很多算法需要学习,所以数学很重要,这个时候你能做成一些场景了 然后学习脚本编程... 当然网络编程要会哦
很漫长的过程,数学,物理,艺术,都会涉及到哦..
❻ 高中毕业学游戏编程能不能学会北京哪里有学游戏编程的学校
高中毕业学编程可能会有些吃力 不过兴趣是最好的老师。全国都有学校呢,你在北京的话可以考虑我们学校,西三环游戏学院 你网络查一下,
❼ 高中生可以学习编程吗
可以作为兴趣和特长学习,现在高中有一些编程竞赛。首先了解一下热门的程序技术岗位及编程语言,选择一个技术方向,因为编程的复杂性不可能全部精通。编程需要一定的逻辑思维能力和耐力,可以看一下基础视频教程,了解一下,像前端技术(HTML\CSS\Javascript)是比较容易上手的,可以做网页小游戏、Html5页面、小程序等,另外可以学学Python编程,非常容易上手,是比较流行的编程语言,JAVA难度大一点,但是学会了容易找工作,可以学一下JAVA基础了解一下。
程序员有很多技术方位,也有很多不同编程语言,难度各不相同。好不好学需要看个人的理解能力。高中毕业当然可学懂编程,别尔盖茨也是十几岁就开始学习编程的,但是从目前招聘情况看,比如前端开发、JAVA开发等岗位,一般都要求专科及以上学历,可能只有少数公司对学历没有一定限制,当然这也要看技术水平。
如果说学编程是为了找工作,那么学历就是敲门砖,现在公司招人大多数都要求大专以上,如果达不到这个要求,HR可能就不会给你发面试邀请。除非你没有学历但是是技术大牛,还得知名度极高的那种,不过,技术大牛考个文凭也不是难事吧,何必给自己增加这个门槛呢?提升学历方面,成人教育,继续教育,可以考大专。
❽ 求简单短节的小游戏编程
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <bios.h>
#define KEY_ESC 0x01
#define KEY_SPACE 0x39
#define KEY_UP 0x48
#define KEY_LEFT 0x4b
#define KEY_RIGHT 0x4d
#define KEY_DOWN 0x50
/*1石头,2砖块,3水,5老家,8玩家,9敌人*/
int map[20][20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,2,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,2,0,0,2,0,1,1,1,1,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,2,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,1,
1,0,1,1,1,1,3,3,3,3,0,0,0,0,0,0,0,2,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,0,1,
1,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,3,3,3,1,1,1,1,1,1,1,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
1,0,2,2,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,
1,0,2,2,0,0,0,0,2,2,2,0,0,0,2,2,0,0,0,1,
1,0,0,0,0,0,0,8,2,5,2,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
struct f
{
int x;
int y;
int direction;
};
struct play
{
int x;/*行坐标*/
int y;/*列坐标*/
int direction;/*方向*/
struct f fire[5];/*5颗子弹*/
int score;/*分数*/
}Playone;
struct a
{
int x;
int y;
int color;
int direction;
int directiontwo;/*用来判断走的路是否往返*/
int fireplay;/*是否攻击的变量,随机生成*/
struct f fire;
}amy[5];/*敌人的结构体,其实可以添加不同的颜色来表示不同种类的坦克*/
char key_state[128],key_pressed[128];
void Init();/*图象驱动开始*/
void End();/*图象驱动结束*/
void DrawMap();/*画地图*/
void DrawWater(int x,int y);/*画水*/
void DrawBrick(int x,int y);/*画砖*/
void DrawTone(int x,int y);/*画石头*/
void DrawHome(int x,int y);/*画老家*/
void DrawBlack(int x,int y);/*去除内容*/
void DrawPlay(int x,int y);/*画玩家*/
void DrawAmy(int x,int y,int i);/*画敌人*/
void Score();/*输出分数*/
void GamePlay();/*玩游戏过程*/
void GameOver();/*游戏失败*/
void TimeDelay(unsigned long microsec); /*延时函数 传入微秒数*/
int GetKey(int ScanCode);/*这里开始都是按键函数*/
void interrupt far (*OldInt9Handler)();
void far interrupt NewInt9();
void InstallKeyboard();
void ShutDownKeyboard();
void main(void)
{
Init();
DrawMap();
GamePlay();
End();
}
void TimeDelay(unsigned long microsec) /*延时函数 传入微秒数*/
{
union REGS r;
r.h.ah=0x86;
r.x.cx=microsec>>16;
r.x.dx=microsec;
int86(0x15,&r,&r);
}
void Init()/*图象驱动开始*/
{int gd=DETECT,gm;
initgraph(&gd,&gm,"d:\\tc\\tc");
cleardevice();
InstallKeyboard();
}
void End()/*图象驱动结束*/
{
ShutDownKeyboard();
closegraph();
}
void DrawTone(int x,int y)/*画石头*/
{
setfillstyle(SOLID_FILL,7);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawWater(int x,int y)/*画水*/
{
setfillstyle(SOLID_FILL,BLUE);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawBrick(int x,int y)/*画砖*/
{
setfillstyle(SOLID_FILL,6);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
setcolor(15);
line(100+x*20-9,50+y*20-4,100+x*20+9,50+y*20-4);
line(100+x*20-9,50+y*20+4,100+x*20+9,50+y*20+4);
line(100+x*20-4,50+y*20-9,100+x*20-4,50+y*20+9);
line(100+x*20+4,50+y*20-9,100+x*20+4,50+y*20+9);
}
void DrawHome(int x,int y)/*画老家*/
{
setcolor(0);
setfillstyle(SOLID_FILL,GREEN);
fillellipse(100+x*20,50+y*20,9,9);
}
void DrawBlack(int x,int y)/*去除内容*/
{
setcolor(0);
setfillstyle(SOLID_FILL,0);
bar(100+x*20-9,50+y*20-9,100+x*20+9,50+y*20+9);
}
void DrawPlay(int x,int y)/*画玩家*/
{
setcolor(4);/*玩家为红色*/
circle(100+x*20,50+y*20,7);
switch(Playone.direction)/*判断玩家方向*/
{
case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
}
}
void DrawAmy(int x,int y,int i)/*画敌人*/
{
if(amy.color==12)
setcolor(12);
else if(amy.color==13)
setcolor(13);
else/*这里是判断三种颜色的坦克*/
setcolor(14);
circle(100+x*20,50+y*20,7);
switch(amy.direction)/*判断玩家方向*/
{
case 1:line(100+x*20,50+y*20,100+x*20,50+y*20-9);break;/*上*/
case 2:line(100+x*20,50+y*20,100+x*20+9,50+y*20);break;/*右*/
case 3:line(100+x*20,50+y*20,100+x*20,50+y*20+9);break;/*下*/
case 4:line(100+x*20,50+y*20,100+x*20-9,50+y*20);break;/*左*/
}
}
void Score()/*输出分数*/
{
char s[10];
Playone.score+=10;
sprintf(s,"%d",Playone.score);
setfillstyle(SOLID_FILL,0);
bar(550,100,640,130);
settextstyle(0,0,2);
setcolor(YELLOW);
outtextxy(550,115,s);
}
void DrawMap()/*画地图*/
{int i,j,k;
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
if(map[j]==1)
DrawTone(j,i);
else if(map[j]==2)
DrawBrick(j,i);
else if(map[j]==3)
DrawWater(j,i);
else if(map[j]==5)
DrawHome(j,i);
else if(map[j]==8)
{
Playone.x=i;
Playone.y=j;
Playone.direction=1;
DrawPlay(j,i);
for(k=0;k<5;k++)
Playone.fire[k].direction=-1;/*5颗子弹的方向都为-1,表示不存在*/
}
else if(map[j]==9)
{
amy[0].x=1;amy[0].y=1;amy[0].direction=amy[0].directiontwo=3;/*第一个敌人*/
amy[0].color=12;
DrawAmy(j,i,0);
}
}
for(i=1;i<5;i++)/*敌人都没出现*/
amy.direction=amy.fire.direction=-1;
outtextxy(210,450,"2003.10.1 milo_zy");
settextstyle(0,0,2);/*首次输出得分*/
setcolor(9);
outtextxy(525,80,"Score");
setcolor(YELLOW);
outtextxy(550,115,"0");
}
void far interrupt NewInt9(void)
{
unsigned char ScanCode,temp;
ScanCode=inportb(0x60);
temp=inportb(0x61);
outportb(0x61,temp | 0x80);
outportb(0x61,temp & 0x7f);
if(ScanCode&0x80)
{
ScanCode&=0x7f;
key_state[ScanCode]=0;
}
else
{
key_state[ScanCode]=1;
key_pressed[ScanCode]=1;
}
outportb(0x20,0x20);
}
void InstallKeyboard(void)
{
int i;
for(i=0;i<128;i++)
key_state=key_pressed=0;
OldInt9Handler=getvect(9); /*中断向量值*/
setvect(9,NewInt9); /*中断程序NewInt9地址存入指定的中断向量表中INT 09H*/
}
void ShutDownKeyboard(void)
{
setvect(9,OldInt9Handler);
}
int GetKey(int ScanCode)
{
int res;
res=key_state[ScanCode]|key_pressed[ScanCode];
key_pressed[ScanCode]=0;
return res;
}
void GameOver()/*游戏失败*/
{
setcolor(0);
setfillstyle(SOLID_FILL,0);/*把老家给去除*/
fillellipse(100+9*20,50+18*20,9,9);
nosound();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(150,5,"GAME OVER");
while(1)
{
if(GetKey(KEY_ESC))
break;
}
}
void GamePlay()/*玩游戏的过程*/
{
int i,j,lose=0;/*lose是1的时候表示失败*/
int t=0;
randomize();
while(1)
{
for(i=0;i<5;i++)/*画敌人的子弹*/
{
if(amy.fire.direction>0)
putpixel(100+amy.fire.y*20,50+amy.fire.x*20,11);
}
for(i=0;i<=4;i++)/*画玩家子弹*/
{
if(Playone.fire.direction>0)/*大于0表示玩家子弹存在*/
putpixel(100+Playone.fire.y*20,50+Playone.fire.x*20,11);
}
TimeDelay(500000);/*关键的时间改动*/
for(i=0;i<5;i++)/*去敌人的子弹*/
{
if(amy.fire.direction>0)
putpixel(100+amy.fire.y*20,50+amy.fire.x*20,0);
}
for(i=0;i<=4;i++)/*去玩家除子弹*/
{
if(Playone.fire.direction>0)
putpixel(100+Playone.fire.y*20,50+Playone.fire.x*20,0);
}
for(i=0;i<=4;i++)/*玩家子弹位置的变化*/
{
if(Playone.fire.direction<0)
continue;
if(Playone.fire.direction==1)
{Playone.fire.x--;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==2)
{Playone.fire.y++;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==3)
{Playone.fire.x++;Playone.fire.y=Playone.fire.y;}
else if(Playone.fire.direction==4)
{Playone.fire.y--;Playone.fire.y=Playone.fire.y;}
/*打到石头或者砖头的情况下减少子弹*/
if(map[Playone.fire.x][Playone.fire.y]==1)/*打到石头*/
Playone.fire.direction=-1;/*子弹消失*/
if(map[Playone.fire.x][Playone.fire.y]==2)/*打到砖头*/
{
Playone.fire.direction=-1;
DrawBlack(Playone.fire.y,Playone.fire.x);/*砖头打掉*/
map[Playone.fire.x][Playone.fire.y]=0;/*被打掉的地方变成可走的地方*/
}
if(map[Playone.fire.x][Playone.fire.y]==5)/*自己打到老家*/
{lose=1;break;}
for(j=0;j<5;j++)
{
if(amy[j].direction<0)/*不存在的不判断*/
continue;
if(amy[j].x==Playone.fire.x&&amy[j].y==Playone.fire.y)/*打中敌人*/
{
Playone.fire.direction=-1;
DrawBlack(Playone.fire.y,Playone.fire.x);
map[Playone.fire.x][Playone.fire.y]=0;/*被打掉的地方变成可走的地方*/
amy[j].fire.direction=amy[j].direction=-1;/*这个敌人消失*/
Score();/*输出得分*/
}
}
}
for(i=0;i<5;i++)/*敌人子弹位置的变化*/
{
if(amy.direction<0||amy.fire.direction<0)
continue;
if(amy.fire.direction==1)
{amy.fire.x--;amy.fire.y=amy.fire.y;}
else if(amy.fire.direction==2)
{amy.fire.y++;amy.fire.x=amy.fire.x;}
else if(amy.fire.direction==3)
{amy.fire.x++;amy.fire.y=amy.fire.y;}
else if(amy.fire.direction==4)
{amy.fire.y--;amy.fire.x=amy.fire.x;}
/*打到石头或者砖头的情况下减少子弹*/
if(map[amy.fire.x][amy.fire.y]==1)/*打到石头*/
amy.fire.direction=-1;/*子弹消失*/
if(map[amy.fire.x][amy.fire.y]==2)/*打到砖头*/
{
amy.fire.direction=-1;
DrawBlack(amy.fire.y,amy.fire.x);/*砖头打掉*/
map[amy.fire.x][amy.fire.y]=0;/*被打掉的地方变成可走的地方*/
}
if(map[amy.fire.x][amy.fire.y]==5)/*敌人打到老家*/
{lose=1;break;}
if(amy.fire.x==Playone.x&&amy.fire.y==Playone.y)/*打中玩家*/
{
for(j=0;j<5;j++)
Playone.fire[j].direction=-1;/*玩家子弹都消失*/
amy.fire.direction=-1;
DrawBlack(amy.fire.y,amy.fire.x);
map[amy.fire.x][amy.fire.y]=0;/*被打掉的地方变成可走的地方*/
lose=1;break;/*好人被打掉后就失败*/
}
}
nosound();
for(i=0;i<5;i++)/*敌人方向随机的改变*/
{
if(amy.direction<0)
continue;
while(1)
{
amy.directiontwo=random(4)+1;
if(amy.direction==1&&amy.directiontwo==3)
continue;
if(amy.direction==3&&amy.directiontwo==1)
continue;
if(amy.direction==2&&amy.directiontwo==4)
continue;
if(amy.direction==4&&amy.directiontwo==2)/*这里4个if是判断有没有往返走*/
continue;
if(amy.directiontwo==3&&(map[amy.x+1][amy.y]==3||map[amy.x+1][amy.y]==1||map[amy.x+1][amy.y]==2))
continue;
if(amy.directiontwo==1&&(map[amy.x-1][amy.y]==3||map[amy.x-1][amy.y]==1||map[amy.x-1][amy.y]==2))
continue;
if(amy.directiontwo==2&&(map[amy.x][amy.y+1]==3||map[amy.x][amy.y+1]==1||map[amy.x][amy.y+1]==2))
continue;
if(amy.directiontwo==4&&(map[amy.x][amy.y-1]==3||map[amy.x][amy.y-1]==1||map[amy.x][amy.y-1]==2))
continue;/*以上4个是是否碰到了墙壁或者水什么的*/
DrawBlack(amy.y,amy.x);/*把原来的地方擦掉*/
amy.direction=amy.directiontwo;
if(amy.direction==1)
{amy.x--;amy.y=amy.y;}
if(amy.direction==3)
{amy.x++;amy.y=amy.y;}
if(amy.direction==2)
{amy.y++;amy.x=amy.x;}
if(amy.direction==4)
{amy.y--;amy.x=amy.x;}
if(amy.x==Playone.x&&amy.y==Playone.y)/*相撞*/
lose=1;
if(map[amy.x][amy.y]==5)/*敌人撞到老家*/
lose=1;
DrawAmy(amy.y,amy.x,i);/*画敌人*/
if(amy.fire.direction<0)
amy.fireplay=random(4);
if(amy.fireplay==1&&amy.fire.direction<0)/*发射*/
{
amy.fire.direction=amy.direction;/*子弹方向与敌人方向一致*/
amy.fire.x=amy.x;
amy.fire.y=amy.y;
}
break;
}
}
if(lose)/*因为失败而跳出循环显示失败*/
{GameOver();break;}
if(GetKey(KEY_ESC))
break;
if(GetKey(KEY_UP))/*往上*/
{
if(Playone.direction==1&&map[Playone.x-1][Playone.y]!=1&&map[Playone.x-1][Playone.y]!=2)
{
if(map[Playone.x-1][Playone.y]==3)
continue;
DrawBlack(Playone.y,Playone.x);/*这个if是移动,前提是方向与按下的到向一致*/
Playone.x--;
Playone.direction=1;
DrawPlay(Playone.y,Playone.x);
}
else/*只调整炮头方向*/
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=1;
DrawPlay(Playone.y,Playone.x);
}
}
else if(GetKey(KEY_DOWN))/*往下*/
{
if(Playone.direction==3&&map[Playone.x+1][Playone.y]!=1&&map[Playone.x+1][Playone.y]!=2)
{
if(map[Playone.x+1][Playone.y]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.x++;
Playone.direction=3;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=3;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_RIGHT))/*往右*/
{
if(Playone.direction==2&&map[Playone.x][Playone.y+1]!=1&&map[Playone.x][Playone.y+1]!=2)
{
if(map[Playone.x][Playone.y+1]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.y++;
Playone.direction=2;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=2;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_LEFT))/*往左*/
{
if(Playone.direction==4&&map[Playone.x][Playone.y-1]!=1&&map[Playone.x][Playone.y-1]!=2)
{
if(map[Playone.x][Playone.y-1]==3)
continue;
DrawBlack(Playone.y,Playone.x);
Playone.y--;
Playone.direction=4;
DrawPlay(Playone.y,Playone.x);
}
else
{
DrawBlack(Playone.y,Playone.x);
Playone.direction=4;
DrawPlay(Playone.y,Playone.x);
}
}
if(GetKey(KEY_SPACE))/*发射子弹*/
{
for(i=0;i<5;i++)/*用循环来找是否有子弹可以用*/
if(Playone.fire.direction<0)
{
sound(300);
Playone.fire.direction=Playone.direction;/*子弹方向与坦克方向一致*/
Playone.fire.x=Playone.x;
Playone.fire.y=Playone.y;
break;/*找到后就跳出循环*/
}
}
if(map[Playone.x][Playone.y]==5)/*玩家自己撞到老家*/
lose=1;
for(i=0;i<5;i++)/*判断是否因自己控制撞到敌人*/
{
if(amy.direction<0)
continue;
if(amy.x==Playone.x&&amy.y==Playone.y)/*相撞*/
lose=1;
}
if(lose)/*因为失败而跳出循环显示失败*/
{GameOver();break;}
t++;/*加到一定的程序就出现新的敌人*/
if(t==30) /*到了增加敌人的时候*/
{t=0;
for(i=0;i<5;i++)
if(amy.direction<0)
{
amy.direction=amy.directiontwo=3;
amy.x=1;
amy.y=random(3);/*方向随机*/
if(amy.y==0)
amy.y=1;
else if(amy.y==1)
amy.y=9;
else/*这里和上面的两个判断是判断敌人的初始位置*/
amy.y=18;
amy.color=random(3)+12;/*颜色随机*/
DrawAmy(amy.y,amy.x,i);
break;/*找到一个后就出循环*/
}
}
}
}
❾ 我是一个高中生,我想上火星时代学游戏设计与编程,听说学费很贵,生
你可以先去【绘学霸】网站找“游戏设计/游戏制作”板块的【免费】视频教程-【点击进入】完整入门到精通视频教程列表: www.huixueba.net/web/AppWebClient/AllCourseAndResourcePage?type=1&tagid=307&zdhhr-11y13r-363935804793515932
想要系统的学习可以考虑报一个网络直播课,推荐CGWANG的网络课。老师讲得细,上完还可以回看,还有同类型录播课可以免费学(赠送终身VIP)。
自制能力相对较弱的话,建议还是去好点的培训机构,实力和规模在国内排名前几的大机构,推荐行业龙头:王氏教育。
王氏教育全国直营校区面授课程试听【复制后面链接在浏览器也可打开】: www.huixueba.com.cn/school/3dmodel?type=2&zdhhr-11y13r-363935804793515932
在“游戏设计/游戏制作”领域的培训机构里,【王氏教育】是国内的老大,且没有加盟分校,都是总部直营的连锁校区。跟很多其它同类型大机构不一样的是:王氏教育每个校区都是实体面授,老师是手把手教,而且有专门的班主任从早盯到晚,爆肝式的学习模式,提升会很快,特别适合基础差的学生。
大家可以先把【绘学霸】APP下载到自己手机,方便碎片时间学习——绘学霸APP下载: www.huixueba.com.cn/Scripts/download.html