上星期刚完成一个新游戏,《机械险境》。
游戏玩法:点击屏幕,机器人伸出绳子,通过摇荡前进,同时避开障碍物,前进的越远得分越高~!
游戏制作难点:
1、钟摆运动。说实话,这个游戏乍看好像很简单,其实在没有物理引擎的帮助下,纯模仿机械人的钟摆运动是挺困难麻烦的。
机器人的x值其实没有变,变的是背景和绳子,通过参考系的切换给玩家一种机械人在前进的错觉。那么问题就转为绳子的
运动和背景的运动以及机器人在垂直方向也就是Y轴方向的运动处理了。
2、绳子运动分为几个阶段,伸长阶段,回拉阶段和摇摆阶段。
2-1、伸长阶段通过设置一直变化的length值,实现绳子的动态加长。
伸长阶段一个最难的地方在于,要保证机器人无论在什么地方点击屏幕,绳子都能够
到最顶点的位置,我是这样解决的:
通过设置一个比值,计算当前机器人的位置相对于整个舞台高度的比值,把这个比值加到length里面去,刚刚说到length是改变绳子伸长的速度的,
这样就能较好的解决这个问题了。
2-2、回拉阶段,与伸长阶段同理,通过减少length的值,实现绳子缩短。
2-3、摇摆阶段,摇摆阶段就相对麻烦了,首先两个点决定一条线段,上面说了,摇摆时,绳子是动的,那么这时就需要把绳子的其中一个端点进行位置变化
具体就是改变它的X值,这里也和length有关;另外一个就是摇摆时,人在Y轴方向是变化的,就是一个开口向上的抛物线,所以确定顶点位置,根据
X值与顶点位置做判断,判断绳子另一头应该向上走还是向下放,通过这样来实现钟摆运动。
3、人的运动主要跟绳子有关,人要时刻与绳子的另一头紧密链接在一起,也就是说人的y值要与绳子另一头相同。
这个游戏开发用了2个星期,代码总行数2000+行,这里附上试玩地址(由于设置了强制横屏,所以需要在手机上打开:) ):
http://meiriq-static.b0.upaiyun.com/static/gamesbox/jixiexianjing_single/index.html