2016-07-06 6 views
0

입니다 - 나는 33의 사진을로드하려고 워드 게임은 PNG 파일에서 스프라이트를 만들기 위해 노력하고 항상 내가 어떤 명백한 일이 잘못 할 수있는 느낌이 pixi.js 초보자로서 마지막 문자

을 다음 코드를 사용하여 PNG 파일 (1980 X 60 픽셀 대형)에서 편지 (각 60 X 60 픽셀) :

var stage = new PIXI.Container(); 
var renderer = new PIXI.WebGLRenderer(1020, 1020); 
var boardDiv = document.getElementById('board'); 
boardDiv.appendChild(renderer.view); 

var darkSmallLetters = new Array(33); 
var darkLargeLetters = new Array(33); 
var whiteSmallLetters = new Array(33); 

PIXI.loader 
    .add('board' ,'/drawable-mdpi/game_board.png') 
    .add('dark_small_letters', '/drawable-mdpi/dark-letters-1980x60.png') 
    .add('white_small_letters', '/drawable-mdpi/white-letters-1980x60.png') 
    .load(init); 

function init() { 
    var board = new PIXI.Sprite(PIXI.loader.resources.board.texture); 
    stage.addChild(board); 

    for (var i = 0; i < 33; i++) { 
     var rect = new PIXI.Rectangle(i * 60, 0, 60, 60); 

     PIXI.loader.resources.dark_small_letters.texture.frame = rect; 
     darkSmallLetters[i] = new PIXI.Sprite(PIXI.loader.resources.dark_small_letters.texture); 
     darkSmallLetters[i].x = i * 60; 
     darkSmallLetters[i].y = i * 60; 
     stage.addChild(darkSmallLetters[i]); 

     PIXI.loader.resources.white_small_letters.texture.frame = rect; 
     whiteSmallLetters[i] = new PIXI.Sprite(PIXI.loader.resources.white_small_letters.texture); 
     whiteSmallLetters[i].x = 100 + i * 60; 
     whiteSmallLetters[i].y = i * 60; 
     stage.addChild(whiteSmallLetters[i]); 
    } 

    renderer.render(stage); 
} 

마지막 편지 쓰기합니다 (z) 그러나 단지가 전면적으로 그려집니다.

그래픽 리소스가 매우 간단하기 때문에 TexturePacker 또는 비슷한 프로그램을 사용하고 싶지 않습니다. 게임 보드와 가로로 2 줄의 문자 그림이 있습니다 (1234567abcdefghijklmnopqrstuvwxyz).

위의 코드에서 내가 뭘 잘못하고 있니?

+1

저는 직접 해본 적이 없으므로 수동으로 프레임을 설정하는 것에 대해 알지 못합니다. (필자는 Pixi를 경험 한 경험이 있습니다.) 하지만 내 눈을 사로 잡은 한 가지 : 매번이 작업을 수행합니다. PIXI.loader.resources.dark_small_letters.texture.frame = rect 매번 동일한 프레임 속성을 변경했음을 확인 했습니까? 따라서 만들어진 모든 스프라이트는 PIXI.loader.resources.dark_small_letters.texture.frame과 동일한 참조를 갖습니다. 이는 클로저/생성 된 객체가 아니지만 매번 같은 객체이기 때문에 동일한 프레임 속성 참조 만 변경됩니다 . – Hachi

답변