
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣реИрдмреЗ
рдкрд░ рдХреИрдирд╡рд╕ рдкрд░ рдЯреИрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдерд╛ред
рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд▓реЗрдЦ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рдПрдВрдЧреЗред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рдЕрдзрд┐рдХ рд╕реАрдкреАрдпреВ рдЦрдкрдд рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИред
рдпрд╣ рддрдХрдиреАрдХ рдХреА рдХрдореА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдиреБрднрд╡ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХрдореА рд╣реИред
рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ,
LibCanvas рдХреА рдорджрдж рд╕реЗ,
рдЗрд╕ рдЧреЗрдо рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ
рд▓рд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрд╛рдзрд╛ рдХреЗ рдмрдирд╛рдиреЗ рдФрд░ рд╢рд╛рдирджрд╛рд░ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЦреЗрд▓ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ - рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреБрдирд░реНрд╡рд┐рдХрд╛рд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рддрдм рд╣реА рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрдм рдХреИрдирд╡рд╛рд╕ рдмрджрд▓ рдЧрдпрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ - рд╣рдо рдЪрд┐рдкреНрд╕ рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рдПрдХ рдПрдиреАрдореЗрд╢рди рдкреЗрд╢ рдХрд░реЗрдВрдЧреЗред рдПрдиреАрдореЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдЬрдм рд╣рдо рдкреВрд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреА - рдкреНрд░реЛрд╕реЗрд╕рд░ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рд╕реЛрдЪреЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЧрдВрджрд╛ рдЖрдпрдд
рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдмрд╛рд░-рдмрд╛рд░ рдмрджрд▓рддреА рд╣реИред рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреВрд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреБрд░рд╛рдиреЗ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯрддрд╛ рд╕реЗ рдорд┐рдЯрд╛ рджреЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдбреНрд░рд╛ рдХрд░реЗрдВред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд╕реЗрд▓ рдХреЛ рд╕реНрдХреЗрдЪ рдХрд░рдирд╛ рдФрд░ рдирдП рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЪрд┐рдкреНрд╕ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕реНрдерд╛рди рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ)ред
var Tile = atom.Class({ [...] redraw: function () { this.libcanvas.ctx .clearRect( this.lastPositionRectangle ) .clearRect( this.field.emptyRectangle ); this.draw() }, [...] })
рддреЛ рдЕрдм рд╣рдо рдЪрд┐рдк redraw рдХреЛрдб рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдлреНрд░реЗрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪрд┐рдк рдЖрдВрджреЛрд▓рди рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛:
var Tile = atom.Class({ [...] move: function (point) {
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд╕реНрд╡рдд: рд░рд┐рдбрд░рд┐рдВрдЧ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдРрд╕рд╛ рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд┐рдк рдХреЛ рд╣рд┐рд▓рдиреЗ рдкрд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ:
var Tile = atom.Class({ [...] move: function (point) {
рдЕрдм рд╣рд░ рдЪрд░рдг рдХреЛ рдХреИрдирд╡рд╛рд╕ рд░рд┐рдбреНрд░рд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд┐рдХрдиреА рдПрдиреАрдореЗрд╢рди рдФрд░ рд▓рдЧрднрдЧ рдореБрдлреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣реИ, рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдмрдлрд░рд┐рдВрдЧ
рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рдХреИрдирд╡рд╛рд╕ рд░рд┐рдбрд░рд┐рдВрдЧ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд░реА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рдЖрдк рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ (рдХрд╛рд░реНрдпрдХреНрд░рдо) == 'рд╕рд┐рд╕реНрдЯрдо рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛'рд╣рдо рдЗрд╕ рдХрд╖реНрдЯрдкреНрд░рдж рдЧрд▓рддрдлрд╣рдореА рдХреЛ рдмрдлрд░ рдореЗрдВ рдЪрд┐рдк рдХреЛ рдЖрд░реЗрдЦрд┐рдд рдХрд░рдХреЗ рдареАрдХ рдХрд░реЗрдВрдЧреЗред рдПрдХ рдирдпрд╛ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдХреИрдирд╡рд╕ рдмрдирд╛рдПрдВ, рдЙрд╕рдореЗрдВ рдПрдХ рдЪрд┐рдк рд▓рдЧрд╛рдПрдВ рдФрд░ рдлрд┐рд░ рднрд╛рд░реА рдлрдВрдХреНрд╢рдВрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмреБрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЦреБрдж рд╣реА рдХреИрдирд╡рд╛рд╕ рдХреЛ рдбреНрд░рд╛ рдХрд░реЗрдВред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП
atom.Class.Mutators.Generators рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛
рд╣реВрдВ - рдПрдХ рдмрд╛рд░ рдПрдХ рд╡рд╕реНрддреБ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХреИрд╢ рд╕реЗ рд▓реЗрдирд╛ред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╣реИ рдЬреЛ рдПрдХ рдЪрд┐рдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
var Tile = atom.Class({ [...] draw: function () { this.callHardDrawFunctions( this.libcanvas.ctx ); } [...] })
рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдореЗрдВ рдмрджрд▓реЗрдВ:
var Tile = atom.Class({ [...] Generators: { buffer: function () { var buffer = LibCanvas.buffer( this.shape, true ); this.callHardDrawFunctions( buffer.ctx ); return buffer; } }, draw: function () { this.libcanvas.ctx.drawImage({ image: this.buffer, draw : this.shape }); } [...] })
рд╣рд╛рдВ, рдпрд╣ рдереЛрдбрд╝рд╛ рдХрдо рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди, рджреВрд╕рд░реА рдУрд░, рд╣рдо рд▓рдХреНрд╖реНрдп рддрдХ рдкрд╣реБрдВрдЪ рдЧрдП, рд╣рдорд╛рд░реЗ рд╕реНрдкреЙрдЯ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдмрд╣реБрдд рддреЗрдЬ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
рдмрдлрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ
рдмрдлрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдмрд╛рджрдирд┐рд╖реНрдХрд░реНрд╖
рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░
рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ )