Skip to main content

遮挡排序与透明度

使用前需要安装渲染器

安装

使用 NPM

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

在浏览器中

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

使用

import { Game, GameObject, resource, RESOURCE_TYPE } from '@eva/eva.js'
import { RendererSystem } from '@eva/plugin-renderer'
import { Img, ImgSystem } from '@eva/plugin-renderer-img'
import { Render, RenderSystem } from '@eva/plugin-renderer-render'
import { Transition, TransitionSystem } from '@eva/plugin-transition'

resource.addResource([
{
name: 'heart',
type: RESOURCE_TYPE.IMAGE,
src: {
image: {
type: 'png',
url: 'https://gw.alicdn.com/bao/uploaded/TB1lVHuaET1gK0jSZFhXXaAtVXa-200-200.png'
}
},
preload: false
}
])

const game = new Game({
systems: [
new RendererSystem({
canvas: document.querySelector('#canvas'),
width: 750,
height: 1000
}),
new ImgSystem(),
new RenderSystem(),
new TransitionSystem()
]
})

const image = new GameObject('image', {
size: { width: 200, height: 200 },
origin: { x: 0, y: 0 },
position: {
x: 300,
y: 400
},
anchor: {
x: 0,
y: 0
}
})
const img = image.addComponent(
new Img({
resource: 'heart'
})
)

const render = image.addComponent(
new Render({
alpha: 0.5
})
)

const animation = image.addComponent(new Transition())
animation.group = {
idle: [
{
name: 'alpha',
component: render,
values: [
{
time: 0,
value: 1,
tween: 'ease-out'
},
{
time: 1000,
value: 0,
tween: 'ease-in'
},
{
time: 2000,
value: 1
}
]
}
]
}

animation.play('idle', Infinity)

game.scene.addChild(image)

参数

sortableChildren: boolean 

如果需要使用 zIndex 排序,需要在父级的 Render 组件上设置 sortableChildren

zIndex: number 

渲染顺序,zIndex 越大在上面

alpha: number 

透明度

你有任何问题,或者需要我们帮你开发,请扫码联系
X