рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдХреЗ рдмрдЬрд╛рдпред
рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдкреНрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдЙрдирдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рджреВ рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдФрд░ рдореЛрд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдкреВрд░реЗ рдЬреАрд╡рди рдореЗрдВ рдореИрдВрдиреЗ рджрд░реНрдЬрдиреЛрдВ рдЦреЗрд▓ рдлрд┐рд░ рд╕реЗ рдЦреЗрд▓реЗ рд╣реИрдВ, рдЕрдиреБрднрд╡реА рд╡реЛрд▓реНрдлреЗрдВрд╕реНрдЯреАрди рдФрд░ рдбреНрдпреВрди 2 рд╕реЗ рдЖрдзреБрдирд┐рдХ рдмреНрд▓реЙрдХрдмрд╕реНрдЯрд░реНрд╕ рддрдХред рдФрд░ рдЕрдм, рдЕрдЧрд▓реЗ рд╣рд┐рдЯ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдФрд░ рдЕрдВрддрд┐рдо рд╡реАрдбрд┐рдпреЛ рдФрд░ рдХреНрд░реЗрдбрд┐рдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕реЛрдЪрд╛ "рдХреНрдпрд╛ рд╣реЛрдЧрд╛? .." рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЪрдордХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдЧрд░ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЦреЗрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдмреЗрд╢рдХ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдПрдП-рд╢реАрд░реНрд╖рдХ рдЕрдХреЗрд▓реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпреЗ рдХрд╛рдо рдХреЗ рд╡рд░реНрд╖ рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╕рдбрд╝рдХ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛? рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрдордЬреЛрд░ рд╣реВрдВ, рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдХреЙрдлреА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реИрдиреНрдп рд╡рд┐рднрд╛рдЧреЛрдВ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рди рдХрд┐ рдореЗрд░реА рддрд░рд╣ред
рдмрд╕ рдЕрдЧрд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдПрдХ рдЧрдВрднреАрд░ рдардВрдб рдХреЗ рджреМрд░рд╛рди, рдореИрдВ Ant.Karlov рдХреЗ рдЧреЗрдореЛрд▓реЙрдЬрд┐рд╕реНрдЯ рдореЗрдВ Box2d рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рднрд░ рдЖрдпрд╛ред рдкрдврд╝рдиреЗ рдФрд░ рд╕рдкрдиреЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЬреЗрдПрд╕ рдкреЛрд░реНрдЯ рдХреЛ рдкрд╛рдпрд╛, рдФрд░ рдХреБрдЫ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдореЗрд░рд╛, рдореБрдЭреЗ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдЬреЛрд░ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдо рд░реЛрдЧ, рдЕрдзрд┐рдХ рдХрд╛рдоред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗред CPAP ^ _ ^ рдореЗрдВ рдПрдВрдЧреНрд░реА рдмрд░реНрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░реНрд╖ рджреЗрд╡рддрд╛рдУрдВ рдиреЗ рдореБрдЭреЗ рдорд╛рдл рдХрд░ рджрд┐рдпрд╛
рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдФрд░ рдЕрд╕реНрд╡реАрдХрд░рдг
рдиреЛрдЯреЛрдВ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдПрдВрдЧреНрд░реА рдмрд░реНрдбреНрд╕ рдХрд╛ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдХреНрд▓реЛрди рдмрдирд╛рдирд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 3 рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рдерд┐рдпрд╛рд░ рдФрд░ 5 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрддрд░ рд╣реИрдВред рд╣рд╛рдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЖрдЙрдЯ рдореЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдВрдЧреНрд░реА рдмрд░реНрдбреНрд╕ рд╕реНрд╡рдпрдВ рдХрдо рд╕реЗ рдХрдо 3 рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреЛ рдЫреВрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ - рднреМрддрд┐рдХ рдЗрдВрдЬрди рд╣реА, рд░рд╛рд╕реНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╡рд╛рд▓рд╛ рдХрд╛рдо, рд╕реНрддрд░реАрдп рд╕рдВрдкрд╛рджрдХ (рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА), рдореЗрдиреВ / рдХреНрд░реЗрдбрд┐рдЯ / рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдзреНрд╡рдирд┐ рдФрд░ рд╕рдВрдЧреАрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдзреНрдпрдХрд╛рд░реА, рдФрд░ рдПрдХ рд╣рдЬрд╛рд░ рдЕрдиреНрдп рдЫреЛрдЯреА рдЪреАрдЬреЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдЦреБрдж рдЕрднреА рддрдХ рдпрд╣ рд╕рдм рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореИрдВ рдпрд╣рд╛рдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдФрд░ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдФрд░ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд╣реБрдЖред
рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджреАрд░реНрдШрд╡реГрддреНрдд рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЗ рдХреБрдЫ рд▓рдВрдмреЗ рдЯреБрдХрдбрд╝реЗ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдзреАрд░ рд╣реИрдВ, рдиреЛрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реИред
рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ - рдореИрдВ рдПрдХ рдкреЗрд╢реЗрд╡рд░ рдЧреЗрдо рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реВрдВ, рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реАрд▓рд┐рдВрдЧ рд░реЗрдХ рдХреА рдорджрдж рд╕реЗ рдФрд░ рдмрдбрд╝реЗ рдзрдХреНрдХреЛрдВ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрдИ рдХрджрдо рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдореИрдВ рдХрд╣реАрдВ рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реВрдВ - рд╕рдЦреНрддреА рд╕реЗ рдиреНрдпрд╛рдп рди рдХрд░реЗрдВ рдФрд░ рдЯрдорд╛рдЯрд░ рди рдлреЗрдВрдХреЗрдВред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ, рдЙрд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реНрддрд░ рд╕реЗ рднрд░рдирд╛ рдФрд░ рдкрд╣рд▓реЗ "рдкрдХреНрд╖реА" рдХреЛ "рд╕реБрдЕрд░" рдореЗрдВ рдлреЗрдВрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ред рдЪреВрдБрдХрд┐ рд╣рдордиреЗ рдПрдВрдЧреНрд░реА рдмрд░реНрдбреНрд╕ рдореЗрдВ рдЫрджреНрдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рднреМрддрд┐рдХреА рджреЗрдЦреА рд╣реИ, рд╣рдореЗрдВ рдПрдХ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЯрдХрд░рд╛рд╡ рдФрд░ рдЦреЗрд▓ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрдХреНрд╖рд┐рдпреЛрдВ, рд╕реВрдЕрд░реЛрдВ рдФрд░ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реЛрдЧрд╛ред
рдореИрдВрдиреЗ рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмреЙрдХреНрд╕ 2 рдбреА рдХреЛ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛:
1. рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХрд╛рдлреА рдордЬрдмреВрдд рдлрд╝реНрд▓реИрд╢ рд╕рдореБрджрд╛рдп рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдорджрдж рдпрд╛ рд╕рд▓рд╛рд╣ рдорд╛рдВрдЧ рд╕рдХрддреЗ рд╣реИрдВред
2. Box2dWeb рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ рд╡рд╣ рдкреНрд░рддреНрдпрдХреНрд╖ Box2dAS рдкреЛрд░реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╕рдВрджрд░реНрдн API рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИред
3. рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдордВрдЧреЛрд▓рд┐рдпрд╛рдИ рд╡рд┐рд░реЛрдзреА рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░реВрдиреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
4. рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕реИрдХрдбрд╝реЛрдВ рд╕рдлрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЗрдВрдЬрди рд╣реЛрддрд╛ рд╣реИ - рдЕрдм рд╣рдореЗрдВ рд▓рдЧрднрдЧ рд╣рд░ рдЙрд╕ рдЪреАрдЬрд╝ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рдЫреЛрдЯреА рдФрд░ рдЖрд░рд╛рдорджрд╛рдпрдХ рджреБрдирд┐рдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рд╢рд╛рдпрдж рд╣рдо рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ HTML-рд░рд┐рдХреНрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕реЗ рдХреИрдирд╡рд╛рд╕ рдкреЗрдЬ рдкрд░ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдЧреЗрдо рдХрд╛ рдЖрдзрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред
< html >
< рд╕рд┐рд░ >
< рд╢реАрд░реНрд╖рдХ > рдЧреБрд╕реНрд╕реЗ рдореЗрдВ рдкрдХреНрд╖рд┐рдпреЛрдВ WRYYYYYYYY !!!! < / рд╢реАрд░реНрд╖рдХ >
< script src = "/js/jquery.js" рдкреНрд░рдХрд╛рд░ = "рдЯреЗрдХреНрд╕реНрдЯ / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" > < / script >
< script src = "/js/box2d.js" type = "text / javascript" > < / script >
< рд╕реНрдХреНрд░рд┐рдкреНрдЯ >
$ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝)ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА (рдлрд╝рдВрдХреНрд╢рди) ({
рдирдпрд╛ рдЦреЗрд▓ ();
});
< / script >
< рд╢рд░реАрд░ >
<рдХреИрдирд╡рд╛рд╕ рдЖрдИрдбреА = "рдХреИрдирд╡рд╛рд╕" рдЪреМрдбрд╝рд╛рдИ = "800" рдКрдВрдЪрд╛рдИ = "600" рд╢реИрд▓реА = " рдкреГрд╖реНрдарднреВрдорд┐- рд░рдВрдЧ : # 333333 ; "> </ рдХреИрдирд╡рд╛рд╕>
< / рд╢рд░реАрд░ >
< script type = "text / javascript" >
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ () {
...
}
< / script >
< / html >
рдорд╣рд╛рди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдЧреЗ рдХреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдПрдХ рднреМрддрд┐рдХ рджреБрдирд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ Box2d рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣реА рд╣рдо рдХрд░реЗрдВрдЧреЗред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
// рдореИрдВрдиреЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рддреБрд░рдВрдд рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛
const PIG = 1 ;
const BIRD = 2 ;
const PLANK = 3 ;
// "рдлреЗрдВрдХ" рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ рдЬрд┐рд╕ рдзреНрд╡рдЬ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
isMouseDown = false ;
// рд╡рд░реНрдЪреБрдЕрд▓ рдЧреБрд▓реЗрд▓ рдХреЗ рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдХрд╛ рдЧрдо
mouseJoint = false ;
// рдлреЗрдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╢рд░реАрд░ = рдЕрд╕рддреНрдп ;
рдорд╛рдЙрд╕рдкреЛрдЬрд┐рд╢рди = { x : 0 , y : 0 } ;
// рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиред
// рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдПрдХ рдЕрд╕рдВрдЧрдд рдФрд░ рдЕрдкрдардиреАрдп рдХреЛрдб рдХреЗ рдХрд┐рд▓реЛрдореАрдЯрд░ рдХреЛ рдЕрд╡рд░реБрджреНрдз рди рдХрд░реЗрдВред
// рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдореВрд▓реНрдп рдореИрдВ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
b2AABB = Box2Dред рдЯрдХрд░рд╛рд╡ рдХреАред b2AABB ;
b2World = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред b2World ;
b2Vec2 = Box2Dред рдЖрдоред рдорда ред b2Vec2 ;
b2DebugDraw = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред b2DebugDraw ;
b2Body = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред рдмреА 2 рдмреЙрдбреА ;
b2BodyDef = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред b2BodyDef ;
b2FixtureDef = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред b2FixtureDef ;
b2PolygonShape = Box2Dред рдЯрдХрд░рд╛рд╡ рдХреАред рдЖрдХреГрддрд┐рдпрд╛рдБ ред b2PolygonShape ;
b2CircleShape = Box2Dред рдЯрдХрд░рд╛рд╡ рдХреАред рдЖрдХреГрддрд┐рдпрд╛рдБ ред b2CircleShape ;
b2MouseJointDef = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред рдЬреЛрдбрд╝реЛрдВ рдореЗрдВ ред b2MouseJointDef ;
b2ContactListener = Box2Dред рдЧрддрд┐рд╢реАрд▓рддрд╛ ред b2ContactListener ;
// рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдмрдирд╛рдПрдВред
рджреБрдирд┐рдпрд╛ = рдирдпрд╛ b2World (
рдирдпрд╛ b2Vec2 ( 0 , 10 ) // рдЧреНрд░реЗрд╡рд┐рдЯреА рд╡реЗрдХреНрдЯрд░ред
, рд╕рдЪреНрдЪрд╛ // doleep flagред
) ;
init = function ( ) { // рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
...
}
init ( ) ;
}
рдореИрдВ рдЕрдкрдиреА рджреБрдирд┐рдпрд╛ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдкрд╣рд▓рд╛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╕рджрд┐рд╢ рд╣реИред Box2d рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдЖрд╕рдкрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рднреМрддрд┐рдХреА рдореЙрдбрд▓, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рд╣рдо рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рдИ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 10 рдЖрднрд╛рд╕реА рдореАрдЯрд░ рдХреЗ рдмрд░рд╛рдмрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рддреНрд╡рд░рдг рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░: doSleep, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рддрддреНрд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛ред
рдореИрдВ рдпрд╣ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Box2d рдКрдкрд░реА рдмрд╛рдПрдБ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЧреЗрдо рдореЗрдВ рд╕реНрдХреНрд░реАрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдмреЙрдХреНрд╕ 2 рдбреА рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдФрд░ рд╕реЗрдЯрдЯреВрдЯрдЖрдЙрдЯ рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдХрд╣рд╛ рдЬрд╛рдПред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
...
init = function ( ) {
рдЦрд┐рдбрд╝рдХреАред рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ ( рдЕрдкрдбреЗрдЯ , 1000/60 ) ;
}
рдЕрджреНрдпрддрди = рдлрд╝рдВрдХреНрд╢рди ( ) {
рджреБрдирд┐рдпрд╛ред рдЪрд░рдг ( 1/60 , 10 , 10 ) ;
рджреБрдирд┐рдпрд╛ред рдбреНрд░рд╛рдбреЗрдмреБрдЧрдбреЗрдЯрд╛ ( ) ;
рджреБрдирд┐рдпрд╛ред ClearForces ( ) ;
}
}
рдЕрджреНрдпрддрди () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣рдо, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреБрдирд┐рдпрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 60 рдлрд╝реНрд░реЗрдо, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрддрд┐ рдФрд░ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рддрд┐ 1 рдШрдбрд╝реА рдЪрдХреНрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрд╕рд╛рдзрд┐рдд рд╕рдВрдЦреНрдпрд╛ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╕рдордЧреНрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рд╣рдо рдЦреБрдж рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рджрдлрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдХрдореА рдХреЗ рд╕рд╛рде, рд╣рдо рдорд╛рдк рд╕реЗ рдорд╛рдк рддрдХ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрд▓рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред 10 - рдХрд╛рдлреА рд╕рдордЭрджрд╛рд░ рдФрд╕рддред
рдЦреИрд░, рдЕрдм, рдпрд╣ рд╣рдорд╛рд░реЗ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдЗрдВрдЬрди рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рддрд╛рдХрд┐ рд╣рдо рдЗрд╕ рдкрд░ рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
...
init = function ( ) {
рдмрд┐рд▓реНрдбрд╡рд░реНрд▓реНрдб ( ) ;
initDraw ( ) ;
рдЦрд┐рдбрд╝рдХреАред рд╕реЗрдЯрдЗрдВрдЯрд░рд╡рд▓ ( рдЕрдкрдбреЗрдЯ , 1000/60 ) ;
}
initDraw = function ( ) {
debugDraw = new b2DebugDraw ( ) ;
debugDrawред рд╕реЗрдЯрд╕реНрдкреНрд░рд╛рдЗрдЯ ( рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред GetElementById ( "рдХреИрдирд╡рд╛рд╕" ) ред GetContext ( "2d" ) ) ;
debugDrawред рд╕реЗрдЯрдбреНрд░рд╛рд╕реНрдХреЗрд▓ ( 30.0 ) ;
debugDrawред SetFillAlpha ( 0.5 ) ;
debugDrawред рд╕реЗрдЯрд▓рд╛рдЗрдирд┐рдЯреА ( 1.0 ) ;
debugDrawред рд╕реЗрдЯрдлреНрд▓реИрдЧреНрд╕ ( b2DebugDrawред E_shapeBit | b2DebugDrawред E_jointBit ) ;
рджреБрдирд┐рдпрд╛ред рд╕реЗрдЯрдбрдмрдЧрдбреНрд░реЙ ( рдбреАрдмрдЧрдбреНрд░реЙ ) ;
}
buildWorld = function ( ) {
fixDef = new b2FixtureDef ( ) ;
fixDefред рдШрдирддреНрд╡ = 1.0 ;
fixDefред рдШрд░реНрд╖рдг = 0.5 ;
fixDefред рдкреБрдирд░реНрд╕реНрдерд╛рдкрди = 0.2 ;
}
}
рд╣рд╛рдВ, рдпрд╣ рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рдбреАрдмрдЧ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ - рдЕрд░реНрдерд╛рдд рдмрдирд╛рд╡рдЯ рдФрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рд╣рдорд╛рд░реА рднреМрддрд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬреИрд╕рд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдбреЗрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдбреНрд░рд╛рдбрдмрдЧрдбреЗрдЯ () рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рд╣рдо b2DebugDraw () рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рд╣рдо рдкреИрдорд╛рдиреЗ, рдкрд╛рд░рднрд╛рд╕реА рдФрд░ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ, b2DebugDraw () рдкрд░ рд╕рдм рдХреБрдЫ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ Box2d рдкрд┐рдХреНрд╕рд▓ рдкрд░ рдЧреНрд░рд┐рдб рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореАрдЯрд░, рдХрд┐рд▓реЛрдЧреНрд░рд╛рдо, рд╕реЗрдХрдВрдб рдФрд░ рдЗрд╕реА рд░реВрдкрд╛рдВрддрд░рдг рд╣реИрдВред рдЕрдм рдореИрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдмрд╕ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдмреЙрдХреНрд╕ 2 рдбреА рджреГрд╢реНрдп рдореЗрдВ 1 рдореАрдЯрд░ рд╕реНрдХреНрд░реАрди рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд▓рдЧрднрдЧ 30 рдкрд┐рдХреНрд╕рд▓ рд╣реИред
рдареАрдХ рд╣реИ, рдореИрдВ рдлрд┐рдХреНрд╕рдбрд┐рдл () рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ - рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рднреМрддрд┐рдХреА рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдпрд╣ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╣реИ рдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдкрд░реНрдХ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рднреМрддрд┐рдХреА рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдШрд░реНрд╖рдг, рдШрдирддреНрд╡ рдФрд░ рд▓реЛрдЪ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ред
рдбреНрд░рд╛рдЗрдВрдЧ
рд╣рдо рдЕрдкрдиреЗ рдкреЛрд╖рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рдХрд░реАрдм рдЖрдП - рдЦреЗрд▓ рдХреЗ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЙрдирдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ init () рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдЕрдкрдиреЗ рд╕реНрддрд░ рдХреЛ "рд╕реВрдЕрд░реЛрдВ" рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╡рд┐рдирд╛рд╢реА рдмреЛрд░реНрдбреЛрдВ рдФрд░ рд╣рд▓рдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрддреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
...
рдкрд┐рдЧрдбрд╛рдЯрд╛ = рдлрд╝рдВрдХреНрд╢рди ( ) { } ;
PigDataред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк ред GetType = function ( ) {
рд╡рд╛рдкрд╕реА PIG ;
}
рдкреНрд▓рд╛рдВрдХрдбрд╛рдЯрд╛ = рдлрд╝рдВрдХреНрд╢рди ( ) { }
... // GetType () PigData.GetType () рдХреЗ рд╕рдорд╛рди
buildWorld = function ( ) {
...
bodyDef = new b2BodyDef ( ) ;
bodyDefред type = b2Body b2_staticBody ;
fixDefред рдЖрдХрд╛рд░ = рдирдпрд╛ b2PolygonShape ;
fixDefред рдЖрдХрд╛рд░ ред рд╕реЗрдЯреИрд╕рдмреЙрдХреНрд╕ ( 20 , 2 ) ;
bodyDefред рд╕реНрдерд┐рддрд┐ ред рд╕реЗрдЯ ( 10 , 600/30 + 1.8 ) ;
рджреБрдирд┐рдпрд╛ред CreateBody ( bodyDef ) ред CreateFixture ( FixDef ) ;
... // 3 рдФрд░ рджреАрд╡рд╛рд░реЗрдВ
рдХреИрдирд╡рд╛рд╕рдкреЛрдЬрд┐рд╢рди = $ ( "#canvas" ) ред рдСрдлрд╕реЗрдЯ ( ) ;
}
buildLevel = function ( ) {
createPlank ( 22 , 20 , 0.25 , 2 )
... // 8 рдФрд░ рдмреЛрд░реНрдб рдмрдирд╛рдирд╛
createPig ( 20 , 11 , 0.5 ) ;
... // 2 рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реВрдЕрд░
}
createPlank = function ( x , y , рдЪреМрдбрд╝рд╛рдИ , рдКрдВрдЪрд╛рдИ ) {
bodyDefред type = b2Body b2_dynamicBody ;
fixDefред рдЖрдХрд╛рд░ = рдирдпрд╛ b2PolygonShape ;
fixDefред рдЖрдХрд╛рд░ ред SetAsBox (
рдЪреМрдбрд╝рд╛рдИ
, рдКрдБрдЪрд╛рдИ
) ;
bodyDefред рд╕реНрдерд┐рддрд┐ ред x = x ;
bodyDefред рд╕реНрдерд┐рддрд┐ ред y = y ;
рддрдЦрд╝реНрдд = рд╕рдВрд╕рд╛рд░ред CreateBody ( bodyDef ) ;
рддрдЦрд╝реНрддред рд╕реЗрдЯрдпреВрд╕реЗрд░рдбрд╛рдЯрд╛ ( рдирдпрд╛ рдкреНрд▓рд╛рдВрдХрдбрд╛рдЯрд╛ ( ) ) ;
рддрдЦрд╝реНрддред CreateFixture ( FixDef ) ;
}
createPig = function ( x , y , r ) {
... // рдПрдХ рд╡рд┐рдзрд┐ CreatePlank рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ CircleShape рдФрд░ PigData () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
}
}
Box2d рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рднреМрддрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕реАрдзреЗ рдЧреЗрдо рд▓реЙрдЬрд┐рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдордиреЗ 2 рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝реЗ - рдкрд┐рдЧрдбрд╛рдЯрд╛ рдФрд░ рдкреНрд▓реИрдВрдХрдбрд╛рдЯрд╛, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╣рдо рдЯрдХрд░рд╛рд╡ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдмреЙрдбреАрдбреЗрдлрд╝ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдЬреНрдпрд╛рдорд┐рддреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╣реИ (FixtureDef рдЗрд╕рдХреЗ рднреМрддрд┐рдХ рдЧреБрдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ)ред рдпрд╣ рдмреЙрдбреАрдбреЗрдл рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдмреНрд▓реЙрдХ рдХреА рдЧрдгрдирд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдПрдЧреА, рдЪрд╛рд╣реЗ рд╡рд╣ рд╕реНрдерд┐рд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд╣реЛред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмреЙрдХреНрд╕ 2 рдбреА рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ, 3 рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ - рд╕реНрдереИрддрд┐рдХ, рдЕрд░реНрдерд╛рддред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд┐рд░ рд╡рд╕реНрддреБрдУрдВ (рдбрд┐рдмрдЧреНрдпреВрд╡реНрдпреВ - рд╣рд░реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ), рдЧрддрд┐рд╢реАрд▓ - рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдПрдВ, рдФрд░ рдЧрддрд┐рдЬ - рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд╕реНрддреБрдПрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрдереИрддрд┐рдХ рд╕рдбрд╝рдХ рд╣реИ, рдЧрддрд┐рд╢реАрд▓ рдХрд╛рд░ рдФрд░ рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд▓рдВрдмрди рд╣реИ, рдФрд░ рдЧрддрд┐рдЬ рдХрд╛рд░ рдХрд╛ рдЗрдВрдЬрди рд╣реИред
рд╡рд╣рд╛рдВ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЖрдХрд╛рд░, рдЗрд╕рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЖрдпрд╛рдореЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдореАрдЯрд░ рдореЗрдВ рд╣реИ (рдУрд╣, рдореИрдВрдиреЗ рдХрдм рддрдХ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЖрдХрд╛рд░ рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВ!)ред
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рд╣рдо рдирдИ рдбреНрд░рд╛рд╡реЗрд▓ () рд╡рд┐рдзрд┐ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдмреЛрд░реНрдбреЛрдВ рдФрд░ рд╕реВрдЕрд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреВрд░реЗ рд╕реНрддрд░ рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЧреБрд▓реЗрд▓
рдХрд╣рд╛рдиреА рдХрд╛ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ред рдЕрдм рдЖрдЗрдП рдПрдХ рдЧреБрд▓реЗрд▓ рдХрд╛ рдПрдХ рдордирдорд╛рдирд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рд╕реВрдЕрд░реЛрдВ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдорд╛рдЙрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
...
init = function ( ) {
bindMouse ( ) ;
...
}
bindMouse = function ( ) {
$ ( рджрд╕реНрддрд╛рд╡реЗрдЬ ) ред рдореВрд╕рдбрд╛рдЙрди ( рдлрд╝рдВрдХреНрд╢рди ( рдИ ) {
isMouseDown = true ;
рд╕рдВрднрд╛рд▓ ( рдИ ) ;
$ ( рджрд╕реНрддрд╛рд╡реЗрдЬ ) ред рдмрд╛рдЗрдВрдб ( " рдореВрд╕рдореЛрд╡ " , { } , рд╣реИрдВрдбрд▓рд╣рд╛рдЙрд╕ ) ;
} ;
$ ( рджрд╕реНрддрд╛рд╡реЗрдЬ ) ред рдорд╛рдЙрд╕рдЕрдк ( рдлрд╝рдВрдХреНрд╢рди ( рдИ ) {
isMouseDown = false ;
$ ( рджрд╕реНрддрд╛рд╡реЗрдЬ ) ред unbind ( "рдореВрд╕рдорд╡" ) ;
} ;
}
рд╕рдВрднрд╛рд▓ = рдХрд╛рд░реНрдп ( рдИ ) {
рдорд╛рдЙрд╕рдПрдХреНрд╕ = ( рдИред рдХреНрд▓рд╛рдЗрдВрдЯрдПрдХреНрд╕ - рдХреИрдирд╡рд╕рдкреЙрдЗрдВрдЯред рдмрд╛рдПрдВ ) / 30 ;
рдорд╛рдЙрд╕рд╡рд╛рдИ = ( рдИред рдХреНрд▓рд╛рдЗрдВрдЯрд╡рд╛рдИ - рдХреИрдирд╡рд╛рд╕рдкреЛрдЬрд┐рд╢рдиред рд╢реАрд░реНрд╖ ) / 30 ;
} ;
рдЕрджреНрдпрддрди = рдлрд╝рдВрдХреНрд╢рди ( ) {
рдЕрдЧрд░ ( isMouseDown ) {
рдЕрдЧрд░ ( ( рд╢рд░реАрд░ ) ) {
mousePosition = { x : mouseX , y : mouseY } ;
createPig ( mouseX , mouseY , 0.40 ) ;
body = getBodyAtMouse ( ) ;
md = new b2MouseJointDef ( ) ;
mdред bodyA = рд╕рдВрд╕рд╛рд░ред GetGroundBody ( ) ;
mdред bodyB = рд╢рд░реАрд░ ;
mdред рд▓рдХреНрд╖реНрдп ред рд╕реЗрдЯ ( рдорд╛рдЙрд╕рдкреЛрдЬрд┐рд╢рдиред рдПрдХреНрд╕ , рдорд╛рдЙрд╕рдкреЛрдЬрд┐рд╢рдиред рд╡рд╛рдИ ) ;
mdред collideConnected = true ;
mdред maxForce = 300.0 * рд╢рд░реАрд░ред рдЧреЗрдЯрдореИрд╕ ( ) ;
mouseJoint = рджреБрдирд┐рдпрд╛ред CreateJoint ( md ) ;
рд╢рд░реАрд░ред рд╕реЗрдЯрдЖрд╡реЗрдХ ( рд╕рдЪреНрдЪрд╛ ) ;
}
рд╢рд░реАрд░ред рд╕реЗрдЯрдкреЛрдЬрд┐рд╢рди ( рдирдпрд╛ b2Vec2 ( mouseX , mouseY ) ) ;
}
рдЕрдЧрд░ ( mouseJoint рдФрд░& ! isMouseDown ) {
mouseX = mousePositionред x ;
mouseY = рдорд╛рдЙрд╕рдкрд╛рдЗрдкред рдп ;
рдЕрдЧрд░ ( getBodyAtMouse ( ) )
рджреБрдирд┐рдпрд╛ред рдирд╖реНрдЯ рдХрд░рдирд╛ ( рдорд╛рдЙрд╕рдЬреЙрдЗрдВрдЯ ) ;
mouseJoint = null ;
рд╢рд░реАрд░ = рдЕрд╕рддреНрдп ;
}
}
...
}
}
рддреЛ рд╣рдордиреЗ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ? рдкрд╣рд▓рд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореВрд╕рдбрд╛рдЙрди рдФрд░ рдорд╛рдЙрд╕рдЕрдк рдорд╛рдЙрд╕ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдиреЗ рд╣рдорд╛рд░реЗ рдЫреЛрдЯреЗ рд╕реЗ рдЦреЗрд▓ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдЕрдм, рдЬрдм рдЖрдк рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдореЗрдВ рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, isMouseDown рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдареАрдХ рд╣реИ, рдЬрдм рдЖрдк рдорд╛рдЙрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ mouseX рдФрд░ mouseY рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗред рджреВрд╕рд░реА рдЪреАрдЬ рдЬреЛ рд╣рдордиреЗ рд╣рд╛рд╕рд┐рд▓ рдХреА рдереА, рдЬрдм рдорд╛рдЙрд╕ рдХреЛ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдбрд╛рдпрдирд╛рдорд┐рдХ рдирд┐рд░реНрдорд╛рдг рдерд╛, рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдореИрдВрдиреЗ рдЕрдкрдбреЗрдЯ () рд╡рд┐рдзрд┐ рдореЗрдВ рдбрд╛рд▓рд╛ред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рд╣рдо рддреБрд░рдВрдд рдПрдХ рдирдпрд╛ "рдкрдХреНрд╖реА" рдмрдирд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдерд╛, рднрд▓реЗ рд╣реА рдпрд╣ рд╣рдорд╛рд░реЗ рджреЗрд╢ рдореЗрдВ "рд╕реБрдЕрд░" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╣реИ - рдпрд╣ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк - GetBodyAtMouse () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рддреБрд░рдВрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрдХреНрд╖реА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреЙрдбреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдорд╛рдЙрд╕рдЬреЙрдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕реЗ рд╣рдорд╛рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╛рдиреА рдпрд╣ рдорд╛рдЙрд╕рдЬреЙрдЗрдВрдЯ рд╣реИ рдЬреЛ рд╕реНрд▓рд┐рдВрдЧрд╢реЙрдЯ рдХреЗ рд░рдмрд░ рдмреИрдВрдб рдХреЛ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдкрдХреНрд╖реА рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред рдЙрд╕реА рдЬрдЧрд╣ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд▓рдЪреАрд▓реЗ рдпреБрдЧреНрдорди рдФрд░ рдЕрдзрд┐рдХрддрдо рдмрд▓ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рджрд┐рд╢рд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдирдпрд╛ рд╕рд░реНрдХрд▓ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд▓реВрд╢ рд▓рд┐рдЧрд╛рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдорд╛рдЙрд╕ рдмрдЯрди рдирд╣реАрдВ рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдмрдВрдбрд▓ рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдирд┐рдЪреЛрдбрд╝ ...
рдпрджрд┐ рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, isMouseDown рдлреНрд▓реИрдЧ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рдЧреЗрдЯрдмреЙрдХреНрд╕реАрдПрдЯрдорд╛рдЙрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╢рд░реАрд░ рд╕рдВрд▓рдЧреНрди рд▓рд┐рдЧрд╛рдореЗрдВрдЯ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдкрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓рд┐рдЧрд╛рдореЗрдВрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдмрджрд▓реЗ рдореЗрдВ, рд╢рд░реАрд░, рдЕрд░реНрдерд╛рддреНред рд╣рдорд╛рд░реЗ рдкрдХреНрд╖реА-рд╕реБрдЕрд░ рдХреЛ рдЙрди рд╕рднреА рд╕реВрдЕрд░реЛрдВ рдХреЗ рдбрд░ рд╕реЗ рдореБрдХреНрдд рдЙрдбрд╝рд╛рди рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ ^ _ ^ рдирд╣реАрдВ рдЙрдбрд╝рддреЗ рд╣реИрдВред
GetBodyAtMouse () рдкрджреНрдзрддрд┐ рдкрд░, рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рдлрд╝рдВрдХреНрд╢рди getBodyAtMouse ( ) {
mousePVec = new b2Vec2 ( mouseX , mouseY ) ;
var aabb = new b2AABB ( ) ;
aabbред рдирд┐рдЪрд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ ред рд╕реЗрдЯ ( рдорд╛рдЙрд╕рдПрдХреНрд╕ - 0.001 , рдорд╛рдЙрд╕рд╡рд╛рдИ - 0.001 ) ;
aabbред рдКрдкрд░реА рднрд╛рдЧ ред рд╕реЗрдЯ ( рдорд╛рдЙрд╕рдПрдХреНрд╕ + 0.001 , рдорд╛рдЙрд╕рд╡рд╛рдИ + 0.001 ) ;
рдЪрдпрдирд┐рддрдмреЙрдбреА = рдЕрд╢рдХреНрдд ;
рджреБрдирд┐рдпрд╛ред QueryAABB ( getBodyCallback , aabb ) ;
рдЪрдпрдирд┐рдд рдЪрдпрди рдХрд░реЗрдВ ;
}
getBodyCallback = рдлрд╝рдВрдХреНрд╢рди ( рд╕реНрдерд┐рд░рддрд╛ ) {
рдЕрдЧрд░ ( рд╕реНрдерд┐рд░рддрд╛ред GetBody ) ( ) GetType ( ) ! = b2Bodyред b2_staticroody {
рдЕрдЧрд░ ( рд╕реНрдерд┐рд░рддрд╛ред GetShape ) ( ) ред TestPoint ( рд╕реНрдерд┐рд░рддрд╛ред GetBody ( ) ред GetTransform ( ) , mousePVec ) ) {
рдЪрдпрдирд┐рддрдмреЙрдбреА = рд╕реНрдерд┐рд░рддрд╛ред рдЧреЗрдЯрдмреЙрдбреА ( ) ;
рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
}
}
рд╕рдЪ рд▓реМрдЯрдирд╛ ;
}
рдпрд╣рд╛рдВ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдорд╛рдЙрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡реЗрдХреНрдЯрд░ рдмрдирд╛рдирд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдЙрд╕ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рддрд╣рдд рдмреЙрдХреНрд╕ 2 рдбреА рд╕рдордиреНрд╡рдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ getBodyCallback рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдорд╛рдЙрд╕ рд╢рд░реАрд░ рдХреЗ рдиреАрдЪреЗ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдХрд┐рд╕реА рднреА рд╢рд░реАрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рдЪрдпрдирд┐рддрдмреЙрдбреА рд╕реЗрдЯ рдХрд░реЗрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рдЧреИрд░-рддреБрдЪреНрдЫ рд╣реИред
рд╕реВрдЕрд░реЛрдВ
рдЗрд╕ рднрд╛рдЧ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдорд╛рдирдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рдиреАрд░рд╕ рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдЯрдХреНрдХрд░реЛрдВ рдХреА рд╕рд╣реА рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреА рдереАред рдЕрдм рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ? рдмрд╕ рдереЛрдбрд╝рд╛ - рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рд╕реВрдЕрд░, рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рдд, рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рд╕рдВрдкрд░реНрдХ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдпрд╛рд╕ рд╕реЗ рд╕рдВрдкрд░реНрдХ рд╕реЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдорд╛рдирдХ рд╕рдВрдкрд░реНрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреБрд▓ рдЖрд╡реЗрдЧ рдХреА рдЧрд┐рдирддреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╣рдорд╛рд░реЗ рд╕реБрдЕрд░ рдХреЛ рдЯрдХреНрдХрд░ рдХреЗ рджреМрд░рд╛рди рдорд┐рд▓реА рдереАред
рдЦреЗрд▓ = рд╕рдорд╛рд░реЛрд╣ ( ) {
...
GameContactListener = function ( ) { } ;
GameContactListenerред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк = b2ContactListenerред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк ;
GameContactListenerред рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк ред PostSolve = рдлрд╝рдВрдХреНрд╢рди ( рд╕рдВрдкрд░реНрдХ , рдЖрд╡реЗрдЧ ) {
рдЕрдЧрд░ ( рд╕рдВрдкрд░реНрдХред GetFixtureB ( ) ред GetBody ( ) ред GetUserData ( ) ) {
var BangedBody = рд╕рдВрдкрд░реНрдХред GetFixtureB ( ) ред рдЧреЗрдЯрдмреЙрдбреА ( ) ;
рдЕрдЧрд░ ( рд╕рдВрдкрд░реНрдХред GetFixtureB ( ) ред GetBody ( ) ред GetUserData ( ) ред GetType ( ) == PIG ) {
var imp = 0 ;
( рдЖрд╡реЗрдЧ рдореЗрдВред normalImpulses ) {
imp = imp + рдЖрд╡реЗрдЧред normalImpulses [ a ] ;
}
рдЕрдЧрд░ ( imp > 3 ) {
destroyedBodiesред рдзрдХреНрдХрд╛ ( рдмрд╛рдВрдЧрдбрдмреЙрдбреА ) ;
BangedBodyред рджреГрд╢реНрдпрдорд╛рди = рдЭреВрдард╛ ;
рдмрд╛рдВрдЧрдбрдмреЙрдбреА = рдЕрд╢рдХреНрдд ;
}
}
}
var contactListener = new GameContactListener ( ) ;
рджреБрдирд┐рдпрд╛ред рд╕реЗрдЯрдХреЙрдиреНрдЯреИрдХреНрдЯрд▓рд┐рд╕реНрдЯрдирд░ ( рдХрд╛рдВрдЯреЗрдХреНрдЯрд▓рд┐рд╕реНрдЯ ) ;
рдЕрджреНрдпрддрди = рдлрд╝рдВрдХреНрд╢рди ( ) {
...
рдмрд░рдмрд╛рджреА = рдЕрд░реНрд░реЗ ( ) ;
...
рд╕рдВрд╕рд╛рд░ ред ClearForces ( ) ; // рдорд╣рддреНрд╡рдкреВрд░реНрдг!
рдЬрдмрдХрд┐ ( рдирд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд▓рдВрдмрд╛рдИ > 0 ) {
рджреБрдирд┐рдпрд╛ред рдирд╖реНрдЯрдмреЛрдзреА ( рдмрд░рдмрд╛рджреА ред рдкрд╛рд▓реА ) ( ) ;
}
}
}
рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдо рдпрд╣рд╛рдВ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ рдорд╛рдирдХ рдХрд╛рдВрдЯреЗрдХреНрдЯрд▓рд┐рд╕реНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ред рдпрд╣ рд╕рднреА рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд╕реНрддреБ рд╣реИред рд╡рд╣рд╛рдВ, рд╣рдорд╛рд░реА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо UserData () рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрддреБрд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдордореНрдкреНрд╕ рдХреЛ рдорд╛рд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо рдЙрд╕ рдЧрддрд┐ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдЗрд╕реЗ рд╣рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдпреБрджреНрдз рдХреЗ рдореИрджрд╛рди рд╕реЗ рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЕрдкрдиреЗ рд╕рд┐рд░ рдкрд░ рд░рд╛рдЦ рдЫрд┐рдбрд╝рдХрддрд╛ рд╣реВрдВ - рдореИрдВрдиреЗ рдЖрд╡реЗрдЧ рдХреА рддрд╛рдХрдд рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЙрдард╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реЗрдЧ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддрд╛рдХрдд рдирд╣реАрдВ рдереАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЗрд╕рд▓рд┐рдП рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ, рдЯрдХрд░рд╛рд╡ рднреА рддрдм рддрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рджреБрдирд┐рдпрд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИ (рд╢рд╛рдпрдж рдЖрдкрдиреЗ рдлреНрд▓реИрд╢ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдХреБрдЫ рдЧреЗрдореЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рдПрдХ рд╕реНрддрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдлрд░реНрд╢ рд╕реНрд▓реИрдм рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рдЪрд┐рдХреЛрдЯреА? рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреНрдпрд╛ рдпрд╣ рд╣реИ? рдпрд╣рд╛рдВ рднреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрд╛рдХрд┐ рд╕реВрдЕрд░ рдРрд╕реЗ рдЯрдХрд░рд╛рд╡реЛрдВ рдореЗрдВ рдЧрд╛рдпрдм рди рд╣реЛрдВ - рд╣рдореЗрдВ рдХреБрд▓ рдЖрд╡реЗрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ, ClearForces () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдПрд░реЗ рдХреЛ рдкрдЪрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╕рднреА рд╕реВрдЕрд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдмрд╣рди рджреНрд╡рд╛рд░рд╛ рдмреЗрд░рд╣рдореА рд╕реЗ рдкреАрдЯрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕ рд╕реНрдерд╛рди рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ - рдЖрдк рддрдм рддрдХ рдПрдХ рднреА рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗ, рдЬрдм рддрдХ рдХрд┐ рднреМрддрд┐рдХреА рдХреА рдЧрдгрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд░реА рд╣реИред рдпреЗ Box2d рдХреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВред рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЧрдгрд┐рдд рд╕реЗ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА, рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реВрдЕрд░ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рдХреЗ рдмрд╛рдж рдлрдЯ рдЧрдпрд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдлреВрдлрд╛, рдХрд┐рдиреНрдирд░ рдЬреИрд╕реА рдЪрд╛рджрд░ рдЦрд╝рддреНрдоред рдореИрдВ рдХреЛрдб рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ - рдПрдХ
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд▓рд┐рдВрдХ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред
рдЦреИрд░, рдкрд░рд┐рдгрд╛рдореА рдХрд╛рд░реНрдп рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдБ рд╣реИрдВ - рдЖрдк рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рдПрдХ рдкрдХреНрд╖реА рд▓реЙрдиреНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓ рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд╣реИ, рд╕реБрдЕрд░ рдХреА рдореМрдд рдХреЗ рдмрд╛рдж рдХреЛрдИ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдмрдЧ рд╣реИ рдЬрдм рдПрдХ рдкрдХреНрд╖реА рдХреЛ рдЪреМрд░рд╛рд╣реЗ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрдВрдбрд▓ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдкрдХреНрд╖реА рдПрдХ рдкрдХреНрд╖реА рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╕реБрдЕрд░ рд╣реИ! рдлрд┐рд░ рднреА, рдкрд╣рд▓реА рдкрд░рдд рдХреЛ рдХрд╛рдлреА рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЦреЗрд▓ рдпрд╛рдВрддреНрд░рд┐рдХреА рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЫреЛрдЯреА рдЪреАрдЬреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреА рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ - рдпреБрдЧреНрдорди рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗ рддрд░реНрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪреВрдВрдХрд┐ рдЕрдм рдЖрдк рдкрдХреНрд╖реА рдХреЛ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╕реНрддрд░ рдХреЗ рд╕рдВрдкрд╛рджрдХ рдХреЛ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рд╣реИред
рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдПрдХ рдмрд╛рд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ ^ _ ^ рдХрд░реВрдВрдЧрд╛
рдЙрдкрдпреЛрдЧреА рдХреА рд╕реВрдЪреА
code.google.com/p/box2dweb - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП Box2dWeb, Box2dAS рдкреЛрд░реНрдЯред
www.box2dflash.org/docs/2.1a/reference - рдПрдВрдЯреАрдореЙрдиреНрдЧ рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрднред
docs.google.com/View?id=dfh3v794_41gtqs6wf4&pli=1 - рд░реВрд╕реА рдореЗрдВ рдПрдХ рдХрд╛рдлреА рд╕рдВрдкреВрд░реНрдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ред VirtualMaestro рдФрд░ рдЙрдирдХреЗ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - flashnotes.ruред Box2d рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рд╣реИрдВред
www.emanueleferonato.com - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдФрд░ Indie Box2d рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдмреНрд▓реЙрдЧред
ant-karlov.ru - рдорд╛рд╕реНрдЯрд░рдорд╛рдЗрдВрдб рдХрд╛ рдмреНрд▓реЙрдЧ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА ^ _ ^