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

рд╡рд╕реНрддреБ рд╕реНрд╡рдпрдВ "рдХреЛрдиреЗ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░" рдЬрд╛рдПрдЧреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣реА рдЪреАрдЬ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬрдмрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрдЫрд▓рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрд╛рдзрд╛ рдкрд░ рдЪрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕реАрдзреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреВрджрддреЗ рд╣реИрдВ; рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдзрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рд░рд╛рд╕реНрддрд╛ рджреЗрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕ рдкрде рдкрд░ рд▓реЗрдЯ рдЬрд╛рдирд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдХреВрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡рд╕реНрддреБ
рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЖрдЗрдП рдЗрд╕реЗ рдЗрдХрд╛рдИ рдХрд╣рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ (рдпрджрд┐ рдХреЛрдИ рдЗрдЪреНрдЫреБрдХ рд╣реИ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ, рддреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рддреЗрдЬреА рд╕реЗ рдЪрд▓рддреА рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рджреВрдВрдЧрд╛ (рдЪрд▓реЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рддрд░реНрдХ рдЧрддрд┐ рд╡реЗрдХреНрдЯрд░ рд╣реИрдВ (dx, dy, dz)):
- рдЯрдХрд░рд╛рд╡ рдореЗрдВ рддреБрд░рдВрдд рдирд╣реАрдВ рд░реБрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╡реЗрдХреНрдЯрд░ (0.3, 0.0, 0.5) (x, y, z, рдХреНрд░рдорд╢рдГ) рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрджрд┐ 0.2 рд╕реЗ x рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд╕реНрддреБ рдПрдХ рдмрд╛рдзрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреА рд╣реИ, рддреЛ рдпрд╣ рд░реБрдХрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди y рдФрд░ z рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдкрд╛рд╕ рдЖрдВрджреЛрд▓рди рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЪрд┐рдХрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
- рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЛ 2 рдЭрдВрдбреЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рдСрдирдЧреНрд░рд╛рдЙрдВрдб рдФрд░ рд╕реНрдЯреИрд╣реЛрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ ред рдкрд╣рд▓рд╛ рдЭрдВрдбрд╛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЗ рдмрд╛рдж, рдПрдВрдЯрд┐рдЯреА рдПрдХ рдареЛрд╕ рд╕рддрд╣ рдкрд░ рдереА, рдЖрдорддреМрд░ рдкрд░ рдЬрдореАрди рдкрд░, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рджреВрд╕рд░реЗ рдПрдВрдЯрд┐рдЯреА рдкрд░ред рдЗрд╕рдХреА рдЧрдгрдирд╛ рд╕рд░рд▓рддрд╛ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ:
if(dy != 0.0D) onGround = dy < 0.0D && dy != movedY;
рдХрд╣рд╛рдВ рдбрд╛рдИ рдХрд┐рддрдиреА рд╡рд╕реНрддреБ y рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рдЪрд╛рд╣рддреА рдереА, рдХрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рддрдирд╛ рдпреЛрдЧ y рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, onGround = true рдЕрдЧрд░ рдЗрдХрд╛рдИ рдиреАрдЪреЗ рдЪрд▓ рд░рд╣реА рдереА рдФрд░ рд╕рднреА рд╡рд╛рдВрдЫрд┐рдд рджреВрд░реА (рдмрд╛рдзрд╛ рдХреЛ рд░реЛрдХрд╛) рдирд╣реАрдВ рдЬрд╛ рд╕рдХрд╛ред рджреВрд╕рд░рд╛ рдЭрдВрдбрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ:
stuckHorizontally = false; if(Math.abs(dz) > Math.abs(dx)) { if(movedZ == 0.0D) stuckHorizontally = true; } else { if(movedX == 0.0D) stuckHorizontally = true; }
dx , dz , рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рддZ рдФрд░ рдореВрд▓рд╛рдзрд╛рд░ , рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдЯрдХрд░рд╛рд╡ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдмрдбрд╝реА" рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдорд╛рдирддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ "рдХреВрдж" рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдорджрдж рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдзреНрд╡рдЬ рдЭреВрдареЗ рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдВрдЯрд┐рдЯреА рдореЗрдВ рдХреБрдЫ рдФрд░ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЗрд╕рдХреЗ рдЖрдВрджреЛрд▓рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ:- motX , motY , motZ - рдЪрд░ рдЬреЛ рдХрд┐ рд╡рд╕реНрддреБ рдХреА рд╡рд░реНрддрдорд╛рди рдЧрддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдЧрддрд┐ рдирд╣реАрдВ рд╣реИ! рдпреЗ рдЕрдиреНрдп рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд╕реНрддреБ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ!
- рдкрд┐рдЪ рдФрд░ рдпрд╡ рд╡рд╕реНрддреБ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдХреЛрдг рд╣реИрдВред рдкрд╣рд▓рд╛ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЭреБрдХрд╛рд╡ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ - -90 рд╕реЗ (рдмрд┐рд▓реНрдХреБрд▓ рдиреАрдЪреЗ рджрд┐рдЦрддрд╛ рд╣реИ) рд╕реЗ 90 рддрдХ (рдмрд┐рд▓реНрдХреБрд▓ рдКрдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ), рджреВрд╕рд░рд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ - 0 рд╕реЗ 360 рддрдХред
- MoveX рдФрд░ MoveZ - рд╡рд╕реНрддреБ рдХреЗ рдЕрдЧрд▓реЗ "рдЪрд░рдг" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЧрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
- рдЧрддрд┐ рдФрд░ рдЬрдореНрдкрд╕реНрдкреАрдб - рдореАрдЯрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдореЗрдВ рд╡рд╕реНрддреБ рдХреА рдЧрддрд┐ рдФрд░ рдХреВрджрддреЗ рд╕рдордп рд╡рд╕реНрддреБ рдХреЛ рджреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЧрддрд┐ред рдпреЗ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рддрд╛рдХрд┐ рд╡рд╕реНрддреБ 1 рдореАрдЯрд░ рдКрдВрдЪреА рдЫрд▓рд╛рдВрдЧ рд▓рдЧрд╛ рд╕рдХреЗред рдЫрд▓рд╛рдВрдЧ рд▓рдЧрднрдЧ 6 рдореАрдЯрд░ / рд╕реЗрдХреЗрдВрдб рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- lastTick - рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп рдЬрдм рд╣рдо рдЕрдВрддрд┐рдо рд╕рдВрд╕рд╛рдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдВрджреЛрд▓рдиреЛрдВ (рд╕реЗрдХрдВрдб рдореЗрдВ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рдЯрд┐рдХ рдирд╣реАрдВ)
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рд╣рдо
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдореЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ ред рдпрд╣ рд▓реЗрдЦ рдХреЗрд╡рд▓ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЙрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдореЛрдбрд╝рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЗрд╕ рд╕рдордп рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЕрдЧрд▓реЗ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВред рдореИрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЗрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред
рдореЛрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп: float secDiff = (System.currentTimeMillis() - lastTick) / 1000.0F;
рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ
MoveForward (рдлреНрд▓реЛрдЯ) рдФрд░
applyForces (рдлреНрд▓реЛрдЯ)ред рдкрд╣рд▓рд╛ рдПрдХ рдЖрдВрджреЛрд▓рди рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рд╡рд╕реНрддреБ рдкрд░ рд▓рд╛рдЧреВ рдмрд▓реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
protected void moveForward(float distance) { moveSpeedX = (float) -Math.sin(this.yaw / 180.0F * (float) Math.PI) * distance; moveSpeedZ = (float) Math.cos(this.yaw / 180.0F * (float) Math.PI) * distance;
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛, рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж,
рдХрджрдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдКрдкрд░ рджреА рдЧрдИ рд╢рд░реНрддреЛрдВ рдХреЗ
рдЕрдиреБрд╕рд╛рд░ рд╕реНрдЯреИрд╣реЛрд░рд╣реЙрдиреНрдЧрд▓реА рдлреНрд▓реИрдЧ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣
onGround рдлреНрд▓реИрдЧ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
рдбрд╛рдИ 0 рд╣реИ, рддреЛ
applyForces рдЗрд╕ рдлреНрд▓реИрдЧ рд╕реЗ
рдирд┐рдкрдЯреЗрдЧрд╛ ред рдпрджрд┐
рдЕрдЯрд╛рд░реА рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕рдЪ рдФрд░
рдСрдирдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рднреА рд╕реЗрдЯ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреВрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреВрдж рд╕рдорд╛рд░реЛрд╣ рдпрд╣ рдХрд░реЗрдЧрд╛:
protected void jump() { this.motY = jumpSpeed; }
рдмрд╕ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рдЧрддрд┐ рджреЗрдВ ...
рдареАрдХ рд╣реИ, рдФрд░ рдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдпрд╣рд╛рдВ рдЖрдк рд░рдЪрдирд╛рддреНрдордХрддрд╛ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рджреБрдирд┐рдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдЬрд┐рд╕рдореЗрдВ рд╡рд╕реНрддреБ рд╕реНрдерд┐рдд рд╣реИ, рдШрд░реНрд╖рдг рдФрд░ рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк рдмрдиреНрд╕ред рдореИрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
private void applyForces(float secDiff) {
рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣ рд╕рдВрдкреВрд░реНрдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИред (рдШрд░реНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ ... рдореЗрд░рд╛ рдлрд╝рдВрдХреНрд╢рди 1 рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗрдХрдВрдб рдпрд╛ 1 рд╕реЗ рдЕрдзрд┐рдХ рдШрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!)
MoveForward рдФрд░ applyForces рдореЗрдВ рджреЛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрд╛рд░ рдореВрд╡ рдлрдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕реАрдзреЗ
callForces рдореЗрдВ
рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдХреЙрд▓ рдореЗрдВ
MoveX рдФрд░
MoveZ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рддрдм
рдЯрдХрд░рд╛рдХрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдпрд╣ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреЗ рд▓рд┐рдП рддрдп рдХрд░реЗрдВ рдХрд┐ рдХрд╣рд╛рдВ рд╕рдВрддреБрд▓рди рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛
рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХрд╛ рдирдореВрдирд╛ рдХреЛрдб рдЬреЛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдмреЗрд╢рдХ, рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдХреЛрдб рдореЗрдВ рд╢реЗрд╖ рд╣реИрдВред
public class Entity { public float speed = 3.0F; public float jumpSpeed = 6.0F; private long lastJumping = 0; private boolean stuckHorizontally = false; public boolean onGround = true; protected float moveSpeedX; protected float moveSpeedZ; public float motX; public float motY; public float motZ; public void tick() { float secDiff = (System.currentTimeMillis() - lastTick) / 1000.0F;
рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред
рддрд╛рдХрд┐ рдпрд╣ рд╕рдм рдЕрд▓рдЧ рди рд╣реЛ рдЬрд╛рдП, рдЖрдкрдХреЛ рд╡рд╕реНрддреБ
рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реИ ред
рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рди рдХреЗрд╡рд▓ рд╡рд╕реНрддреБ рдХреЛ рдЕрдЧрд▓реЗ рдмрд┐рдВрджреБ рддрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рддрдп рдХрд░реЗ рдХрд┐ рд╡рд╕реНрддреБ рдХрдм рд╕реНрдерд┐рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрдм рдЖрдЧреЗ рдмрдврд╝рдиреА рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рддрд╛рдХрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛ ...
рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп
рдЕрдм рдЬреЛ рдХреБрдЫ рднреА рдореИрдВ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдореЙрдм рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА, рдлрд┐рд░ рдореИрдВ рд▓реЗрдЦ рдХреЛ рдкреВрд░рдХ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрдВрдЧрд╛ред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдиреАрдЪреЗ рд▓рд┐рдЦреЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реЛ, рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдпрд╛ рдЕрднреА рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдХреБрдЫ рднреА, рдореИрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд░реЗрдВред