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和名字映射的精灵以及它的位置。
该位置必须是一个数组,其中包含精灵的位置,其中索引0
是x
的位置,1
是y
的位置,可选的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.