Pixi.js: рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдмрд╛рдж рдХреИрдорд░рд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд┐рдХреНрд╕реА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП

  1. рдХреИрдорд░рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
  2. рджреБрдирд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ рдЬрдм рдЦрд┐рд▓рд╛рдбрд╝реА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕реЗ 400 px рдФрд░ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдмрд╛рдПрдБ рдЫреЛрд░ рд╕реЗ 300 px рд╣реЛ
  3. рджреБрд╢реНрдорди рдЬреИрд╕реА рдЪреАрдЬреЗрдВ, рдЬрдореАрди рдкрд░ рдореМрдЬреВрдж рд╡рд╕реНрддреБрдПрдВ рдФрд░ рд╡рд╕реНрддреБрдПрдВ рдЕрдкрдиреЗ рд╣рд┐рд╕рд╛рдм рд╕реЗ рдврд╛рд▓рддреА рд╣реИрдВ (рджреГрд╢реНрдпрд╛рд╡рд▓реА рдХреЗ рд╕рд╛рде рднреА)ред

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж

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

рдХрд┐рд╕реА рдиреЗ, рдХреГрдкрдпрд╛ рдПрдХ рдкрд┐рдХреНрд╕реА рд╡рд┐рдХреА рд▓реЗрдЦ рдмрдирд╛рдПрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ 10 рд╡реАрдВ рдмрд╛рд░ рдЙрд╕ рдмрд╛рдд рдХреЛ рд╕рдордЭрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╣рдореЗрдВ рдЙрд╕ рд╕рд╛рдорд╛рди рдкрд░ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

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

"рдХреИрдорд░рд╛" рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдбрд╛рд▓реЗрдВред

camera.position.set(renderer.screen.width/2, renderer.screen.height/2);
camera.pivot.copy(player.position);

//EVERY FRAME

var targetPivot = player.position;

//LERP IT, dt is something between 0 and 1.
// i use dt = 1 - Math.exp(-deltaInMillis / 100);
// or you can just assign targetpivot to pivot
camera.pivot.x = (targetPivot.x - camera.pivot.x) * dt + camera.pivot.x;
camera.pivot.y = (targetPivot.y - camera.pivot.y) * dt + camera.pivot.y;

//big square

var mapRect = new PIXI.Rectangle();
mapRect.x = camera.pivot.x - renderer.screen.width/2;
mapRect.y = camera.pivot.x - renderer.screen.height/2;
mapRect.width  = renderer.screen.width;
mapRect.height = renderer.screen.height;
mapRect.pad(400,400); // -this line was updated

//every time camera changes position


var newRect = new PIXI.Rectangle();
newRect .x = camera.pivot.x - renderer.screen.width/2;
newRect .y = camera.pivot.x - renderer.screen.height/2;
newRect .width  = renderer.screen.width;
newRect .height = renderer.screen.height;
if (newRect.x < mapRect.x || newRect.right > mapRect.right ||
   newRect.y < mapRect.y ||  newRect.bottom > mapRect.bottom) {
   mapRect = newRect;
   //ADJUST THE BACKGROUND AND STUFF
   //CLEAR AND FILL THE TILEMAP: https://github.com/pixijs/pixi-tilemap
}

рдХрд┐рд╕реА рдиреЗ, рдХреГрдкрдпрд╛ рдПрдХ рдкрд┐рдХреНрд╕реА рд╡рд┐рдХреА рд▓реЗрдЦ рдмрдирд╛рдПрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ 10 рд╡реАрдВ рдмрд╛рд░ рдЙрд╕ рдмрд╛рдд рдХреЛ рд╕рдордЭрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд╣рдореЗрдВ рдЙрд╕ рд╕рд╛рдорд╛рди рдкрд░ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ 2. рдмрд┐рдВрджреБ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред MapRect.enlarge (400) рдХрд╛ рдкрд░рд┐рдгрд╛рдо; NaN рд╣реИред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдФрд░ рдЖрдпрдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рджред

рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдкреИрдб (400,400)" "рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;"

рд╡рд╣рд╛рдБ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ newRect.x рд╣рдореЗрд╢рд╛ рдмрдбрд╝рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣рд╛рдБ рдХреБрдЫ рднрд╛рд░реА рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ :(

@mirosssc

mapRect = newRect;
mapRect.pad(400,400);

рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╣рд░ рдмрд╛рд░ newRect рдмрдирд╛рдПрдБред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ "mapRect.copy (newRect);" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдмрдЬрд╛рдпред

рдореИрдВрдиреЗ рдЫрджреНрдо рдХреЛрдб рд▓рд┐рдЦрд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЧреЗрдорд╕реНрдЯрд╛рд░реНрдЯ, рдЧреЗрдордлреНрд░реЗрдо рдпрд╛ рддреЛ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЙрд╕ рд╕рд╛рдорд╛рди рдХреА рдирдХрд▓ рдХреА рд╣реИ? рдпрд╣ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирдорд╕реНрддреЗ! рдЕрдкрдиреА рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░рдирд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдПрдХ рдкреНрд░рд╣рд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рдж ЁЯСН

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

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

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

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

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

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

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

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