рд╕реБрдкреНрд░рднрд╛рдд, Habrред
рдЕрд╡рдХрд╛рд╢ рдХреЗ рд╕рдордп, рдореИрдВ рдПрдХ рдирдП 2d рдЧреЗрдо рдЗрдВрдЬрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рдеред рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо "рдЖрджрд░реНрд╢" рдЗрдВрдЬрди рдкрд░ 2-3 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦреЗрд▓ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдпрд╛рдиреА рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рдпрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрдВрдЬрди рдЙрд╕рдХреЗ рдХреЛрдб рдХреЗ рддрд╣рдд рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкрд╣рд▓рд╛ рдЧреЗрдо рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЯреЗрд╕реНрдЯ рдирд╛рдо рдЯреЗрд░рд░рд┐рд╕реНрдЯ рд╡рд┐рди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред
рд╡рд┐рд╡рд░рдг:
рднреАрдбрд╝ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рднрд╛рдЧреЛ, рдмрд┐рдЫрд╛рдиреЗ рдФрд░ рдмрдо рд╡рд┐рд╕реНрдлреЛрдЯред

рджреВрд╕рд░рд╛ рдЧреЗрдо рдореИрдЪ 3 рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ

рдореИрдВ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдХреЛрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд▓реЗрдпрд░ рдХреЗ рд▓рд┐рдП "рдЖрджрд░реНрд╢" рдХреЛрдб рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
start.js:
window.onload = init function init(){
рдЦреИрд░, рдЦрд┐рд▓рд╛рдбрд╝реА .js рдХреЛрдб
function PlayerObject(vec2){
рдЯреЗрдХ рдореИрдВ рдЖрдкрдХреЗ "рдЖрджрд░реНрд╢" рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЖрдк рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЫрджреНрдо рдЖрджрд░реНрд╢ рдХреЛрдб рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ)
рдореИрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдиреЛрдЯреНрд╕ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЕрдЧрд▓реЗ рдУрдХреЗ рдкрд░:
github
github.com/DrNemo/just2d рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб
рдЬрдм рддрдХ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдЖрдк рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП just2d.v.0.0.1 рд╕реНрдХреЗрдЪ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ)
рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд▓ рд░рд╛рдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдпрд╛, рдЬреЛрд░ рд╕реЗ рдордд рдорд╛рд░реЛ)
UP1:
рдореЗрд░реА рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рд╕реЗ рдЬрдЯрд┐рд▓ рддрдХ рдЬрд╛рдиреЗ рдХреА рд╣реИ, рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рддрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА
рдиреНрдпреВрдирддрдо рдШреЛрд╖рд┐рдд:
рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ - рдЦрд┐рдбрд╝рдХреА рд╕реЗ рдмрд╛рд╣рд░ рдХрдЯреМрддреА, рдЖрдк рдЕрдкрдиреЗ рдЖрдХрд╛рд░ рдФрд░ рдмрджрд▓рд╛рд╡ рджреЛрдиреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рджреГрд╢реНрдп рд╡рд╕реНрддреБрдПрдВ - рджреГрд╢реНрдп рдХреЗ рдмрдЪреНрдЪреЗ, рдпреЗ рдЦреЗрд▓ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдпрдВ, рдкрд░реЗрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдордирдорд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛
рдШрдЯрдирд╛рдУрдВ:
рдХрд╛рд░реНрдп рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░
eventClick, eventDblClick, eventHover, eventKeyX - рд╕реНрдкрд╖реНрдЯ
EventCollision - рдПрдХ рд╣реА рдореБрдЦреМрдЯрд╛ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡
collisionFlagBottom, collisionFlagLeft - рдЖрджрд┐ред рд╕рд╛рдЗрдб рдЯрдХреНрдХрд░ рдЭрдВрдбреЗ
рд╕рд░рд▓ рднреМрддрд┐рдХреА
рдпрджрд┐ рдЕрдХреНрд╖рдо рд╣реИ рддреЛ gravitati = рдирдпрд╛ Vec2 (1, 0) рдпрд╛ рдЧрд▓рдд рд╣реИ
рдпрджрд┐ рдЖрдк рдИрд╡реЗрдВрдЯ рдкреБрди: рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдИрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
рдЧреБрдг рднреА
рд╕рдХреНрд╖рдо, рджреГрд╢реНрдпрдорд╛рди
UP2:
рд╡рд┐рд╖рдп рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ
рд╢реИрд▓реА рдореЗрдВ рдЬрд╛рд░реА
рд░рдЦреВрдВрдЧрд╛ 4web.ru/category/just2d