2017-01-29 13 views
0

При попытке следовать this tutorial для pixi.js Я наткнулся на то, что я не могу понять.Контейнер PIXI больше, чем этап?

Я установил размер renderer до 512 на 512, но при попытке оказать stage с TilingSprite, сцена урезается, прежде чем он достигнет конца холста, например, так:

enter image description here

EDIT: чернота, которую вы видите на изображении выше, все еще находится в пределах холста размером 512 на 512, это не фон браузера.

Вместо того, чтобы воспроизводить напольную плитку навсегда, сцена становится черной после 100 пикселей или около того.

Что здесь происходит?

Вот код:

PIXI.SCALE_MODES.DEFAULT = PIXI.SCALE_MODES.NEAREST; 

//Aliases 
var Container = PIXI.Container, 
    autoDetectRenderer = PIXI.autoDetectRenderer, 
    loader = PIXI.loader, 
    resources = PIXI.loader.resources, 
    TextureCache = PIXI.utils.TextureCache, 
    Texture = PIXI.Texture, 
    Sprite = PIXI.Sprite; 
    TilingSprite = PIXI.TilingSprite; 

var stage = new Container(); 
    stage.scale.set(3,3); 
var renderer = autoDetectRenderer(512, 512); 

document.body.appendChild(renderer.view); 

PIXI.loader 
    .add("src/tileset.json") 
    .load(setup); 

function setup() { 
    var id = PIXI.loader.resources["src/tileset.json"].textures; 

    let dude = new Sprite(id["dude"]); 
    let blob = new Sprite(id["blob"]); 
    let floor = new TilingSprite(id["floor"]); 
    let chest = new Sprite(id["chest"]); 

    //Position the chest next to the right edge of the canvas 
    chest.x = stage.width - chest.width - 48; 
    chest.y = stage.height/2 - chest.height/2; 

    stage.addChild(floor); 
    stage.addChild(chest); 
    stage.addChild(dude); 

    renderer.render(stage); 
} 
+1

Вы пробовали, что произойдет, если вы не установите масштабирование? Правильно ли он работает, если вы вручную установили размер TilingSprite? Как новый TilingSprite (id ["floor"], renderer.width, renderer.height)? – Hachi

ответ

0

Оказывается TilingSprite имеет ширину и высоту в качестве параметров, а также, и в то время как я ошибочно предположил, что это будет просто повторять до тех пор, stage не был полностью покрыт, это имеет значение по умолчанию из 100px как для ширины и высоты:

@param {PIXI.Texture} texture - the texture of the tiling sprite 
@param {number} [width=100] - the width of the tiling sprite 
@param {number} [height=100] - the height of the tiling sprite 

инициализацией с размерами я хотел решить эту проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^