Pixi.js: рдЫрд╛рдВрдЯреЗ рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рджрд░реНрд╢рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдЧре░ 2013  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ z- рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░рдо рдореЗрдВ рджрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддрд░рд╣ рд╕реЗ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд DisplayObjects рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд░рд┐рдбрд░ рд╡рд┐рдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдмрдЪреНрдЪреЛрдВ рдХреЗ рдЕрдзреНрдпрд╛рджреЗрд╢ рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдЗрд╕реЗ рдЖрджреЗрд╢рд┐рдд рд╕реВрдЪреА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкреБрди: рдХреНрд░рдордмрджреНрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

var mapContainer = new PIXI.DisplayObjectContainer(),
    unitsContainer = new PIXI.DisplayObjectContainer(),
    menuContainer = new PIXI.DisplayObjectContainer();

mapContainer.zIndex = 5;
unitsContainer.zIndex = 10;
menuContainer.zIndex = 20;

/* adding children, no matter in which order */
stage.addChild(mapContainer);
stage.addChild(menuContainer);
stage.addChild(unitsContainer);

/* call this function whenever you added a new layer/container */
stage.updateLayersOrder = function () {
    stage.children.sort(function(a,b) {
        a.zIndex = a.zIndex || 0;
        b.zIndex = b.zIndex || 0;
        return b.zIndex - a.zIndex
    });
};

stage.updateLayersOrder();

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

children рд╕рд░рдгреА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдСрд░реНрдбрд░ рд╡рд╣ рдСрд░реНрдбрд░ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдХ "рд╢реАрд░реНрд╖ рдкрд░" рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдЕрдм рдореИрдВ рдереЛрдбрд╝рд╛ рдмреЗрд╡рдХреВрдл xD рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдБ
рдЬрдм рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рд░реЗрдВрдбрд░рдбрд┐рд╕рдкреНрд▓реЗрдУрдмрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХрд▓рд┐рд╕реНрдЯ рджреЗрдЦрд╛ рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рд╕реНрдЯреЗрдЬ.рдЪрд┐рд▓реНрдбреНрд░реЗрди рд╕рд░рдгреА рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЪрд▓реА рдЧрдИ рдереА ...ред
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣ рдордВрдЪ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдмрдЪреНрдЪреЛрдВ рдХреА рддрд░рд╣ :)

1.3.0 рдкреНрд░рджрд░реНрд╢рди btw рдмрд╕ рдХрдорд╛рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ! рдореИрдВ cocoonjs рдкрд░ WebGL рдХреЗ рд╕рд╛рдорд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдб рд╕рдорд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдзрдиреНрдпрд╡рд╛рдж :)

рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЦреБрд╢реА рд╣реИ рдХрд┐ PIXI рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ!

var mapContainer = new PIXI.DisplayObjectContainer(),
    unitsContainer = new PIXI.DisplayObjectContainer(),
    menuContainer = new PIXI.DisplayObjectContainer();

mapContainer.zIndex = 5;
unitsContainer.zIndex = 10;
menuContainer.zIndex = 20;

/* adding children, no matter in which order */
stage.addChild(mapContainer);
stage.addChild(menuContainer);
stage.addChild(unitsContainer);

/* call this function whenever you added a new layer/container */
stage.updateLayersOrder = function () {
    stage.children.sort(function(a,b) {
        a.zIndex = a.zIndex || 0;
        b.zIndex = b.zIndex || 0;
        return b.zIndex - a.zIndex
    });
};

stage.updateLayersOrder();

рдмрд╛рд▓ рд╕рд░рдгреА readonly

@glebmachine рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк "рд╕реЙрд░реНрдЯ" рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ

@tengotengo рдзрдиреНрдпрд╡рд╛рдж! рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдЕрднреА рддрдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИред

рдХреНрдпрд╛ @tengotengo рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рд╣реИ? Z-index рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдореБрдЭреЗ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓рдЧрддреА рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП, рдПрдХ рдЖрдЗрд╕реЛрдореЗрдЯреНрд░рд┐рдХ рдЧреЗрдо рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЗ y- рдЕрдХреНрд╖ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдкреАрдЫреЗ рдпрд╛ рджреВрд╕рд░реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдордиреЗ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Z- рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдирд╛ рдЗрд╕ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдиреАрдЪреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдиреЗ z- рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рдореИрдк рдореЗрдВ рдореИрдк рдХрд░реЗрдВрдЧреЗред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕реЙрд░реНрдЯ рд╣реИрдХ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@bluefeet https://github.com/pixijs/pixi-display рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

рдпрджрд┐ рдЖрдк 2017 рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ; рдЗрд╕реЗ рдкрд┐рдХреНрд╕реА рдореЗрдВ zOrder рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

https://pixijs.github.io/examples/#/display/zorder.js

@loadedsith рдкрд┐рдХреНрд╕реА -рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЯреАрдПрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреИрдЪ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

zcr1 picture zcr1  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

courtneyvigo picture courtneyvigo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lunabunn picture lunabunn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

samueller picture samueller  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

YuryKuvetski picture YuryKuvetski  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ