Crafty.sprite()

public this Crafty.sprite([Number tile, [Number tileh]], String url, Object map[, Number paddingX[, Number paddingY[, Boolean paddingAroundBorder]]])
tile

精灵地图的大小,默认为1

tileh

瓦片的高度,如果提供,瓦片的宽度也将使用此值。

url

精灵图片的URL

map

一个对象,其中键将作为一个新组件,而值指向精灵地图中的位置。

paddingX

瓦片间的水平距离,默认为0

paddingY

瓦片间的垂直距离,默认为 paddingX.

paddingAroundBorder

是否在精灵序列的边框周围应用填充。是否设置第一块的开始为(paddingx,paddingy)而不是(0,0)。默认为false。

基于对象映像中的位置生成组件,以便应用于实体。

接收一个瓦片大小,URL和名字映射的精灵以及它的位置。

该位置必须是一个数组,其中包含精灵的位置,其中索引0x的位置,1y的位置,可选的2是宽度,3是高度。如果精灵地图有填充,则传递x填充或y填充的值。如果它们是一样的,只需添加一个值。

如果精灵图像没有一致的瓦片尺寸,则需要传递1个或无参数以供瓦片大小使用。

添加生成组件的实体也给出2D组件,以及一个名为Sprite的组件。

例子

Crafty.sprite("imgs/spritemap6.png", {flower:[0,0,20,30]});
var flower_entity = Crafty.e("2D, DOM, flower");

第一行创建了一个关联到 spritemap6.png 的子图像 ,顶点坐标为 (0,0),宽度为 20 像素,高度为 30 像素,叫做 flower 的组件。 第二行创建了一个具有该图像的实体。(注意: 2D 在这里不是必须的, 因为添加 flower 组件会自动添加 2D 组件。)

Crafty.sprite(50, "imgs/spritemap6.png", {flower:[0,0], grass:[0,1,3,1]});

在这个例子中,flower 组件为像素 0 <= x < 50, 0 <= y < 50, grass 组件为 0 <= x < 150, 50 <= y < 100. (3 的意思是宽度为3个瓦片,即 150像素。)

Crafty.sprite(50, 100, "imgs/spritemap6.png", {flower:[0,0], grass:[0,1]}, 10);

在这个例子中,每个瓦片的大小为 50x100,瓦片间的空白为 10 像素。所以 flower 为像素 0 <= x < 50, 0 <= y < 100, 并且 grass 为像素 0 <= x < 50, 110 <= y < 210.

参见