平铺精灵 TilingSprite

在一些无限背景的游戏中可以通过平铺精灵来实现背景的无缝衔接,类似 css 中的 background-repeat: repeat; 功能,使用前需要安装渲染器。

Demo

安装

使用 NPM

  1. npm i @eva/plugin-renderer @eva/plugin-renderer-tiling-sprite

在浏览器中

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

使用

  1. import { Game, GameObject, resource, RESOURCE_TYPE } from '@eva/eva.js'
  2. import { RendererSystem } from '@eva/plugin-renderer'
  3. import { TilingSprite, TilingSpriteSystem } from '@eva/plugin-renderer-tiling-sprite'
  4. resource.addResource([
  5. {
  6. name: 'imageName',
  7. type: RESOURCE_TYPE.IMAGE,
  8. src: {
  9. image: {
  10. type: 'png',
  11. url: 'https://gw.alicdn.com/tfs/TB1t7vtOvb2gK0jSZK9XXaEgFXa-300-431.png'
  12. }
  13. },
  14. preload: true
  15. }
  16. ])
  17. const game = new Game({
  18. systems: [
  19. new RendererSystem({
  20. canvas: document.querySelector('#canvas'),
  21. width: 750,
  22. height: 1000
  23. }),
  24. new TilingSpriteSystem()
  25. ]
  26. })
  27. const tilingSprite = new GameObject('sprite', {
  28. size: { width: 750, height: 1000 }
  29. })
  30. tilingSprite.addComponent(
  31. new TilingSprite({
  32. resource: 'imageName',
  33. tileScale: { x: 0.7, y: 0.7 },
  34. tilePosition: { x: 10, y: 40 }
  35. })
  36. )
  37. game.scene.addChild(tilingSprite)

参数

resource: String

资源名

tileScale: {x: float, y: float}

缩放

tilePosition:{x: number, y: number}

位移