From 9e1a34d8b93cf56eb86c1e215cb639bf42ea7bb8 Mon Sep 17 00:00:00 2001 From: Real Python Bot <42617967+realpython-bot@users.noreply.github.com> Date: Wed, 11 Nov 2026 06:19:15 +0000 Subject: [PATCH] Sync arcade-a-primer with the maintenance update of Arcade: A Primer on the Python Game Framework Port the scripts to arcade 3.3: call self.clear() instead of arcade.start_render() in on_draw(), accept delta_time in FlyingSprite.update(), replace the removed rectangle drawing functions, and pin arcade==3.3.3 in requirements.txt. Co-Authored-By: Claude Opus 5.5 --- arcade-a-primer/arcade_basic_oop.py | 2 +- arcade-a-primer/arcade_draw_shapes.py | 12 +++++++----- arcade-a-primer/arcade_game.py | 6 +++--- arcade-a-primer/requirements.txt | 1 + 4 files changed, 12 insertions(+), 9 deletions(-) create mode 100644 arcade-a-primer/requirements.txt diff --git a/arcade-a-primer/arcade_basic_oop.py b/arcade-a-primer/arcade_basic_oop.py index 2967b608df..51cd82b401 100644 --- a/arcade-a-primer/arcade_basic_oop.py +++ b/arcade-a-primer/arcade_basic_oop.py @@ -29,7 +29,7 @@ def on_draw(self): """Called whenever we need to draw our window""" # Clear the screen and start drawing - arcade.start_render() + self.clear() # Draw a blue circle arcade.draw_circle_filled( diff --git a/arcade-a-primer/arcade_draw_shapes.py b/arcade-a-primer/arcade_draw_shapes.py index 25070b6829..63e27d34e9 100644 --- a/arcade-a-primer/arcade_draw_shapes.py +++ b/arcade-a-primer/arcade_draw_shapes.py @@ -28,7 +28,7 @@ def on_draw(self): """Called whenever we need to draw our window""" # Clear the screen and start drawing - arcade.start_render() + self.clear() # Draw a blue arc arcade.draw_arc_filled(100, 100, 40, 40, arcade.color.BLUE, 0, 125) @@ -62,11 +62,13 @@ def on_draw(self): ) # Draw some rectangles - arcade.draw_rectangle_filled(100, 500, 150, 75, arcade.color.AZURE) - arcade.draw_lrtb_rectangle_filled( - 150, 250, 575, 525, arcade.color.AMARANTH_PINK + arcade.draw_rect_filled( + arcade.XYWH(100, 500, 150, 75), arcade.color.AZURE ) - arcade.draw_xywh_rectangle_filled( + arcade.draw_lrbt_rectangle_filled( + 150, 250, 525, 575, arcade.color.AMARANTH_PINK + ) + arcade.draw_lbwh_rectangle_filled( 200, 550, 150, 75, arcade.color.ASPARAGUS ) diff --git a/arcade-a-primer/arcade_game.py b/arcade-a-primer/arcade_game.py index dcc96f5be4..93f61a4ee5 100644 --- a/arcade-a-primer/arcade_game.py +++ b/arcade-a-primer/arcade_game.py @@ -20,13 +20,13 @@ class FlyingSprite(arcade.Sprite): Flying sprites include enemies and clouds """ - def update(self): + def update(self, delta_time: float = 1 / 60): """Update the position of the sprite When it moves off screen to the left, remove it """ # Move the sprite - super().update() + super().update(delta_time) # Remove us if we're off screen if self.right < 0: @@ -237,7 +237,7 @@ def on_update(self, delta_time: float): def on_draw(self): """Draw all game objects""" - arcade.start_render() + self.clear() self.all_sprites.draw() diff --git a/arcade-a-primer/requirements.txt b/arcade-a-primer/requirements.txt new file mode 100644 index 0000000000..f1e7a7479e --- /dev/null +++ b/arcade-a-primer/requirements.txt @@ -0,0 +1 @@ +arcade==3.3.3