Skip to main content

精灵图 Sprite

精灵图是将多张图片打包的一张图片,可以减少 HTTP 请求次数,节省内存空间,使用前需要安装渲染器。

Demo

安装

使用 NPM

npm i @eva/plugin-renderer @eva/plugin-renderer-sprite

在浏览器中

<script src="https://unpkg.com/@eva/plugin-renderer-sprite@1.2.x/dist/EVA.plugin.renderer.sprite.min.js"></script>

使用

import { Game, GameObject, resource, RESOURCE_TYPE } from '@eva/eva.js'
import { RendererSystem } from '@eva/plugin-renderer'
import { Sprite, SpriteSystem } from '@eva/plugin-renderer-sprite'

resource.addResource([
{
name: 'spriteName',
type: RESOURCE_TYPE.SPRITE,
src: {
image: {
type: 'png',
url: 'https://gw.alicdn.com/tfs/TB1ONLxOAL0gK0jSZFAXXcA9pXa-900-730.png'
},
json: {
type: 'json',
url: 'https://pages.tmall.com/wow/eva/ad317f6aea149d9a8b34a517e5df2caf.json'
}
},
preload: true
}
])

const game = new Game({
systems: [
new RendererSystem({
canvas: document.querySelector('#canvas'),
width: 750,
height: 1000,
backgroundColor: 0x101010
}),
new SpriteSystem()
]
})

const gameObj1 = new GameObject('gameObject1', {
size: { width: 200, height: 244 },
position: {
x: 0,
y: 0
}
})

const spriteCom1 = new Sprite({
resource: 'spriteName',
spriteName: 'symbol_1'
})

gameObj1.addComponent(spriteCom1)

参数

resource: String

资源名称

spriteName: String 

精灵图 id