美文网首页
精灵简介

精灵简介

作者: skoll | 来源:发表于2022-09-15 23:48 被阅读0次

有三种管理精灵的方法

SpriteManager

1 .管理单个精灵,单个精灵图的大小是一样的
2 .精灵的大小会受z轴位置的影响,总的来说就是距离镜头越远,精灵越小

驯服一团火
 const fire=new BABYLON.SpriteManager('fireManager','url',1,128)
        let fire1=new BABYLON.Sprite('fire',fire)
        fire1.playAnimation(0,63,true,64)
fire.png

3 .驯服人物,根据状态切换不同的动画.我要做的仅仅是改变状态,其余的不需要管

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Babylon Template</title>

    <style>
      html,
      body {
        overflow: hidden;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
      }

      #renderCanvas {
        width: 100%;
        height: 100%;
        touch-action: none;
      }
    </style>

    <script src="https://cdn.babylonjs.com/babylon.js"></script>
    <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.min.js"></script>
    <script src="https://code.jquery.com/pep/0.4.3/pep.js"></script>
  </head>

  <body>
    <canvas id="renderCanvas" touch-action="none"></canvas>
    <script>
      const canvas = document.getElementById("renderCanvas"); 
      const engine = new BABYLON.Engine(canvas, true);

     
      const createScene = function () {
        const scene = new BABYLON.Scene(engine);
        const camera = new BABYLON.ArcRotateCamera("camera", -Math.PI / 2, Math.PI / 2.5, 15, new BABYLON.Vector3(0, 0, 0));
        camera.attachControl(canvas, true);
        const light = new BABYLON.HemisphericLight("light", new BABYLON.Vector3(1, 1, 0));

        const fire=new BABYLON.SpriteManager('fireManager','player.png',1,64)
        let player=new BABYLON.Sprite('fire',fire)

        function runLeft(){
            player.playAnimation(0,9,true,100)
        }

        function jump(){
            player.playAnimation(10,22,false,100)
        }

        let playState=0
        let changeState=0

        window.addEventListener(('keydown'),(e)=>{
            console.log(e.keyCode)
            const code=e.keyCode
            if(code==65){
                // runLeft()
                if(playState!==1){
                    changeState=1
                }
                // 改变玩家的状态为奔跑
            }

            if(code==32){
                // jump()
                if(playState!==2){
                    changeState=2
                }                
                // 改变玩家的状态为
            }
        })

        scene.onBeforeRenderObservable.add(()=>{
            if(changeState!=playState){
                // 进行动画改变
                if(changeState==1){
                    runLeft()                   
                    playState=1
                }
                if(changeState==2){
                    jump()
                    playState=2
                }
            }
        })
        return scene;
      };

      const scene = createScene();

     
      engine.runRenderLoop(function () {
        scene.render();
      });
      window.addEventListener("resize", function () {
        engine.resize();
      });
    </script>
  </body>
</html>

SpritePackedManager

1 .sprite图像大小不一致,这时会打包成一个speitesheet以及一个json文件来告诉图像对应的文件位置

SpriteMap

1 .当你需要再屏幕上快速渲染数千个精灵动画的时候。

相关文章

  • 精灵简介

    有三种管理精灵的方法 SpriteManager 1 .管理单个精灵,单个精灵图的大小是一样的2 .精灵的大小会受...

  • 精灵语简介

    非原创,收藏用。源自贴吧,原作者未知。 【上篇】辛达尔语(Sindarin) 亦称灰精灵语(Grey-elven)...

  • 精灵梦中(简介)

    有一天,江依依做了一个很奇怪的梦,因为一个精灵的到来,使她的生活就此改变。原来不是很富有的家庭开始富有起来,一系...

  • 《钢琴小精灵》读后感

    题目:《钢琴小精灵》 作者:《钢琴小精灵》由德国作家金仕可菲作。 主要人物:钢琴小精灵、丹尼尔等人。 简介:

  • 《钢琴小精灵》

    题目:《钢琴小精灵》 作者:《钢琴小精灵》有德国文学作家金仕可菲作。 主要人物:钢琴小精灵、丹尼尔等人。 简介:丹...

  • 任务9- CSS常见技巧

    1、CSS Sprite(雪碧图|精灵图)指什么? 有什么作用 简介CSS Sprites(雪碧图|精灵图)是一种...

  • 《绿精灵》——产品简介

    《绿精灵》是我公司在多年叶面肥研制生产的基础上,结合多年一线实际工作经验,根据水生植物生长过程中,所发现的易感染的...

  • 云裳羽衣之晨曦精灵

    晨曦精灵:她从晨曦中走出,是这森林的守护者。 装束简介 晨曦精灵发:清晨的第一束光已经到来,精灵已来到满溢波光的水...

  • 《失踪的精灵》简介和目录

    第一章 怪兽岛 第二章 奇异车 第三章 精灵们 第四章 大鼻子山东 第五章 奇异岛孩子 第六章 中国金风 第七...

  • 叶罗丽精灵梦[简介]

    时光飞驰,转眼即逝。 他们毕业了...... 步入初中,慕羽云的世界却因一个娃娃而变得不再平凡。 魔法?什...

网友评论

      本文标题:精灵简介

      本文链接:https://www.haomeiwen.com/subject/tbidortx.html