рдЖрд░реНрдХреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдореЗрдВ 2 рдбреА рдЧреЗрдо рдмрдирд╛рдПрдВ

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!

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

рдЕрдиреБрд╡рд╛рдж
рдореВрд▓ рд▓реЗрдЦ - opspot.com/article/18/4/easy-2d-game-creation-python-and-aradeade
рдкреЙрд▓ рд╡рд┐рдиреНрд╕реЗрдВрдЯ рдХреНрд░реЗрд╡рди рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛

рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВред

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

рдореИрдВрдиреЗ рд╡рд┐рджреНрдпрд╛рд░реНрдерд┐рдпреЛрдВ рдХреЛ PyGame рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрд░реНрдХреЗрдб рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдореИрдВ рд▓рдЧрднрдЧ 10 рд╡рд░реНрд╖реЛрдВ рд╕реЗ PyGames in-person рдХреЛ рд╕рд┐рдЦрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдСрдирд▓рд╛рдЗрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП ProgramArcadeGames.com рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред PyGames рдорд╣рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рд╕реЗ рдердХ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдХрднреА рдареАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ред

рдореИрдВ рдЗрд╡реЗрдВрдЯ рд▓реВрдк рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рдерд╛, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдПрдХ рдкреВрд░рд╛ рдЦрдВрдб рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреНрдпреЛрдВ y- рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдШреБрдорд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред PyGames рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ OpenGL рдЬреИрд╕реА рдЖрдзреБрдирд┐рдХ рдЪреАрдЬрд╝реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдкреБрд░рд╛рдиреЗ SDL 1 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛ред рдореИрдВ рдПрдХ рдЙрдЬреНрдЬреНрд╡рд▓ рднрд╡рд┐рд╖реНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред

рдореЗрд░реЗ рд╕рдкрдиреЛрдВ рдореЗрдВ, рдПрдХ рд╕рд░рд▓ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдерд╛ рдЬреЛ рдкрд╛рдпрдерди 3 рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдХреЛрд░реЗрдЯрд░ рдФрд░ рдЯрд╛рдЗрдк рд╣рд┐рдВрдЯрд┐рдВрдЧред рд╡рд╣ рдЖрд░реНрдХреЗрдб рд╣реЛ рдЧрдпрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред



рд╕реНрдерд╛рдкрдирд╛


рдЖрд░реНрдХреЗрдб, рдХрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреА рддрд░рд╣, PyPi рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдЗрдк (рдпрд╛ рдкрд┐рдкреЗрдирд╡ ) рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░реНрдХреЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдкрд╛рдпрдерди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

pip install arcade 

рдФрд░ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХрдУрдПрд╕ рдкрд░:

 pip3 install arcade 

рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрд░реНрдХреЗрдб рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред

рд╕рд╛рдзрд╛рд░рдг рдбреНрд░рд╛рдЗрдВрдЧ


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



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

 import arcade #      SCREEN_WIDTH = 600 SCREEN_HEIGHT = 600 #  .      (  ) arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, "Drawing Example") #    . #      : # http://arcade.academy/arcade.color.html #      (, , )  # (, , , ) . arcade.set_background_color(arcade.color.WHITE) #   .       arcade.start_render() #   x = 300 y = 300 radius = 200 arcade.draw_circle_filled(x, y, radius, arcade.color.YELLOW) #    x = 370 y = 350 radius = 20 arcade.draw_circle_filled(x, y, radius, arcade.color.BLACK) #    x = 230 y = 350 radius = 20 arcade.draw_circle_filled(x, y, radius, arcade.color.BLACK) #   x = 300 y = 280 width = 120 height = 100 start_angle = 190 end_angle = 350 arcade.draw_arc_outline(x, y, width, height, arcade.color.BLACK, start_angle, end_angle, 10) #      arcade.finish_render() #      ,      тАЬтАЭ arcade.run() 

рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдмреЗрд╢рдХ, рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (x, y) рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЗрдбрд╝ рдХреЛ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 def draw_pine_tree(x, y): """       """ #    . #   x, y    . arcade.draw_triangle_filled(x + 40, y, # Point 1 x, y - 100, # Point 2 x + 80, y - 100, # Point 3 arcade.color.DARK_GREEN) #   arcade.draw_lrtb_rectangle_filled(x + 30, x + 50, y - 100, y - 140, arcade.color.DARK_BROWN) 

рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрдВрдЧ рджреЗрдЦреЗрдВред



рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдзреБрдирд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд╣рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдЖрд░реНрдХреЗрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред 10,000 рдЖрдпрддреЛрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ 0.8 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд░рд╛рд╢рд┐ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ 0.001 рд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

рдЦрд┐рдбрд╝рдХреА рд╡рд░реНрдЧ


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

 import arcade SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 class MyGame(arcade.Window): """   . """ def __init__(self, width, height): super().__init__(width, height) arcade.set_background_color(arcade.color.AMAZON) def setup(self): #    pass def on_draw(self): """   . """ arcade.start_render() #    def update(self, delta_time): """       .""" pass def main(): game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT) game.setup() arcade.run() if __name__ == "__main__": main() 

рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

  • on_draw: рд╕реНрдХреНрд░реАрди рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИред
  • рдЕрджреНрдпрддрди: рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЧреЗрдо рд▓реЙрдЬрд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб рдпрд╣рд╛рдВ рд╣реИред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 60 рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • on_key_press: рдЬрдм рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреА рдЧрддрд┐ред
  • on_key_release: рдЬрдм рдПрдХ рдмрдЯрди рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рдкрд╛рддреНрд░ рдХреЛ рд░реЛрдХрдирд╛ред
  • on_mouse_motion: рд╣рд░ рдмрд╛рд░ рдорд╛рдЙрд╕ рдЪрд▓рдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • on_mouse_press: рдорд╛рдЙрд╕ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • set_viewport: рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░реЙрд▓рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рджреБрдирд┐рдпрд╛ рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рд╣реЛрддреА рд╣реИред рдХреЙрд▓рд┐рдВрдЧ set_viewport рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рд╕реНрдкреНрд░рд╛рдЗрдЯ


рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдЖрд░реНрдХреЗрдб рдореЗрдВ 2D рдмрд┐рдЯрдореИрдк рдлреАрдЪрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдРрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛, рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЪреЗрддрди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдЯрдХрд░рд╛рд╡ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдкреНрд░рд┐рдЯ рдирд┐рд░реНрдорд╛рдг


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

 SPRITE_SCALING_COIN = 0.2 coin = arcade.Sprite("coin_01.png", SPRITE_SCALING_COIN) 

рдпрд╣ рдХреЛрдб рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдкреНрд░реЗрдд рдмрдирд╛рддрд╛ рд╣реИред рддрд╕реНрд╡реАрд░ рдореВрд▓ рдХреЗ 20% рддрдХ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред

рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реВрдЪреА


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

 def setup(self): """     . """ #    self.player_list = arcade.SpriteList() self.coin_list = arcade.SpriteList() #  self.score = 0 #    #    kenney.nl self.player_sprite = arcade.Sprite("images/character.png", SPRITE_SCALING_PLAYER) self.player_sprite.center_x = 50 #   self.player_sprite.center_y = 50 self.player_list.append(self.player_sprite) #   for i in range(COIN_COUNT): #    #     kenney.nl coin = arcade.Sprite("images/coin_01.png", SPRITE_SCALING_COIN) #    coin.center_x = random.randrange(SCREEN_WIDTH) coin.center_y = random.randrange(SCREEN_HEIGHT) #     self.coin_list.append(coin) 


рд╣рдо рд╕рд┐рдХреНрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╕рд┐рдХреНрдХреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 def on_draw(self): """   """ arcade.start_render() self.coin_list.draw() self.player_list.draw() 

рдЯреНрд░реИрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЯрдХрд░рд╛рд╡


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

 def update(self, delta_time): #     ,    . coins_hit_list = arcade.check_for_collision_with_list(self.player_sprite, self.coin_list) #      ,     . for coin in coins_hit_list: coin.kill() self.score += 1 

рдПрдХ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг collect_coins.py рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЦреЗрд▓ рднреМрддрд┐рдХреА


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

рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдХрд╛ рдЦреЗрд▓




рдПрдХ рд╢реАрд░реНрд╖ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╕рд░рд▓ рдЧреЗрдо рдХреЗ рд▓рд┐рдП, рдЖрд░реНрдХреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рджреАрд╡рд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛ред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реЗ wall_list рдХрд╣рддрд╛ рд╣реВрдВред рдлрд┐рд░ рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛрдб рдореЗрдВ рдПрдХ рднреМрддрд┐рдХ рдЗрдВрдЬрди рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite, self.wall_list) 

player_sprite рдХреЛ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ change_x рдФрд░ change_y рдХреЗ рд╕рд╛рде рдПрдХ рдЧрддрд┐ рд╡реЗрдХреНрдЯрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

 MOVEMENT_SPEED = 5 def on_key_press(self, key, modifiers): """    """ if key == arcade.key.UP: self.player_sprite.change_y = MOVEMENT_SPEED elif key == arcade.key.DOWN: self.player_sprite.change_y = -MOVEMENT_SPEED elif key == arcade.key.LEFT: self.player_sprite.change_x = -MOVEMENT_SPEED elif key == arcade.key.RIGHT: self.player_sprite.change_x = MOVEMENT_SPEED def on_key_release(self, key, modifiers): """,    """ if key == arcade.key.UP or key == arcade.key.DOWN: self.player_sprite.change_y = 0 elif key == arcade.key.LEFT or key == arcade.key.RIGHT: self.player_sprite.change_x = 0 

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рдХреЛрдб рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рдЧрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ Phys_engine.update () рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдЬреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рджреАрд╡рд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВред

 def update(self, delta_time): """     """ self.physics_engine.update() 

рдЗрд╕рдХрд╛ рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг sprite_move_walls.py рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо




рд╕рд╛рдЗрдб рд╡реНрдпреВ рдХреЗ рд╕рд╛рде рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЧреЗрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднреМрддрд┐рдХреА рдЗрдВрдЬрди рдХреЛ PhysicsEnginePlatformer рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 self.physics_engine = arcade.PhysicsEnginePlatformer(self.player_sprite, self.wall_list, gravity_constant=GRAVITY) 

рдЙрди рдЯрд╛рдЗрд▓реЛрдВ рдФрд░ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрддрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ, рдЖрдк рдЯрд╛рдЗрд▓реЗрдб рдЬреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг sprite_tiled_map.py рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЬрд╛рдиреЗрдВ


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

рдЖрд░реНрдХреЗрдб рд╕реНрдерд╛рдкрд┐рдд рдХреЗ рд╕рд╛рде рдбреЗрдореЛ рдЪрд▓рд╛рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 python -m arcade.examples.sprite_moving_platforms 

рдЕрдВрдд

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдпрд╣рд╛рдВ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рдЦреБрд▓реЗ рджрд┐рди рдкрд░ рд╕реНрдЯрд╛рд╕ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

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


All Articles