[size=0.76em]轻量型行为[size=0.76em]前一节中讨论的跑步小人的跑动行为需要维持状态,也就是说,行为持续的时间会推动 sprite 的图像移动。这种状态将跑步状态与行为紧密联系在一起。所以,如果您希望让另一个 sprite 跑动,则需要拥有另一个跑动行为。[size=0.76em]不需要维持状态的行为更加灵活;例如,可将这些行为用作轻量型行为。轻量型行为是对象的一个实例,可供其他许多对象同时使用。图 3 演示了一种无状态的移动行为,它让 sprite 在一个平台上来回移动。该行为一个实例被用于游戏的纽扣和蜗牛,所有这些对象都在平台上来回移动,如图 3 所示:
图 3. 纽扣移动顺序
[size=0.76em]清单 6 给出了 Snail Bait 的 createButtonSprites() 方法,它将单独的移动行为添加到每个纽扣:
清单 6. 创建移动纽扣
SnailBait.prototype = { ... createButtonSprites: function () {var button,
buttonArtist = new SpriteSheetArtist(this.spritesheet,
this.buttonCells),goldButtonArtist = new SpriteSheetArtist(this.spritesheet,
this.goldButtonCells);for (var i = 0; i < this.buttonData.length; ++i) { if (i === this.buttonData.length - 1) {
button = new Sprite('button',
goldButtonArtist,
[ this.paceBehavior ]); } else {
button = new Sprite('button',
buttonArtist,
[ this.paceBehavior ]); } button.width = this.BUTTON_CELLS_WIDTH; button.height = this.BUTTON_CELLS_HEIGHT; button.velocityX = this.BUTTON_PACE_VELOCITY; button.direction = this.RIGHT; this.buttons.push(button);} }, ...};
|