精灵是引擎用来在屏幕上显示图形和元素的主要可视游戏对象(GameObject),精灵使用一些基本资产或精灵表(SpriteSheet)把自身绘制到游戏中;场景(Scene)则提供了一种方式把诸如关卡一类的游戏的某个离散部分包装成一个既好用又可重用的包;最后,作为游戏状态的主要容器,舞台(Stage)负责跟踪GameObject列表,以及确保它们在每帧中的更新和绘制。
精灵表支持在单个图像中存储任意数目的图像,这样做的目的是加快游戏的加载过程,以及把动画变得更便于使用。
创建SpriteSheet类: 一个SpriteSheet对象只引用同一精灵的一组大小相似的帧,一个单次加载的图像资产可被编译成若干SpriteSheet对象。
跟踪和加载精灵表:
测试SpriteSheet类:
事件由Evented类处理,组件由GameObject类处理,图形由资产和SpriteSheet类处理等
编写Sprite类:
引用精灵、属性和资产:
运用Sprite对象:blockbreak.html
使用一个对象管理众多精灵的更新和绘制。Quintus将这一对象称为Stage(舞台),还会额外加入一个Scene(场景)对象概念,该对象用来设置某个特定舞台的舞台对象。Scene的作用之一是简化关卡的设置,然后在关卡之间进行切换。
quintus_scenes.js
这一场景功能背后的设想是,你希望以独立方式来设置游戏的某一关或某一段内容,所以它放入一个独立的方法中来简化不同场景之间的切换。
编写Stage类:负责记录一个精灵列表并让精灵更新和渲染自身。