рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рддрдХрдиреАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛:
- рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди
- рдмрд╣реБрднреБрдЬ рдмрд┐рдВрджреБ рдЧреМрдг
рдФрд░ рдЦреЗрд▓ "рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣" рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди
рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╡рд╕реНрддреБ / рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдПрдХ рдЖрдпрдд рдореЗрдВ рдЕрдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд▓рдВрдмрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдореВрд▓ рд╡рд╕реНрддреБ рдХреЗ рдЖрдпрд╛рдо рд╣реИрдВред рдЯрдХрд░рд╛рд╡ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдореЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдЦреЛрдЬрдирд╛ рдкрд╣рд▓рд╛ рдЪрд░рдг рд╣реИред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЯрдХреНрдХрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
function MacroCollision(obj1,obj2){ var XColl=false; var YColl=false; if ((obj1.x + obj1.width >= obj2.x) && (obj1.x <= obj2.x + obj2.width)) XColl = true; if ((obj1.y + obj1.height >= obj2.y) && (obj1.y <= obj2.y + obj2.height)) YColl = true; if (XColl&YColl){return true;} return false; }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрдХрд░рд╛рд╡ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдкрд░ рдЖрдпрддреЛрдВ рдХреЗ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреЗ рдЪреМрд░рд╛рд╣реЗ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЬрдм рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рд╣реЛрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЧрд▓рддред
рдмрд╣реБрднреБрдЬ рдмрд┐рдВрджреБ рдЧреМрдг
рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдЬреИрд╕реЗ рдЦреЗрд▓ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдПрдХ рдЕрдирд┐рдпрдорд┐рдд рдмрд╣реБрднреБрдЬ (рдмрд╣реБрднреБрдЬ) рд╣реИред рдкреНрд▓реЗрдпрд░ рдХреА рдмреБрд▓реЗрдЯ рдПрдХ рд╕рд░реНрдХрд▓ рд╣реИред рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдФрд░ рдмреБрд▓реЗрдЯ рдХреЗ рддрд░рд╛рдЬреВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдмрд┐рдВрджреБ рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реБрдП, рдмреБрд▓реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдПрдХ рдмрд┐рдВрджреБ рдмрд╣реБрднреБрдЬ рдХрд╛ рд╣реИред
function pointInPoly(polyCords, pointX, pointY) { var i, j, c = 0; for (i = 0, j = polyCords.length - 1; i < polyCords.length; j = i++) { if (((polyCords[i][1] > pointY) != (polyCords[j][1] > pointY)) && (pointX < (polyCords[j][0] - polyCords[i][0]) * (pointY - polyCords[i][1]) / (polyCords[j][1] - polyCords[i][1]) + polyCords[i][0])) { c = !c; } } return c; }
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ - рдмрд╣реБрднреБрдЬ рдХреЗ рдХреЛрдиреЗ рдХреА рдПрдХ рд╕рд░рдгреА рдФрд░ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди
рдпрд╣рд╛рдВ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдмреБрд▓реЗрдЯ рдХреА рдЯрдХреНрдХрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧрдгрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╢реБрд░реВ рдореЗрдВ рдЖрдпрд╛рдореЛрдВ рдХреЗ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдлрд┐рд░ рдмрд╣реБрднреБрдЬ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмрд┐рдВрджреБред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
Bullet = function(x,y) {
рдХреНрдпрд╛ рд╣реБрдЖ
рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ , рдФрд░
рдпрд╣рд╛рдБ рдПрдХ рдХрд╛рдо рдХрд░ рдЙрджрд╛рд╣рд░рдгред WSAD + рд╕реНрдерд╛рди рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ, рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рдПрдХ рдХреНрд╖реБрджреНрд░рдЧреНрд░рд╣ рдЬреЛрдбрд╝реЗрдВред
рдЕрджреНрдпрддрди: рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред
