设计游戏,首先就要设计界面。首先看一下偶设计的一个界面。界面分为左边的游戏区与右边的控制区。游戏区包含“得分信息”和贪吃蛇的游戏区,右边控制区有“开始”“暂停”“停止”按钮,等级选择单选框以及游戏排行榜。
2
所以大家需要定义swing组件,并在类初始化时初始化这些组件,添加组件。因为后面设计游戏的时候,大家要确切知道游戏区的大小,所以这里设置游戏区固定大小值。本来想用布局来更好的管理,但作者对布局也掌握不够,所以就先设置固定大小吧。
3
定义大家的游戏。贪吃蛇游戏其实就是包含很多细小网格,然后蛇在网格中移动。蛇由一连串的网格组成,为了视觉效果,蛇身用蓝色标记,食物用红色标记,背景白色。如第一张图片所示。所以,大家需要定义二维数组,保存网格信息,保存蛇身和食物的位置信息等。初始化时,还需要添加键盘事件控制上下左右移动。
4
食物的位置信息是二维的,所以偶简单定义了一个类用来保存二维信息。
5
接着就是实现游戏的功能了。开始,暂停,停止按钮添加事件控制游戏开始。等级按钮定义游戏难度等。
6
开始游戏后,大家定义一个定时器。蛇身按照指定的方向移动,方向是通过初始化时添加的键盘事件,键盘的上下左右按钮来控制。蛇身是连续的位置信息,保存到队列中,所以蛇身的移动就是队首增加一个位置,队尾减少位置,然后重新绘画游戏区就可以了。
在蛇身移动时进一步做吃掉食物、撞墙、撞到自己的处理。这是游戏的主要逻辑。
7
最后,游戏结束大家弹出一个对话框提示是否保存游戏得分。大家制作了排行榜信息,只保留前10名的游戏得分。首先定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。
8
游戏结束时保存得分信息,看是否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。
通过保存和读取排行榜信息,大家也熟悉一下文件读取操作,还有集合、排序算法的功能。
9
最后编译运行,结果良好。经验也只能写一个大概的设计,贪吃蛇游戏功能实际是比较简单的,主要就是界面的布局,swing编程等。如果有任何疑问,欢迎大家留言。
总之,没有一技之长或者经过训练,还是不要有这个想法了,不切合实际。
并且,游戏做好之后,还需要经过一系列的游戏认证,审核。
在小范围内可以传播,但如果没有通过的话,就不可以在大范围内传播。
如果偶的回答对你有帮助,点个赞再走呗~
它与编程语言是什么关系?
首先什么是游戏引擎?以下就是游戏引擎的解释(图片来自百科)那么简单点讲到底什么是游戏引擎呢?偶先举个例子,一家游戏公司要做十个游戏,这十个游戏有40%的代码部分是一样的( 场景切换,声音效果解析,键盘控制角色,场景的创建等等),60%的代码部分是不一样的。游戏公司有两种选择解决方法:
第一种 这十个游戏都是从头开始写不管是40%一样的部分还是60%的不一样的部分每个游戏都要写一遍。
第二种 首先写游戏之前把这个十个游戏中把那个40%的一样的代码部分写成若干个类库,组件。开始写游戏的时候只写那个不一样的60%的代码部分,需要些那40% 一样部分的时候就直接调用先前写好的类库,组件,避免重复写一样的代码浪费时间,浪费精力,浪费资金。
游戏引擎就是先前写好的40%的代码部分,任何游戏有可能用到的代码部分写成独立的工具,然后把好几个像这样的工具集合在一个软件上 这就是游戏引擎。
比较流行的游戏引擎有,虚幻4,unity3D,cocos2dx…等等。
游戏引擎与游戏本身是没有什么关系因为你写游戏的时候可以不用游戏引擎直接调用平台(Win,OS,Android)提供给你图形库,声音库,和硬件,输入输出设备有关的类库,库函数。
如果说有关系那就是用游戏引擎写游戏的时候必须要遵守引擎的规范,用引擎写的游戏有一定程度上依赖引擎提供的游戏运行环境。
不过经济上有很大的关系因为上面提到的虚幻4,unity3D等引擎前期是免费,等游戏写完开始盈利到一定的程度以后引擎公司从游戏公司拿一部分作为引擎的授权费。而且不是一次性的。
就算有了游戏引擎的帮助上面讲的那个60%不一样部分还是大家自己用变成语言编写完成。每个引擎支持的编程语言是不一样的,有的支持c/c++,有的c#,有的js。每个引擎支持的编程语言数量也是不一样的,有的引擎只支持一种编程语言有的就好几个变成语言。
以上全是个人理解有很多不足的地方不喜欢勿喷,如有喜欢的朋友记得点赞,点关注。
贪吃蛇c语言程序功能描述?
提供启动,暂停,停止游戏功能,能控制走向,能能检测到碰撞,合理判断失败条件,会逐渐加快。