这次的游戏的编写难度比之前的都高很多。本次鄙人用了js的继承以及设计模式的工厂模式,也算是一个突破。。。
游戏的大致设计思路:
1,玩家类Player:一个人能左右移动,以及上下移动的小人。
拥有的基本方法:{
左右移动 : 单纯的键盘左右移动,
向下移动 : 属于向下加速度移动,每次移动都会加一个重力加速度的值,
向上移动 : 其实是跟着方块一起向上移动, 匀速向上运动,
弹跳 : 就是玩家先向上一个减速度运动,然后,当速度小于1时,像下加速度运动
}
2,方块基类BlockBase:所有方块的基类,拥有公共的方法以及接口。
拥有的基本方法:{
移动 : 方块的向上匀速移动,
检测玩家是否在方块上 : 判断玩家是否停留在方块上
}
以及一些抽象的接口函数,只有名字,需要在子类中实现,具体看源码。
3,各种子类,如 普通方块类NormalBlcok、弹跳方块类FlipBlock等
继承的实现方式如下:
在构造函数中:BlockBase.call(this);继承非prototype的属性与方法
在函数外部:子类方块.prototype = new BlockBase(); 继承基类的prototype的属性与方法
4, 工厂类BlockFactory:负责生产方块,以及击中处理方块
拥有的基本方法:{
生成方块 : 重点的方法,就是随机生成一块方块
}
其实我也不知道怎么说,还是看源码吧。里面我注释得很具体了。
还有,bug肯定是会有的,希望大家谅解。。。
最后献上预览吧。希望大家多多拍砖,能让我多些提高。最好在代码的编写上。
方向左右控制移动,界面是做得比较丑。。。大家见谅。
演示代码:http://demo.jb51.net/js/DownFloor/index.html
完整源码打包>>/201011/yuanma/DownFloor.rar