益智贪吃蛇 GreedySnake-Puzzled
题:很久之前就想写一个真正意义上的小游戏,但是由于各种原因没写,最终在大学生涯即将结束的几个月前赶上了些游戏的末班车。前一段时间在宿舍比较闲,于是决定把以前定下的小目标实现一下,思前想后,题材选定了以贪吃蛇游戏为游戏背景,加上一个linux游戏Enigma的创意,关于Enigma的介绍看这里,Enigma创意来源于各种小部件的组合,上千个物品和地图元素的组合地图可以模拟任何一种游戏模式,将这两个游戏元素结合起来,自己决定写一个益智贪吃蛇,人物主角是个小蛇,只不过游戏模式改变成一个益智类的游戏模式,下面介绍这个游戏的思路和代码。
游戏程序可以从这里下载,note:游戏中还有很多bug没有修正,敬请原谅。。。
游戏模式思路:游戏主要包括两个部分,一个是游戏引擎,二是游戏地图编辑器,本游戏的目的是将贪吃蛇游戏改造成一款益智类的游戏,玩家可以在传统贪吃蛇游戏的基础之上,通过解决游戏中每张地图设置的谜题和迷宫来达到过关的目的。例如一张推箱子的地图,将贪吃蛇和推箱子游戏结合起来,或者是敏捷类地题图。由于游戏的重点是益智类的,所以游戏地图的设置是最关键的地方,游戏本身提供了一些游戏元素,如各种地面和各种功能的触发器,至于如何组合这些元素使地图模拟出各种游戏模式并且增加可玩性,需要众多玩家和制作者的集思广益,通过不断创新从而制作出更加耐玩的地图,本游戏提供了一个游戏地图编辑器,玩家可以按照自己的意愿来制作游戏地图,一起大家分享。下面分别介绍游戏引擎和游戏地图编辑器,最后附上几张自己制作的几张不同游戏模式的地图。
游戏引擎:主人公是一条小蛇,目标是过关的条件是吃到五角星,不过游戏中有一些元素,可以分为两类:地面类和触发器类。
地面类:
:普通地面。
:钢墙,不可碰触。
:砖墙,蛇在普通状态下不可碰触,但在无敌状态下可以把砖墙撞破。
:黑洞,不可在黑洞上行走,但是蛇在飞行状态下可以飞越黑洞而不受影响。
:火焰,蛇头每次碰触火焰,蛇身的长度减一,但是当蛇身长度小于2,蛇将死亡。
:冰面,蛇在冰面上不可改变方向,飞行状态下除外。
:眩晕,蛇在此地面上将晕头转向,向着用户操作相反方向行走。
:水面,蛇不可在水面上行走,但飞行状态下除外;另外,当蛇把箱子推到水面上时,箱子可以漂浮在水面上,从而蛇可以经过水面。
触发器类:
:苹果,消耗品,效果蛇身的长度加一。
:无敌药水,消耗品,蛇处于一定的无敌状态,状态持续时间由无敌药水指定。
:弹簧,固定触发器,蛇经过弹簧时,将会在下一状态处于飞行状态,从而可以飞越特定区域。
:传送点,固定触发器,蛇将会被传送的另一传送点,位置由此触发器指定。
:门,固定触发器,当蛇有钥匙时可以打开门。
:钥匙,消耗品。
:箱子,移动触发器,蛇可以推动箱子移动,但是不能推动两个或两个以上的箱子,箱子可以漂浮在水面上。
: 眩晕,消耗品,蛇将处于眩晕状态,状态持续时间由触发器指定。
:五星,固定触发器,蛇到达此触发器时,游戏将会被判定为胜利。
由以上游戏元素可以组成不同的游戏模式地图,具体模式还要靠地图制作者地想象能力才能发挥出最好的效果。
地图编辑器:
制作题图的核心程序,玩家可以通过地图编辑器来制作想要的地图, 每一个游戏元素都在题图编辑器中给出了,通过一般的鼠标操作可以轻松的绘制地图,玩家也可以随意更换地图元素的图片,但是要保证每张地图有个可达的五角星触发器,否则。。。。下面是地图编辑器界面:
下面是几张不同模式的地图:
1. map_Demo
第一张demo地图,综合了各种元素,其中游戏界面最下方是物品栏,蛇吃到的物品及持续时间都会在物品栏中表出。
2. map_IceRoad
通过在大片冰面寻找可转向的地面来过关,同时注意吃掉苹果和火焰。
3. map_Transform
地图分为几个不同的房间,通过传送点可以进行传送,需要玩家一定的记忆力。
4. map_PushBoxFace
推箱子类地图,通过推箱子找到钥匙打开门,有bug。
5. map_Brick
对无敌药水和砖墙的应用。
6. map_Maze
类似迷宫地图,需要玩家的眼力较好,只有一条路是通向五角星的。
7. map_Faint
对眩晕效果的应用,眩晕时间在物品栏中表出。
上面只是简单的几张地图,更多的地图可以玩家自己制作。
关于游戏代码的解释暂时还未写,之后有空便会补上。
本游戏由于制作的时间太短,还有许多bug没有修正。。。。。。
想要代码的朋友可以联系,很乐意一起交流。
NOTE: 欢迎大家一起制作更好玩的地图,一起分享交流!