最近做了个像素鸟小游戏,整理下笔记心得:
定时器:不管页面上有多少个演员,只有一个定时器,这个定时器的业务超级简单:
setInterval(function(){
//让所有演员更新
//让所有演员渲染
},20)
1.所有的演员都必须提供update() render()方法,这实际上叫做面向接口编程。Java中,“类”是一种比较抽象的概念,比"类"还抽象一层的东西叫做接口,就是制定必须有哪些方法的特殊类,所有的类都必须实现这两个方法。JS中没有接口这个概念,但是我们可以用Java类比,要求所有的演员都必须有update render的方法,提供相应的实现
2.game类必须要维护一个演员清单,所有的演员在new出来的时候必须注册,所谓的注册就是把自己加入到game类的演员清单中,this.actors = [ ] game.actors.push(this)

中介者模式:一个对象处于中央控制管理地位,其他所有对象都是自己的属性
背景、大地、鸟、分数、按钮。。。都是game的属性,这样做的好处:
1.全局作用域干净,只有game一个全局对象,小鸟在哪?game.bird 大地在哪?game.land
2.互相通信简单,比如鸟要得到管子的位置,通过game类中转即可
3.game类可以一统每个演员new出来的时间点,game就能控制当图片读取完毕之后再new大地,当帧数%70 == 0的时候 再new管子

小鸟物理下落模型 :动画间隔时间是一致的,但是:
1.小鸟的变化增量,每帧比每帧大,大二次关系的一个数
2.小鸟的位置与帧数成二次关系