рд╣рдорд╛рд░реЗ
рдЦреЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдХрдард┐рди рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рджреЛ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдерд╛:
рдИрд╕реЗрдиреЗрд▓.рдЬреЗрдПрд╕ рдФрд░
рдмреЙрдХреНрд╕ 2 рдбрд┐рдбрдм ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЧреЗрдо рдХреА рдореБрдЦреНрдп рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдк рдмреЙрдХреНрд╕ 2 рдбреА рдЖрдХрд╛рд░ рдХреЛ рдПрдХреНрд╕, рд╡рд╛рдИ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЪрд┐рддреНрд░рдлрд▓рдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдмреЙрдХреНрд╕ 2 рдбреА рдФрд░ рдЪрд┐рддреНрд░рдлрд▓рдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк box2d рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд╛рдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╕реЗрда рд▓рд╛рдб рд╕реЗ box2d
рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реЗрдВред рдпрджрд┐ рдЖрдк рдЪрд┐рддреНрд░рдлрд▓рдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП рдФрд░ рдкреВрд░реЗ рдкреНрд░рджрд░реНрд╢рди рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ (рд╕рдВрдХреЗрдд: рдЗрд╕рдореЗрдВ рдлреНрд▓реИрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдкрд╣рд▓реВ рд╣реИрдВ)ред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрд▓рд╛рдмреА рдкрдХреНрд╖рд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдкреНрд░рджрд░реНрд╢рди рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦреЗрдВ -
рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВрдЪреВрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдИрдЬреЗрд▓ рдФрд░ рдмреЙрдХреНрд╕ 2 рдбреА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдордЭрддреЗ рд╣реИрдВ, рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддрд▓реНрд▓реАрди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдбреЗрдореЛ
рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдпрд╛ рдбреЗрдореЛ рдкреГрд╖реНрда рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВред
рдЪрд┐рддреНрд░рдлрд▓рдХ рдореЗрдВ рдЕрдм рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдЬреЛрдбрд╝рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЪрдХреНрд░реАрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреИрд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕рднреА рдХреЛрдб рдЖрд╡реЗрд╖рдг рдбреЗрдореЛ.рдЬреЗрдПрд╕ рд╕реЗ рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЕрдВрд╢ рд╣реИрдВред рдХрд╛рд░реНрдп рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
рдЬрд╝рд┐рдк рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
var tick = function(dt, paused) { birdDelayCounter++; if(birdDelayCounter % 10 === 0) {
var spawn = function() { var birdBMP = new Bitmap("images/bird.png"); birdBMP.x = Math.round(Math.random()*500); birdBMP.y = -30; birdBMP.regX = 25;
рдпрд╣ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдкрдХреНрд╖реА рдХреЛ рдХреИрдирд╡рд╛рд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╕реНрддреБ рд╕реНрд╡рдпрдВ рдХрд╛рдлреА рдмрд╣реБрдореБрдЦреА рд╣реИред рдЖрдк рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╡рд╕реНрддреБ рдкрд░ рднреМрддрд┐рдХ рдХрд╛рдиреВрди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдмреЙрдХреНрд╕ 2 рдбреА рдкрд░ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
regX рдФрд░ regY (рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ) рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдЬрдм рдЖрдк рдПрдХ рдЪрд┐рддреНрд░ рд╡рд╕реНрддреБ рдХреЛ рдмреЙрдХреНрд╕ 2 рдбреА рдкрд░ рд╕реНрдиреИрдк рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдмреЙрдХреНрд╕ 2d рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЗрдВрджреНрд░ рдореЗрдВ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЪрд┐рддреНрд░рдлрд▓рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╡рд┐рдкрд░реАрддред
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдЧреЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдмреЙрдХреНрд╕ 2 рдбреА рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
box2d.createBird(birdBMP);
var createBird = function(skin) { var birdFixture = new b2FixtureDef; birdFixture.density = 1; birdFixture.restitution = 0.6; birdFixture.shape = new b2CircleShape(24 / SCALE);
рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдХ рдЧреЛрд▓ рдмреЙрдХреНрд╕ 2 рдбреА рдмреЙрдбреА рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдмрд┐рдЯрдореИрдк рдХреЗ рд╕рдорд╛рди рдЖрдХрд╛рд░ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрдХреНрд╖реА рдХреА рдЫрд╡рд┐ рдмреЙрдХреНрд╕ 2 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝реА рдирд╣реАрдВ рд╣реИред рдбрд┐рдмрдЧ рдХреИрдирд╡рд╛рд╕ рдХреЗ рдмрд┐рдирд╛, рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреЛрд▓ рдмреЙрдХреНрд╕ 2 рдбреА рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкрдХреНрд╖реА рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИред рд╣рдо рдмреЙрдХреНрд╕ 2 рдбреА рд╢рд░реАрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП рдЫрд╡рд┐ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ?
... рдЕрднрд┐рдиреЗрддрд╛! рдЕрднрд┐рдиреЗрддрд╛ рджреГрд╢реНрдп рдмреЙрдХреНрд╕ 2 рдбреА рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореБрдЦреНрдп рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЦреЗрд▓ рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдмреЙрдХреНрд╕ 2 рдбреА рдирд┐рдХрд╛рдпреЛрдВ рдХреЗ рдореАрдЯреНрд░рд┐рдХ рдкрджреЛрдВ рдХрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЪрд▓реЛ рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред
var actor = new actorObject(bird, skin); bird.SetUserData(actor);
var actorObject = function(body, skin) { this.body = body; this.skin = skin; this.update = function() {
рдпрд╣ рдЕрднрд┐рдиреЗрддрд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕рдВрдХреЗрддрдХ (рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рдмреЙрдХреНрд╕ 2 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рднреМрддрд┐рдХ рдЪрдХреНрд░ рдХреЗ рджреМрд░рд╛рди рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЫрд╡рд┐ рдЕрдм рд╕рдм рдХреБрдЫ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдмреЙрдХреНрд╕ 2 рдбреА рдмреЙрдбреА рд╢рд╛рд░реАрд░рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХрд░рдг рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБ рдкрд░ рд╢рд░реАрд░ рдФрд░ рдЙрд╕рдХреА рдЫрд╡рд┐ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд░реАрд░ рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
var removeActor = function(actor) { stage.removeChild(actor.skin); actors.splice(actors.indexOf(actor),1); }
рдЕрдВрдд рдореЗрдВ рд╣рдордиреЗ рдХрд░ рджрд┐рдЦрд╛рдпрд╛! рдпрджрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЯрдХрд░рд╛рд╡, рдЖрдЙрдЯ-рдСрдл-рдмреИрдВрдб рдбрд┐рдЯреЗрдХреНрд╢рди рдЖрджрд┐ рдореЗрдВ рдмреЙрдХреНрд╕ 2 рдбреА рдлрд┐рд▓реНрдЯрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рджреЗрдЦреЗрдВ -
рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВрд▓реЗрдЦрдХ рдЬрд╕реНрдЯрд┐рди рд╢реНрд░реЗрдбрд░
www.luxanimals.com/blog/article/combining_easel_box2d