рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдмреНрд░рджрд░реНрд╕ рдХреНрд▓реЛрди рдЧреЗрдо рд▓рд┐рдЦрдирд╛ (рднрд╛рдЧ 1)

рдЫрд╡рд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдмреНрд░рджрд░реНрд╕ рдкрд╣рд▓рд╛ рдЧреЗрдо рдерд╛ рдЬрд┐рд╕рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдЧреЗрдордкреНрд▓реЗ рдХреЛ рдореЛрд╣рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
рдирд┐рдВрдЯреЗрдВрдбреЛ рдХреЗ рд╕рд╣рдЬ рдПрд╕рдПрдордмреА рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рд╢рд╛рдирджрд╛рд░ рд╕реНрддрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдиреЗ рдЖрдкрдХреЛ рдПрдХ рдкреНрд▓рдВрдмрд░ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рдереА рдХреЗ рдЖрднрд╛рд╕реА рдмреНрд░рд╣реНрдорд╛рдВрдб рдореЗрдВ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдПред

рдпрд╛рдХреВрдм рдЧреБрдВрдбрд░рд╕рди рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдЕрджреНрднреБрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ , рд╣рдо рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдмрдирд╛рдПрдВрдЧреЗ; рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореБрдЦреНрдп рдкрд╛рддреНрд░ рдХреЛрдЕрд▓рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЛ "рд╕реБрдкрд░ рдХреЛрдПрд▓рд┐рдпреЛ рдмреНрд░рджрд░реНрд╕!" рдХрд╣реЗрдВрдЧреЗ;]
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрдврд╝рддреЗ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдлрд░реНрд╢ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рдЬрдбрд╝реА рдмреВрдЯрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдХреЗ рджрд┐рд▓ - рднреМрддрд┐рдХ рдЗрдВрдЬрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЪреЗрддрд╛рд╡рдиреА! рдХрдЯ рдХреЗ рддрд╣рдд, рдЕрдиреВрджрд┐рдд рдкрд╛рда, рдЪрд┐рддреНрд░, рдХреЛрдб (рдЕрдиреБрд╡рд╛рджрд┐рдд рдирд╣реАрдВ рдХреЛрдб) рдХреА рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░рд╛рд╢рд┐ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб!

рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк Cocos2D рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд░реЗ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдХреБрдЫ рдкрд╛рдареЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ, рдЗрд╕реЗ рдПрдХреНрд╕рдХреЛрдб рдореЗрдВ рдЦреЛрд▓реЗрдВ, рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВред рдПрдореБрд▓реЗрдЯрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐

рдпрд╣ рд╕рд╣реА рд╣реИ - рд╕рд┐рд░реНрдл рдПрдХ рдЙрдмрд╛рдК рдЦрд╛рд▓реА рд╕реНрдХреНрд░реАрди! :] рд╣рдо рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░ рджреЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдЧрддрд┐ рдХрд░рддреЗ рд╣реИрдВ
рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЪрд┐рддреНрд░ рдФрд░ рдзреНрд╡рдирд┐рдпрд╛рдБ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝ рджреА рдЧрдИ рд╣реИрдВред рдЖрдЗрдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ:


рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ


рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░реНрд╕ рднреМрддрд┐рдХ рдЗрдВрдЬрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рднреМрддрд┐рдХ рдЗрдВрдЬрди рд▓рд┐рдЦреЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдЗрдВрдЬрди рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВ, рдФрд░ рдПрдХ рд╣реА Box2D рдпрд╛ Chipmink рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

  1. рд╡рд┐рд╕реНрддреГрдд рд╕реЗрдЯрд┐рдВрдЧред рдЬрд╝реЗрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЗрдВрдЬрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред
  2. рд╕рд╛рджрдЧреАред Box2D рдФрд░ рдЪрд┐рдкрдордВрдХ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдмрдбрд╝реЗ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рдВ, рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╣реЛрдВрдЧреЗред рдФрд░ рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ рдЗрдВрдЬрди рдЙрддрдирд╛ рд╣реА рдЦрд╛рдПрдЧрд╛ рдЬрд┐рддрдирд╛ рд╣рдо рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рднреМрддрд┐рдХреА рдЗрдВрдЬрди рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
рдЫрд╡рд┐
  1. рдпрд╣ рдЖрдВрджреЛрд▓рди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХрд╛ рдкрд╣рд▓рд╛ рдХрд╛рдо рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг, рдЖрдВрджреЛрд▓рди, рдХреВрдж рдФрд░ рдШрд░реНрд╖рдг рдХреЗ рд╡рд┐рд░реЛрдзреА рдмрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рд╣реИред
  2. рдЯрдХреНрдХрд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдХрд╛рд░реНрдп рд╕реНрддрд░ рдкрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдФрд░ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫрд▓рд╛рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рдКрдкрд░ рдХреА рдУрд░ рдмрд▓ рд╣рдорд╛рд░реЗ рдХреЛрдЖрд▓рд╛ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдмрд▓ рдХреВрдж рдХреЗ рдмрд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЧрддрд┐ рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдкрд░рд╡рд▓рдпрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рджреЗрддрд╛ рд╣реИред
рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдорджрдж рд╕реЗ, рд╣рдо рд╣рд░ рдмрд╛рд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рдлрд░реНрд╢ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдХреЛрдЖрд▓рд╛ рд╕реНрдкрд╛рдЗрдХреНрд╕ (ay!) рдкрд░ рдХрджрдо рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдХреЛрдЖрд▓рд╛ рдХреЛ рд░реЛрдХ рджреЗрдВрдЧреЗред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдПрдХ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдмрдирд╛рдирд╛


рднреМрддрд┐рдХ рдЗрдВрдЬрди рдореЗрдВ рдЬреЛ рд╣рдо рдмрдирд╛рдПрдВрдЧреЗ, рдХреЛрдЖрд▓рд╛ рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЪрд░ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЖрдВрджреЛрд▓рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ: рдЧрддрд┐, рддреНрд╡рд░рдг рдФрд░ рд╕реНрдерд┐рддрд┐ред рдЗрди рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

  1. рдХреНрдпрд╛ рдЫрд▓рд╛рдВрдЧ рдпрд╛ рдЧрддрд┐ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
  2. рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдПрдХ рдХреЛрдЖрд▓рд╛ рдкрд░ рдХреВрдж рдпрд╛ рдЖрдВрджреЛрд▓рди рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  3. рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЛрдЖрд▓рд╛ рдкрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд▓рд╛рдЧреВ рдХрд░реЗрдВред
  4. рдкрд░рд┐рдгрд╛рдореА рдХреЛрдЕрд▓рд╛ рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред
  5. рдХреЛрдЖрд▓рд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдЧрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
  6. рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХреЛрдЖрд▓рд╛ рдХреА рдЯрдХреНрдХрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
  7. рдпрджрд┐ рдЯрдХреНрдХрд░ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╛ рддреЛ рдХреЛрдЕрд▓рд╛ рдХреЛ рдЗрд╕ рдмрд╛рдзрд╛ рд╕реЗ рдЗрддрдиреА рджреВрд░реА рдкрд░ рд▓реЗ рдЬрд╛рдПрдВ рдХрд┐ рдЯрдХреНрдХрд░ рдЕрдм рди рд╣реЛ; рдпрд╛ рдЦрд░рд╛рдм рдХреЛрдПрд▓реЗ рдХреЛ рдиреБрдХрд╕рд╛рдиред
рдЫрд╡рд┐
рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╣рд░ рдЪрд░рдг рдореЗрдВ рдЗрди рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдЦреЗрд▓ рдореЗрдВ, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд▓рдЧрд╛рддрд╛рд░ рдХреЛрдЖрд▓рд╛ рдХреЛ рдлрд░реНрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреАрдЪреЗ рдФрд░ рдиреАрдЪреЗ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдпрд╣ рдлрд░реНрд╢ рдХреЗ рдКрдкрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЖрд▓рд╛ рдЬрдореАрди рдХреЛ рдЫреВрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдХреВрджрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреВрджрдиреЗ рд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рдПрдХ рдмрд╛рдзрд╛ рд╕реЗ рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрдХ 1-5 рдХреЛрдЖрд▓рд╛ рд╡рд╕реНрддреБ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреЛрдПрд▓реЗ рдХреЛ рдЕрдкрдиреЗ рдЪрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдХрд╛рдлреА рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдпрд╣ 6 рд╡реЗрдВ рдмрд┐рдВрджреБ рдкрд░ рдЖрддрд╛ рд╣реИ - рдЯрдХрд░рд╛рд╡реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ - рд╣рдореЗрдВ рд╕реНрддрд░ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ: рджреАрд╡рд╛рд░реЗрдВ, рдлрд░реНрд╢, рджреБрд╢реНрдорди рдФрд░ рдЕрдиреНрдп рдЦрддрд░реЗред GameLevelLayer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╣рд░ рдЪрд░рдг рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ CCLayer рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢рд╛рд░реАрд░рд┐рдХ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ рд╣рдо рдХреЛрдЖрд▓рд╛ рдХреЛ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрдд рдореЗрдВ рдХреЛрдЖрд▓рд╛ рджреАрд╡рд╛рд░ рдпрд╛ рдлрд░реНрд╢ рдХреЛ рдЫреВрдПрдЧрд╛ред рдФрд░ GameLevelLayer Koalu рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдПрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдмрд╛рд░-рдмрд╛рд░ - рдХрд┐ рдХреЛрдЕрд▓рд╛ рдХреЛ рдРрд╕рд╛ рд▓рдЧреЗрдЧрд╛ рдЬреИрд╕реЗ рд╡рд╣ рдХрдВрдк рд░рд╣рд╛ рд╣реИред (рд╕реБрдмрд╣ рдмрд╣реБрдд рдХреЙрдлреА, рдХреЛрд▓рд┐рдпреЛ?)
рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЛрдПрд▓реЗ рдХреЛ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреЛрдПрд▓реЗ рдХреЛ рдПрдХ рдирдпрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рд╡рд╛рдВрдЫрд┐рддрдкреЛрдЬрд┐рд╢рди рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдХреЛрдЖрд▓рд╛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред GameLevelLayer рдЬрд╛рдБрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдЖрд▓рд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╛рдВ, рддреЛ GameLevelLayer рдХреЛрдЕрд▓рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛ред
рдХреНрдпрд╛ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ? рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ!

рдбрд╛рдЙрдирд▓реЛрдб TMXTiledMap


рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрд▓ рдореИрдкреНрд╕ рдЬреИрд╕реЗ рдирдХреНрд╢реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБред
рдХреЗ рд╕реНрддрд░ рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рдЯрд╛рдЗрд▓ рдХрд┐рдП рдЧрдП рдорд╛рдирдЪрд┐рддреНрд░ рд╕рдВрдкрд╛рджрдХ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдиреЗ рдРрд╕рд╛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рдФрд░ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ Level1.tmx рдЦреЛрд▓реЗрдВред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦреЗрдВрдЧреЗ:

рдЫрд╡рд┐

рдпрджрд┐ рдЖрдк рд╕рд╛рдЗрдбрдмрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╣рдорд╛рд░реА рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рддреЗрдВ рд╣реИрдВ:


рдпрд╣ рдХреЛрдб рдХрд╛ рд╕рдордп рд╣реИ! GameLevelLayer.m рдЦреЛрд▓реЗрдВ рдФрд░ #import рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ, рд▓реЗрдХрд┐рди @implementation рд╕реЗ рдкрд╣рд▓реЗ:

 @interface GameLevelLayer() { CCTMXTiledMap *map; } @end 

рд╣рдордиреЗ рдЕрдкрдиреЗ рдкреНрд░рдзрд╛рди рд╡рд░реНрдЧ рдореЗрдВ рдЬрд╛рд▓реА рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CCTMXTiledMap рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд▓реЗрдпрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЕрдкрдиреЗ рд▓реЗрдпрд░ рдкрд░ рдореЗрд╖ рдореИрдк рдХреЛ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рд░рдЦреЗрдВрдЧреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд init рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ :

 CCLayerColor *blueSky = [[CCLayerColor alloc] initWithColor:ccc4(100, 100, 250, 255)]; [self addChild:blueSky]; map = [[CCTMXTiledMap alloc] initWithTMXFile:@"level1.tmx"]; [self addChild:map]; 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдиреАрд▓реЗ рдЖрдХрд╛рд╢ рдХреЗ рд░рдВрдЧреЛрдВ рдореЗрдВ рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ (CCLayerColor) рдХреЛ рдЬреЛрдбрд╝рд╛ред рдХреЛрдб рдХреА рдЕрдЧрд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдЪрд░ (CCTMXTiledMap) рдХреЛ рд▓реЛрдб рдХрд░ рд░рд╣реА рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд░рдд рдореЗрдВ рдЬреЛрдбрд╝ рд░рд╣реА рд╣реИрдВред

рдЕрдЧрд▓рд╛, PlayerLevelLayer.m рдореЗрдВ рд╣рдо Player.h рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ:

 #import "Player.h" 

GameLevelLayer.m рдореЗрдВ рдЕрднреА рднреА , @ interface рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рдореНрди рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:

 Player * player; 

рдЕрдЧрд▓рд╛, init рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЛрдЕрд▓рд╛ рдХреЛ рд╕реНрддрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 player = [[Player alloc] initWithFile:@"koalio_stand.png"]; player.position = ccp(100, 50); [map addChild:player z:15]; 

рдпрд╣ рдХреЛрдб рдХреЛрдЖрд▓рд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдореИрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирдХреНрд╢реЗ рдореЗрдВ рдХреЛрдЖрд▓рд╛ рд╡рд╕реНрддреБ рдХреНрдпреЛрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдмрдЬрд╛рдп рдЗрд╕реЗ рд╕реАрдзреЗ рдкрд░рдд рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ? рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╣рдо рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЖрд▓рд╛ рдХреЗ рд╕рд╛рдордиреЗ рдХреМрди рд╕реА рдкрд░рдд рд╣реЛрдЧреА, рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдХреМрди рд╕реА рдкрд░рдд рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдПрд▓рд╛ рдХреЛ рдХрд╛рд░реНрдб рдХреА рд╕рдВрддрд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдкрд░рдд рдХреЛ рдирд╣реАрдВред рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЖрд▓рд╛ рд╕рд╛рдордиреЗ рд╣реЛ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ 15. рдХрд╛ рдЬреЗрдб-рдСрд░реНрдбрд░ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдо рдирдХреНрд╢реЗ рдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдЖрд▓рд╛ рдЕрднреА рднреА рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ, рдЬреЛ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ, рди рдХрд┐ рдореБрдЦреНрдп рдкрд░рдд рдХреЗред
рдорд╣рд╛рди, рдЪрд▓реЛ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ! рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рддреЗрдВ рджреЗрдЦрдиреА рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐

рдПрдХ рдЦреЗрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрд▓рд┐рдпреЛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреА рдЕрдирджреЗрдЦреА рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рд╕рдордп рдЗрд╕реЗ рд╕реНрд╡рд░реНрдЧ рд╕реЗ рдкреГрдереНрд╡реА рддрдХ рдХрдо рдХрд░рдиреЗ рдХрд╛ рд╣реИ - рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:]

рдХреЛрд▓рд┐рдпреЛ рдЧреНрд░реЗрд╡рд┐рдЯреА рд╕рд┐рдЪреБрдПрд╢рди

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

рднрдЧрд╡рд╛рди рдХреЛ рдмрдЬрд╛рдУ

рдЫрд╡рд┐
рд╣рдорд╛рд░реЗ рдЗрдВрдЬрди рдХреЗ рддрд░реНрдХ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдмрд▓ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдкрд░ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рддрдм рддрдХ рдЪрд▓рддрд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рджреВрд╕рд░рд╛ рдмрд▓ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рди рд╣реЛ рдЬрд╛рдПред рдЬрдм рдХреЛрд▓рд┐рдпреЛ рдХреВрджрддрд╛ рд╣реИ, рддрдм рддрдХ рд╡рд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддреНрд╡рд░рдг рдХреЗ рд╕рд╛рде рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЕрдкрдиреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдПрдХ рдмрд╛рдзрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред рдЬрдм рд╣рдо рдХреЛрд▓рд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рддрдм рддрдХ рд╣рд┐рд▓рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рд╣рдо рдЙрд╕ рдкрд░ рдЖрдВрджреЛрд▓рди рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддреЗ; рдЬрдм рддрдХ рд╡рд╣ рд░реЛрдХреЗрдЧрд╛ рддрдм рддрдХ рдХреЛрд▓рд┐рдпреЛ рдкрд░ рдШрд░реНрд╖рдг рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдПрдХ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░рд▓ рдЦреЗрд▓ рддрд░реНрдХ рдЬрдЯрд┐рд▓ рд╢рд╛рд░реАрд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ: рдмрд░реНрдл рдХрд╛ рдлрд░реНрд╢ рдпрд╛ рдЪрдЯреНрдЯрд╛рди рд╕реЗ рдЧрд┐рд░рдирд╛ред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЙрдбрд▓ рдЦреЗрд▓ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШреЛрдбрд╝реЗ рдХреА рдРрд╕реА рдЪрд╛рд▓ рд╕реЗ рд╣рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреА рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рд╡рд╕реНрддреБ рдмрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рд╕реЗ рднреМрддрд┐рдХреА рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдЧреАред
рдХрднреА-рдХрднреА рд╣рдореЗрдВ рднрдЧрд╡рд╛рди рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ! :]

рдкреГрдереНрд╡реА рдХреЗ рдирд┐рдпрдо: CGPoints рдФрд░ Forces


рдЪрд▓реЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


рдПрдХ рднреМрддрд┐рдХ рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрд▓ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЧрддрд┐ рддрдХ рдЧрддрд┐ рджреЗрдЧрд╛, рдФрд░ рд╡рд╕реНрддреБ рдЙрд╕ рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝реЗрдЧреА рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдорд╛рд░реНрдЧ рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рди рдХрд░ рджреЗред рдЧрддрд┐ рдПрдХ рдРрд╕рд╛ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рдПрдХ рдлреНрд░реЗрдо рд╕реЗ рдЕрдЧрд▓реЗ рддрдХ рдирдП рд╕рдХреНрд░рд┐рдп рдмрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред
рд╣рдо CGPoint рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди рдЪреАрдЬреЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВрдЧреЗ: рдЧрддрд┐, рдмрд▓ / рддреНрд╡рд░рдг рдФрд░ рд╕реНрдерд┐рддрд┐ред CGPoint рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВ:

  1. рд╡реЗ 2 рдбреА рд╣реИрдВред рдЧрддрд┐, рд╢рдХреНрддрд┐ / рддреНрд╡рд░рдг рдФрд░ рд╕реНрдерд┐рддрд┐ рдПрдХ 2D рдЧреЗрдо рдХреЗ рд▓рд┐рдП рд╕рднреА 2D рдорд╛рди рд╣реИрдВред рдЖрдк рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗрд╡рд▓ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЦреЗрд▓ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдкрд░, рд╣рдореЗрдВ рддреБрд░рдВрдд рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреА рджрд┐рд╢рд╛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╕реБрдкрд░ рдорд╛рд░рд┐рдпреЛ рдЧреИрд▓реЗрдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛ!
  2. рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред CGPoint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо Cocos2D рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо ccpAdd (рдЬреЛрдбрд╝), ccpSub (рдШрдЯрд╛рд╡) рдФрд░ ccpMult (рдкреНрд░рдХрд╛рд░ рдлрд╝реНрд▓реЛрдЯ рдХреЗ рдПрдХ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛!

рд╣рдорд╛рд░реЗ рдХреЛрдЖрд▓рд╛ рдХреА рд╡рд╕реНрддреБ рдореЗрдВ рдПрдХ рдЪрд░ рдЧрддрд┐ рд╣реЛрдЧреА, рдЬреЛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг, рдЧрддрд┐, рдХреВрдж, рдШрд░реНрд╖рдг рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рдмрд▓реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЬрд╛рдПрдЧреАред
рдЦреЗрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ, рд╣рдо рд╕рднреА рдмрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ, рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рдХреЛрдЖрд▓рд╛ рдХреА рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдирддреАрдЬрддрди, рд╣рдо рдПрдХ рдирдИ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рд╣рдо рдЗрд╕реЗ рдлреНрд░реЗрдо рджрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдо рдХрд░ рджреЗрдВрдЧреЗред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдХреЛрдЖрд▓рд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рднреНрд░рд╛рдордХ рд╣реИ, рддреЛ рдПрдХ рдЕрджреНрднреБрдд рд╡реНрдпрдХреНрддрд┐, рдбреИрдирд┐рдпрд▓ рд╢рд┐рдлрдореИрди рдиреЗ рд╡реИрдХреНрдЯрд░ рдкрд░ рдПрдХ рдорд╣рд╛рди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд▓рд┐рдЦрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдмрд▓реЛрдВ рдХреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрддрд╛рддрд╛ рд╣реИред
рдЪрд▓реЛ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд░рди рд▓реВрдк рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдмрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдирд┐рдореНрди рд╢рд░реНрдд рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ GameLevelLayer.m рдлрд╝рд╛рдЗрд▓ рдХреЗ init рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 [self schedule:@selector(update:)]; 

рдЕрдЧрд▓рд╛, рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

 - (void)update:(ccTime)dt { [player update:dt]; } 

рдЕрдЧрд▓рд╛, Player.h рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦреЗрдВ:

 #import <Foundation/Foundation.h> #import "cocos2d.h" @interface Player : CCSprite @property (nonatomic, assign) CGPoint velocity; - (void)update:(ccTime)dt; @end 

рдирд┐рдореНрди рдХреЛрдб рдХреЛ Player.m рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
 #import "Player.h" @implementation Player @synthesize velocity = _velocity; // 1 - (id)initWithFile:(NSString *)filename { if (self = [super initWithFile:filename]) { self.velocity = ccp(0.0, 0.0); } return self; } - (void)update:(ccTime)dt { // 2 CGPoint gravity = ccp(0.0, -450.0); // 3 CGPoint gravityStep = ccpMult(gravity, dt); // 4 self.velocity = ccpAdd(self.velocity, gravityStep); CGPoint stepVelocity = ccpMult(self.velocity, dt); // 5 self.position = ccpAdd(self.position, stepVelocity); } @end 

рдЪрд▓рд┐рдП рд╕реНрдЯреЗрдк рдмрд╛рдИ рд╕реНрдЯреЗрдк рдЙрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ

  1. рдпрд╣рд╛рдВ рд╣рдордиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ init рдореЗрдердб рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕реНрдкреАрдб рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ред
  2. рдпрд╣рд╛рдБ рд╣рдордиреЗ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╕рджрд┐рд╢ рдХрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИред рд╣рд░ рд╕реЗрдХрдВрдб, рд╣рдо рдХреЛрдЖрд▓рд╛ 450 рдкрд┐рдХреНрд╕рд▓ рдбрд╛рдЙрди рдХреА рдЧрддрд┐ рдХреЛ рддреЗрдЬ рдХрд░рддреЗ рд╣реИрдВред
  3. рдпрд╣рд╛рдБ рд╣рдордиреЗ рдлреНрд░реЗрдо рджрд░ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╡реЗрдХреНрдЯрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ccpMult рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред ccpMult рдХреЛ рдПрдХ рдлреНрд▓реЛрдЯ рдФрд░ CGPoint рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ CGPoint рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  4. рдпрд╣рд╛рдВ, рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреА рдЧрдгрдирд╛ рдХреА, рд╣рдо рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
  5. рдЕрдВрдд рдореЗрдВ, рдЬрдм рд╣рдордиреЗ рдПрдХ рдХрджрдо рдХреА рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреА, рддреЛ рд╣рдо рдХреЛрдЕрд▓рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ccpAdd рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдмрдзрд╛рдИ! рд╣рдо рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВ! рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдВ!

рдЫрд╡рд┐

Oooo - рдХреЛрд▓рд┐рдпреЛ рдлрд░реНрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрд┐рд░рддрд╛ рд╣реИ! рдЪрд▓реЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред

рд░рд╛рдд рдореЗрдВ рдХрд┐рдХ - рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛


рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐рд╕реА рднреА рднреМрддрд┐рдХ рдЗрдВрдЬрди рдХреА рдиреАрдВрд╡ рд╣реИред 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдлреНрд░реЗрдо рдХреЗ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рд╕реЗ рд▓реЗрдХрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░ рдХреЛ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХреЛрдЖрд▓рд╛ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП TMXTileMap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕реАрдзреЗ рдХреЛрдЖрд▓рд╛ рдХреЛ рдШреЗрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдИрдУрдПрд╕ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдпрд╣ рдЬрд╛рдВрдЪреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдЖрд▓рд╛ рдХрд╛ рдЫрд┐рдбрд╝рдХрд╛рд╡ рдХрд┐рд╕реА рд╕реЗрд▓ рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
CGRectIntersectsRect рдФрд░ CGRectIntersection рдлрд╝рдВрдХреНрд╢рди рдЗрди рдЪреЗрдХреЛрдВ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред CGRectIntersectsRect рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рджреЛ рдЖрдпрддреЗрдВ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддреА рд╣реИрдВ, рдФрд░ CGRectIntersection рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдЖрдпрдд рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдЕрд▓рд╛ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдлреНрд░реЗрдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдмрд╛рдЙрдВрдбрд┐рдВрдЧрдмреЙрдХреНрд╕ рдирд╛рдордХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╛рдЙрдВрдбрд┐рдВрдЧрдмреЙрдХреНрд╕ рдореЗрдВ рд╣реИ рддреЛ рдлреНрд░реЗрдо рдХреЛ рдХреНрдпреЛрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ? рдмрдирд╛рд╡рдЯ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд╛рд░рджрд░реНрд╢реА рдХрд┐рдирд╛рд░реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЯрдХрд░рд╛рд╡ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдХрднреА-рдХрднреА рд╣рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ (рдкрд╛рд░рджрд░реНрд╢реА рдирд╣реАрдВ) рдХреЗ рдЖрд╕рдкрд╛рд╕ рднреА рдХреБрдЫ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЬрдм рдорд╛рд░рд┐рдпреЛ рдПрдХ рджреАрд╡рд╛рд░ рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╡рд╣ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдЫреВрддрд╛ рд╣реИ, рдпрд╛ рдЙрд╕рдХреА рдирд╛рдХ рдПрдХ рдмреНрд▓реЙрдХ рдореЗрдВ рдереЛрдбрд╝реА рджрдлрди рд╣реИ?
рдЖрдЗрдпреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВред Player.h рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 -(CGRect)collisionBoundingBox; 

рдФрд░ Player.m рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 - (CGRect)collisionBoundingBox { return CGRectInset(self.boundingBox, 2, 0); } 

CGRectInset рджреВрд╕рд░реЗ рдФрд░ рддреАрд╕рд░реЗ рддрд░реНрдХ рд╕реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ CGRect рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдЯрдХреНрдХрд░ рдлреНрд░реЗрдо рдХреА рдЪреМрдбрд╝рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рддрд░рдл рдЫрд╣ рдкрд┐рдХреНрд╕реЗрд▓ рдЫреЛрдЯреЗ - рддреАрди рдкрд┐рдХреНрд╕реЗрд▓ рд╣реЛрдЧреАред

рд╡рдЬрди рдЙрдард╛рдирд╛


рд╡рдЬрди рдЙрдард╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред ("рдЕрд░реЗ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореБрдЭреЗ рдЕрднреА рд╡рд╕рд╛ рдХрд╣рд╛ рд╣реИ?" рдХреЛрд▓рд┐рдпреЛ рдХрд╣рддреЗ рд╣реИрдВ)ред
рд╣рдо рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ GameLevelLayer рдореЗрдВ рдХрдИ рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:


рд╣рдо рджреЛ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред


GameLevelLayer.m рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 - (CGPoint)tileCoordForPosition:(CGPoint)position { float x = floor(position.x / map.tileSize.width); float levelHeightInPixels = map.mapSize.height * map.tileSize.height; float y = floor((levelHeightInPixels - position.y) / map.tileSize.height); return ccp(x, y); } - (CGRect)tileRectFromTileCoords:(CGPoint)tileCoords { float levelHeightInPixels = map.mapSize.height * map.tileSize.height; CGPoint origin = ccp(tileCoords.x * map.tileSize.width, levelHeightInPixels - ((tileCoords.y + 1) * map.tileSize.height)); return CGRectMake(origin.x, origin.y, map.tileSize.width, map.tileSize.height); } 

рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рд╕реНрдерд┐рдд рд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕реЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рд╕реЗрд▓ рдЖрдХрд╛рд░ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдКрдВрдЪрд╛рдИ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЙрд▓рдЯрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Cocos2D / OpenGL рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдорд╛рдирдХ - рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ?
рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░рддреА рд╣реИред рдпрд╣ рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдХреЛрд╢рд┐рдХрд╛ рдХреЗ рдЧреБрдгрди рдХреЛ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдХреЛрд╢рд┐рдХрд╛ рдХреЗ CGRect рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ, рд╣рдореЗрдВ рдКрдВрдЪрд╛рдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдореЗрдВ рдКрдВрдЪрд╛рдИ рдХреЗ y-рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдПрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрд╛рдж рд░рдЦреЗрдВ, рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП 20 рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ 19 рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордиреНрд╡рдп рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдПрдХ рдХреЛ рдКрдВрдЪрд╛рдИ рдкрд░ рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рдВрджреБ 19 * рдЯрд╛рдЗрд▓рд╣рд╛рдЗрдЯ рд╣реЛрдЧрд╛ред

рдореИрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рдШрд┐рд░рд╛ рд╣реБрдЖ рд╣реВрдБ!


рдЕрдм рдЪрд▓реЛ рдЙрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдЖрд▓рд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рдо рд╡рд╛рдкрд╕ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рдЗрд╕ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓ рдХрд╛ GID, рд╕реЗрд▓ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ CGRect рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред
рд╣рдо рдЗрд╕ рд╕рд░рдгреА рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЯрдХрд░рд╛рд╡реЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд┐рдХрд░реНрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдиреАрдЪреЗ рд╕реЗ, рджрд╛рдПрдВ рд╕реЗ, рдКрдкрд░ рд╕реЗ рдЯрдХрд░рд╛рд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдо рдирд┐рдЪрд▓реЗ рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдЖрд▓рд╛ рдХреА рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЬрдореАрди рдХреЛ рдЫреВрдиреЗ рдХреЗ рд▓рд┐рдП рдЭрдВрдбрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ GameLevelLayer.m рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
 - (NSArray *)getSurroundingTilesAtPosition:(CGPoint)position forLayer:(CCTMXLayer *)layer { CGPoint plPos = [self tileCoordForPosition:position]; //1 NSMutableArray *gids = [NSMutableArray array]; //2 for (int i = 0; i < 9; i++) { //3 int c = i % 3; int r = (int)(i / 3); CGPoint tilePos = ccp(plPos.x + (c - 1), plPos.y + (r - 1)); int tgid = [layer tileGIDAt:tilePos]; //4 CGRect tileRect = [self tileRectFromTileCoords:tilePos]; //5 NSDictionary *tileDict = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:tgid], @"gid", [NSNumber numberWithFloat:tileRect.origin.x], @"x", [NSNumber numberWithFloat:tileRect.origin.y], @"y", [NSValue valueWithCGPoint:tilePos],@"tilePos", nil]; [gids addObject:tileDict]; } [gids removeObjectAtIndex:4]; [gids insertObject:[gids objectAtIndex:2] atIndex:6]; [gids removeObjectAtIndex:2]; [gids exchangeObjectAtIndex:4 withObjectAtIndex:6]; [gids exchangeObjectAtIndex:0 withObjectAtIndex:4]; //6 for (NSDictionary *d in gids) { NSLog(@"%@", d); } //7 return (NSArray *)gids; } 

Pff - рдХреЛрдб рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ред рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗред
рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдирдХреНрд╢реЗ рдореЗрдВ рддреАрди рдкрд░рддреЗрдВ рд╣реИрдВред
рд╡рд┐рднрд┐рдиреНрди рдкрд░рддреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред


рдмреЗрд╢рдХ, рд╡рд┐рднрд┐рдиреНрди рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ - рдирдХреНрд╢реЗ рдкрд░ рдкрд░рддреЗрдВ, рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡реА рд╣реИрдВред
рдареАрдХ рд╣реИ, рдЪрд▓реЛ рдЪрд░рдг рджрд░ рдЪрд░рдг рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред

1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рдХреЛрдЕрд▓рд╛ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реЛрдВрдЧреЗ)ред
2. рдЕрдЧрд▓рд╛, рд╣рдо рдПрдХ рдирдпрд╛ рдРрд░реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рдПрдЧрд╛ред
3. рдЕрдЧрд▓рд╛, рд╣рдо 9 рдмрд╛рд░ рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 9 рд╕рдВрднрд╛рд╡рд┐рдд рдЖрдВрджреЛрд▓рди рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдЖрд▓рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд┐рдд рд╣реИред рдЕрдЧрд▓реА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдиреМ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрд╛рдЗрд▓рдкреЛрд╕ рдЪрд░ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИрдВред

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

4. рдЪреМрдереЗ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдЯрд╛рдЗрд▓рдЧрд╛рдЗрдб рдХрд╣рддреЗ рд╣реИрдВ:ред рдпрд╣ рд╡рд┐рдзрд┐ рд╕реЗрд▓ рдХреЗ GID рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдордиреНрд╡рдп рдкрд░ рд▓реМрдЯрд╛рддреА рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░ рдХреЛрдИ рд╕реЗрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рд╢реВрдиреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╕реЗрд▓ рди рдкрд╛рдП рдЧрдП" рдореВрд▓реНрдп рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
5. рдЕрдЧрд▓рд╛, рд╣рдо Cocos2D рдбреЗрдЯрд╛ рд╕рдордиреНрд╡рдп рдкрд░ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП CGRect рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкреНрд░рд╛рдкреНрдд рд╕реВрдЪрдирд╛ рдХреЛ NS рд╕рд╣рд╛рд░реЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд NSDictionary рд╕реЗ рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред
6. рдЫрдареЗ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдХреЛрдЖрд▓рд╛ рд╕реЗрд▓ рдХреЛ рд╕рд░рдгреА рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред
рдЫрд╡рд┐
рдЕрдХреНрд╕рд░, рдХреЛрдЖрд▓рд╛ рдХреЗ рддрд╣рдд рдПрдХ рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЯрдХрд░рд╛рд╡ рдХреЛ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддрд┐рд░рдЫреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рдЖрдХреГрддрд┐ рджреЗрдЦреЗрдВред рдХреЛрдЖрд▓рд╛ рдХреЗ рддрд╣рдд рдПрдХ рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рд▓ рд░рдВрдЧ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рд╣рдо рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ # 2 рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдпреЗ рдзрд╛рд░рдгрд╛ рд╡рд┐рдХрд░реНрдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рдЖрд╕рдиреНрди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрдерд╛рд╕рдВрднрд╡ рд╡рд┐рдХрд░реНрдг рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред
рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рддрд╕реНрд╡реАрд░ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЫрд╛рдВрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рд░рдгреА рдореЗрдВ рд╣рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдмрд╕реЗ рдКрдкрд░, рдиреАрдЪреЗ, рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдЬрд╛рдирдирд╛, рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдХрд┐ рдХрдмрд▓рд╛ рдЬрдореАрди рдХреЛ рдЫреВрддрд╛ рд╣реИ рдпрд╛ рдмрд╛рджрд▓реЛрдВ рдореЗрдВ рдЙрдбрд╝рддрд╛ рд╣реИред
рдЫрд╡рд┐

7. рдзрд╛рд░рд╛ рд╕рд╛рдд рдореЗрдВ рдЪрдХреНрд░ рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдпрд╣ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рдЦреЗрд▓ рдХреЗ рдЕрдЧрд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИрдВ! рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рдЕрднреА рднреА рдХреБрдЫ рдЪреАрдЬреЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдореЗрдВ GameLevelLayer рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреАрд╡рд╛рд░реЛрдВ рдХреА рдкрд░рдд рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред

GameLevelLayer.m рдХреЗ рдЕрдВрджрд░ , рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ:

 //   @interface CCTMXLayer *walls; //    init,  ,      walls = [map layerNamed:@"walls"]; //    update [self getSurroundingTilesAtPosition:player.position forLayer:walls]; 

рднрд╛рдЧреЛ! рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЦреЗрд▓ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕реЗрд▓ рдкреЛрдЬреАрд╢рди рдФрд░ GID рдорд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдзрд┐рдХрддрд░ рд╢реВрдиреНрдп рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╢реАрд░реНрд╖ рдкрд░ рдЦрд╛рд▓реА рдЗрд▓рд╛рдХрд╝рд╛ рд╣реИ)ред
рдЕрдВрдд рдореЗрдВ, "TMXLayer: рдЕрдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐" рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдорд╛рдирдЪрд┐рддреНрд░ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдЯрд╛рдЗрд▓рдЧреЗрдЯреИрдЯ: рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЗрд╕ рддреНрд░реБрдЯрд┐ рд╕реЗ рдмрдЪреЗрдВрдЧреЗ - рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рд╣рдо рдЯрдХрд░рд╛рд╡ рдХреА рдореМрдЬреВрджрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдмрджрд▓рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд╣рдо рдХреЛрдЖрд▓рд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрддреЗ рд╣реИрдВ


рдЙрд╕ рдХреНрд╖рдг рддрдХ, рдХреЛрдЕрд▓рд╛ рдЦреБрдж рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЙрд╕рд╕реЗ рдпрд╣ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд▓реЗ рд░рд╣реЗ рд╣реИрдВред

рдЫрд╡рд┐

рдЕрдЧрд░ рдХреЛрдЖрд▓рд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛, рддреЛ рдЕрдВрдд рдореЗрдВ рд╡рд╣ рдкрд╛рдЧрд▓ рдХреА рддрд░рд╣ рдХреВрджрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛! рд▓реЗрдХрд┐рди рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдирд╣реАрдВ?
рддреЛ рдХреЛрдЖрд▓рд╛ рдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░, рд╡рд╛рдВрдЫрд┐рддрдкреБрдирд┐рд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ GameLevelLayer рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛ред
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЖрд▓рд╛ рд╡рд░реНрдЧ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЕрдЧрд▓реА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗред рд▓реЗрдХрд┐рди GameLevelLayer рдХреЛ рдЕрдкрдиреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж рд╣реА рдХреЛрдЖрд▓рд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рдмрд╛рдд рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдЪрдХреНрд░ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ - рд╣рдо рдЯрдХрд░рд╛рд╡ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрд╕рд▓реА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Player.h рдореЗрдВ рдирд┐рдореНрди рдЬреЛрдбрд╝реЗрдВ

 @property (nonatomic, assign) CGPoint desiredPosition; 

рдФрд░ Player.m рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╕рдВрд╢реНрд▓реЗрд╖рд┐рдд:

 @synthesize desiredPosition = _desiredPosition; 

рдЕрдм, Player.m рдореЗрдВ collisionBoundingBox рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗ :

 - (CGRect)collisionBoundingBox { CGRect collisionBox = CGRectInset(self.boundingBox, 3, 0); CGPoint diff = ccpSub(self.desiredPosition, self.position); CGRect returnBoundingBox = CGRectOffset(collisionBox, diff.x, diff.y); return returnBoundingBox; } 

рдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлреНрд░реЗрдо рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЧреЗрдорд▓реЗрд╡рд▓реЗрдпрд░ рдЯрдХрд░рд╛рд╡реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдиреЛрдЯ: рдЯрдХреНрдХрд░ рдлреНрд░реЗрдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдк CCNode рдХрдХреНрд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди рдкрджреНрдзрддрд┐ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрдЬрд╛рдп рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗ:

 //  'self.position = ccpAdd(self.position, stepVelocity);' : self.desiredPosition = ccpAdd(self.position, stepVelocity); 

рдЪрд▓реЛ рдЯрдХреНрдХрд░реЛрдВ рдкрд░ рд╢реБрд░реВ рдХрд░реЗрдВ!


рдЧрдВрднреАрд░ рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рд╣рдо рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред GameLevelLayer.m рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:

рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
 - (void)checkForAndResolveCollisions:(Player *)p { NSArray *tiles = [self getSurroundingTilesAtPosition:p.position forLayer:walls ]; //1 for (NSDictionary *dic in tiles) { CGRect pRect = [p collisionBoundingBox]; //2 int gid = [[dic objectForKey:@"gid"] intValue]; //3 if (gid) { CGRect tileRect = CGRectMake([[dic objectForKey:@"x"] floatValue], [[dic objectForKey:@"y"] floatValue], map.tileSize.width, map.tileSize.height); //4 if (CGRectIntersectsRect(pRect, tileRect)) { CGRect intersection = CGRectIntersection(pRect, tileRect); //5 int tileIndx = [tiles indexOfObject:dic]; //6 if (tileIndx == 0) { //    p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y + intersection.size.height); } else if (tileIndx == 1) { //    p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y - intersection.size.height); } else if (tileIndx == 2) { //    p.desiredPosition = ccp(p.desiredPosition.x + intersection.size.width, p.desiredPosition.y); } else if (tileIndx == 3) { //    p.desiredPosition = ccp(p.desiredPosition.x - intersection.size.width, p.desiredPosition.y); } else { if (intersection.size.width > intersection.size.height) { //7 // ,     float intersectionHeight; if (tileIndx > 5) { intersectionHeight = intersection.size.height; } else { intersectionHeight = -intersection.size.height; } p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y + intersection.size.height ); } else { // ,     float resolutionWidth; if (tileIndx == 6 || tileIndx == 4) { resolutionWidth = intersection.size.width; } else { resolutionWidth = -intersection.size.width; } p.desiredPosition = ccp(p.desiredPosition.x , p.desiredPosition.y + resolutionWidth); } } } } } p.position = p.desiredPosition; //7 } 

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛!рдЖрдЗрдП рдЙрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рд╣рдордиреЗ рдЕрднреА рд▓рд┐рдЦрд╛ рдерд╛ред

1. рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдХреЛрдЖрд▓рд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕ рд╕реЗрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдХреНрд░ рдХрд░рддреЗ рд╣реИрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рд╕реЗрд▓ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЯрдХрд░рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВред рдпрджрд┐ рдЯрдХреНрдХрд░ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдХреЛрдЖрд▓рд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред
2. рд▓реВрдк рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд▓реВрдк рдХреЗ рдЕрдВрджрд░, рд╣рдо рдкрд╣рд▓реЗ рдХреЛрдЖрд▓рд╛ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рднреА рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рд╡рд╛рдВрдЫрд┐рдд рдЪрд░ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдкрдирд╛ рдорд╛рди рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЯрдХреНрдХрд░ рдЕрдм рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
3. рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЙрд╕ рдЬреАрдЖрдИрдбреА тАЛтАЛрдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдордиреЗ NS рд╕рд╣рд╛рд░реЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЬреАрдЖрдИрдбреА тАЛтАЛрд╢реВрдиреНрдп рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЕрдЧрд▓реЗ рд╕реЗрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
4редрдпрджрд┐ рд╕реЗрд▓ рдирдИ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрд╕рдХрд╛ CGRect рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдореЗрдВ рдЯрдХрд░рд╛рд╡ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреАред рд╣рдо рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЛрдб рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЯрд╛рдЗрд▓рд░реИрдХреНрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ CGRect Koalas рдФрд░ cells рд╣реИрдВ, рддреЛ рд╣рдо рдЯрдХрд░рд╛рд╡ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
5. рдЯрдХреНрдХрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо CGRectIntersectsRect рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдЯрдХреНрдХрд░ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ CGRectIntersection () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CGRect рдЪреМрд░рд╛рд╣реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ CGRect рдорд┐рд▓рддрд╛ рд╣реИред

рд╣рдореЗрдВ рджреБрд╡рд┐рдзрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ ...


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

рдХреЛрдб рдкрд░ рд╡рд╛рдкрд╕!


рдЪрд▓реЛ рд░рд╛рдХреНрд╖рд╕реА рд╡рд┐рдзрд┐ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ checkForAndResolveCollisions: ...

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

рдпрд╣ рд╡рд┐рдзрд┐ рд╣рдорд╛рд░реЗ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдорд╕реНрддрд┐рд╖реНрдХ рд╣реИред

рдЖрдЗрдП рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ! рдХреА рд╡рд┐рдзрд┐ рдмрджрд▓реЗрдВ рдЕрджреНрдпрддрди (рдЕрдм рднреА рдореЗрдВ GameLevelLayer: )

 //  "[self getSurroundingTilesAtPosition:player.position forLayer:walls];" : [self checkForAndResolveCollisions:player]; 

рдЖрдк GetSurroundingTilesAtPosition рдХреЛ рдирд┐рдХрд╛рд▓ рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ : forLayer block:

  /* for (NSDictionary *d in gids) { NSLog(@"%@", d); } //8 */ 

рднрд╛рдЧреЛ!рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд?

рдЫрд╡рд┐

рдкреЙрд▓ рдХреЛрд▓рд┐рдпреЛ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ рддреБрд░рдВрдд рдЙрд╕рдореЗрдВ рдбреВрдм рдЬрд╛рддрд╛ рд╣реИ! рдХреНрдпреЛрдВ?
рдХреНрдпрд╛ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЪреВрдХ рдЧрдП? рдпрд╛рдж рд░рдЦреЗрдВ - рдЦреЗрд▓ рдХреЗ рд╣рд░ рдЪрд░рдг рдореЗрдВ рд╣рдо рдХреЛрдЖрд▓рд╛ рдХреА рдЧрддрд┐ рдореЗрдВ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдЖрд▓рд╛ рд▓рдЧрд╛рддрд╛рд░ рддреЗрдЬ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдХреЛрдЖрд▓рд╛ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрд╡рдХреНрд░ рдореЗрдВ рдЧрддрд┐ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдПрдХ рд╕реЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрди рдЬрд╛рддрд╛ рд╣реИ - рд╣рдо рдПрдХ рдЪрд░рдг рдореЗрдВ рдкреВрд░реЗ рд╕реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ, рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА)ред
рдЬреИрд╕реЗ рд╣реА рд╣рдо рдПрдХ рдЯрдХрд░рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХреА рдЧрдИ рд╕реЗрд▓ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХреЛрдЖрд▓рд╛ рдХреА рдЧрддрд┐ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! рдХреЛрдЖрд▓рд╛ рдиреЗ рдЪрд▓рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЧрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЬреАрдм рдЦреЗрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдЖрд▓рд╛ рдЬрдореАрди рдХреЛ рдЫреВ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдЖрд▓рд╛ рдКрдВрдЪреА рдХреВрдж рди рдХрд░ рд╕рдХреЗред рд╣рдо рдЕрдм рдЗрд╕ рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗред CheckForAndResolveCollisions рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВ :

рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
 - (void)checkForAndResolveCollisions:(Player *)p { NSArray *tiles = [self getSurroundingTilesAtPosition:p.position forLayer:walls ]; //1 p.onGround = NO; ////// for (NSDictionary *dic in tiles) { CGRect pRect = [p collisionBoundingBox]; //3 int gid = [[dic objectForKey:@"gid"] intValue]; //4 if (gid) { CGRect tileRect = CGRectMake([[dic objectForKey:@"x"] floatValue], [[dic objectForKey:@"y"] floatValue], map.tileSize.width, map.tileSize.height); //5 if (CGRectIntersectsRect(pRect, tileRect)) { CGRect intersection = CGRectIntersection(pRect, tileRect); int tileIndx = [tiles indexOfObject:dic]; if (tileIndx == 0) { //   p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y + intersection.size.height); p.velocity = ccp(p.velocity.x, 0.0); ////// p.onGround = YES; ////// } else if (tileIndx == 1) { //   p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y - intersection.size.height); p.velocity = ccp(p.velocity.x, 0.0); ////// } else if (tileIndx == 2) { //  p.desiredPosition = ccp(p.desiredPosition.x + intersection.size.width, p.desiredPosition.y); } else if (tileIndx == 3) { //  p.desiredPosition = ccp(p.desiredPosition.x - intersection.size.width, p.desiredPosition.y); } else { if (intersection.size.width > intersection.size.height) { //tile is diagonal, but resolving collision vertially p.velocity = ccp(p.velocity.x, 0.0); ////// float resolutionHeight; if (tileIndx > 5) { resolutionHeight = intersection.size.height; p.onGround = YES; ////// } else { resolutionHeight = -intersection.size.height; } p.desiredPosition = ccp(p.desiredPosition.x, p.desiredPosition.y + resolutionHeight); } else { float resolutionWidth; if (tileIndx == 6 || tileIndx == 4) { resolutionWidth = intersection.size.width; } else { resolutionWidth = -intersection.size.width; } p.desiredPosition = ccp(p.desiredPosition.x + resolutionWidth, p.desiredPosition.y); } } } } } p.position = p.desiredPosition; //8 } 

рд╣рд░ рдмрд╛рд░ рдХреЛрдЕрд▓рд╛ (рдЖрд╕рдиреНрди рдпрд╛ рд╡рд┐рдХрд░реНрдг) рдХреЗ рддрд╣рдд рдПрдХ рд╕реЗрд▓ рд╣реЛрддрд╛ рд╣реИ, рд╣рдо p.onGround рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди YES рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЧрддрд┐ рдХреЛ рд╢реВрдиреНрдп рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдХреЛрдЖрд▓рд╛ рдХреЗ рддрд╣рдд рдПрдХ рдЖрд╕рдиреНрди рд╕реЗрд▓ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреА рдЧрддрд┐ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдХреЛрдЖрд▓рд╛ рдХреА рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╣рдо рд▓реВрдк рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ NO рдХреЛ onGround рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, onGround рдореЗрдВ рдХреЗрд╡рд▓ YES рд╣реЛрдЧрд╛, рдЬрдм рд╣рдо рдЗрд╕рдХреЗ рдиреАрдЪреЗ рд╕реЗрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдЖрд▓рд╛ рдХреА рдЯрдХреНрдХрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдЖрд▓рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рдХреВрдж рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
zagalovochny рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб (рдФрд░ рдЖрдк рдХрд╛рд░реНрдпрдХрд╛рд░реА рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ рддреЛ synthesize рд╕рдм рдХреБрдЫ) рдореЗрдВ рдЬреЛрдбрд╝реЗ Player.h :

 @property (nonatomic, assign) BOOL onGround; 

рдФрд░ рдкреНрд▓реЗрдпрд░ рджреЛрдкрд╣рд░ рдореЗрдВ :

 @synthesize onGround = _onGround; 

рднрд╛рдЧреЛ! рдХреНрдпрд╛ рд╕рдм рдХреБрдЫ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╣рд╛рдБ! , ! рд╣реБрд░реНрд░реЗ!

рдЫрд╡рд┐

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рдмрдзрд╛рдИ! ! , . тАФ .
.
. .
, :
The Sonic the Hedgehog Wiki тАФ , Sonic .
, рд╣рд╛рдпрд░-рдСрд░реНрдбрд░ рдлрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд┐рдВрдЧ рдЧрд╛рдЗрдб ред


рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ

рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ ред
рдореИрдВ рдЦреБрдж рд╡рд░реНрддрдорд╛рди рдореЗрдВ iOS рдкрд░ рдПрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЧреЗрдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ raywenderlich.com рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ред рдореИрдВ рд╕рднреА рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ!
рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред рдпрджрд┐ рдпрд╣ рдорд╛рдВрдЧ рдореЗрдВ рд╣реИ, рддреЛ рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реВрдВрдЧрд╛ред
рдкрд╛рдП рдЧрдП рд╕рднреА рдЕрд╢реБрджреНрдзрд┐рдпреЛрдВ рдФрд░ рдЯрд╛рдЗрдкреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреГрдкрдпрд╛ рдЗрдмреНрд░рд╛рд╣реАрдо рдпрд╛ рдпрд╣рд╛рдБ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдореБрдЭреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!

Source: https://habr.com/ru/post/In162747/


All Articles