如何在PIXI JS中使用继承的方法“生成纹理”来自PIXI.extras.TilingSprite?

时间:2016-02-19 23:44:03

标签: javascript game-engine pixi.js

我正在尝试关注Learn Pixi JS书,但许多方法不起作用,因为作者使用了Pixi vs 3.0.0而我使用3.0.9,因为旧版本不再可供下载了。它希望我使用一个Rectangle对象来组织我的瓷砖表,但Pixi没有任何这个。所以我在PIXI.extrast.TilingSprite中听说过“生成纹理”方法,但是我无法调用它。那我该如何使用呢?

以下是我尝试的代码:

 <!DOCTYPE html>
    <meta charset="utf-8">
<html>
    <head>
        <title>First Attempt</title>
    </head>

    <body>
        <script type="text/javascript"  src="pixi.js">       </script>

        <script>


              renderer = PIXI.autoDetectRenderer(1200, 800 );

            //);

            // Add the canvas to the HTML document
            document.body.appendChild(renderer.view);

            // Create a container object called the 'stage'
            var stage = new PIXI.Container();


            var texture = PIXI.Texture.fromImage("images/png/Tiles/Tile1.png");





            setup();
            function setup() 
            {
                requestAnimationFrame(setup);


                 var newtile = new PIXI.extras.TilingSprite.generateTexture(3,2,renderer);



                // Position the sprite on the canvas
                newtile.x = 0;
                newtile.y = 0;

                //Scale the sprite up so it's 3 times bigger than the original image
                newtile.scale.set(0.3, 0.3);

                //Add the sprite to the stage
                stage.addChild(newtile);

                //Render the stage 
                renderer.render(stage);
            }






        </script>

        <style>* {padding: 0; margin: 0}</style>
    </body>
</html>

我想知道如何使用生成纹理方法,但如果有人有其他做法,那么我可以放置我的瓷砖地图也很有帮助。任何人都应对挑战?我认为每个瓷砖一个接一个地放置适当的坐标会是一个坏主意吗?

1 个答案:

答案 0 :(得分:0)

我们缺少一些关于这里究竟出了什么问题的详细信息,但很明显你错误地使用了TilingSprite。

稍微阅读official Pixi.js documentation

简而言之,generateTexture不是静态方法。 &#34;静态&#34;意味着您可以在不首先实例化类的情况下调用该方法。请注意,文档指出方法是否是静态&#34;或者&#34;继承&#34;它的名字旁边。

首先需要创建一个TilingSprite实例,然后在该对象上调用generateTexture方法,该方法返回一个PIXI.Texture(生成的纹理)。同样,这一切都在文档 - 需要一些练习才能解析这样的文档,但是当你使用其他人的库时,它是一项必不可少的技能。

做这样的事情:

var sprite = new PIXI.extras.TilingSprite(texture, textureWidth, textureHeight);
var generatedTexture = sprite.generateTexture(renderer, resolution, scaleMode);

我为了你为什么想要从纹理中创建一个精灵,然后转身并从精灵生成一个纹理,我有点挠头。我想你有理由吗?