我正在尝试关注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>
我想知道如何使用生成纹理方法,但如果有人有其他做法,那么我可以放置我的瓷砖地图也很有帮助。任何人都应对挑战?我认为每个瓷砖一个接一个地放置适当的坐标会是一个坏主意吗?
答案 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);
我为了你为什么想要从纹理中创建一个精灵,然后转身并从精灵生成一个纹理,我有点挠头。我想你有理由吗?