[游戏]发一个小游戏 抛石助推
2014/4/18 18:41:00 (606) JAVA论坛 我是一个高三学生,而且编程工具是手机,所以代码写得很简单,估计不太符合规范,这也是这个游戏比较小的原因。源码我也打包在里面了,你们可以自己修改。这是一个得分很艰难的游戏,java平台,应该多数手机都可以玩(必须支持双缓冲)。作者我到现在为止最高分17……这个游戏地图是一片6*6的格子区域,红色表示角色现在的位置,绿色是空地,黄色是奖品,白色是石头(刚进入游戏时没有石头)。你要做的就是拿到奖品。任何时候如果奖品被拿到,或者因为其他原因消失了,都会在另外一个地方出现新的奖品。有关奖品的细节后面还会提到,先说到这里。
基本按键操作是用2468四个键控制方向,下面会有文字提示,按5确定。基本操作就这么简单。不过要注意的是,例如只按一下2键显示的是移动1格,如果再按一下就会变成移动2格,按8又会变成移动1格。也就是说,并不是只能移动1格的。
角色每次可以朝上下左右任意一个方向移动若干格,同时会朝相反的方向扔出一个石头(角色动几格,石头就被扔出几格)。石头如果撞到墙壁就会反弹,如果撞到其他的石头,就会停下,被撞的石头则接着运动直到停下。角色如果撞到墙壁或者石头,或者被石头砸到,游戏结束。
其实本来应该每移动一格刷新一次的,但是因为某个原因无法实现,无奈……
下面要说一下什么叫被石头砸到。如果你在墙边往墙外跑,也就是对着墙扔石头,石头会立即反弹,你移动到哪,石头也会跟着你移动到哪,你就会被砸到,游戏结束。
你跑到墙边后如果想离开墙边,就会被石头砸到,游戏结束。所以,无论如何不要走到墙边,否则死路一条。
然后是关于石头的消除。如果每走一步都扔出一个石头,石头又不会消失的话,最后整个场地都会布满石头,就无法进行了,所以下面要说明怎样可以让石头消失。如果最后一个停下的石头(注意必须是最后停下的石头!)停下后,跟其他的石头排成一排,至少三个石头(或者奖品)排成一条直线(横竖都可以,斜着不行),那么这几个石头(或者奖品)就会消失。
关于刚才提到的“最后停下的石头”解释一下,如果A石头撞到B石头后停下,B石头继续运动,则A形成的三连是无效的,不能消除,只有B形成的三连才是有效的。(其实这个最开始是程序的bug,但是后来发现如果没有这个bug就太无聊了)
最后,关于奖品。只要角色撞到奖品就可以得到,加上一分,同时在另一个地方会再次出现新的奖品。但是有时候角色不能得到这个奖品,例如奖品出现在墙边时,角色不能到墙边,此时就必须用其他方法让奖品消失,重新出现在其他地方。有下面两种方法:
1、用石头砸奖品。石头砸到奖品时奖品消失,重新出现。出现在墙边的石头可以用这个方法消除,但是对墙角的石头则无能为力,因为你会发现你无法把石头扔到墙角。所以后面还有一种方法。注意,石头砸到奖品不会反向或停止。还有,此方法不得分。
2、通过三连消除。刚才说石头的消除时说到过,石头或奖品排成一条直线都可以消除。这就是消除奖品的另一种方法,包括在墙角的石头也可以使用。此方法也不得分。