Classes: Starting Template¶

starting_template.py
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 """ Starting Template Once you have learned how to use classes, you can begin your program with this template. A walk-through of this code is available at: https://vimeo.com/168051968 """ import arcade SCREEN_WIDTH = 500 SCREEN_HEIGHT = 600 BALL_RADIUS = 20 class MyApplication(arcade.Window): """ Main application class. NOTE: Go ahead and delete the methods you don't need. If you do need a method, delete the 'pass' and replace it with your own code. Don't leave 'pass' in this program. """ def __init__(self, width, height): super().__init__(width, height) self.ball_x_position = BALL_RADIUS self.ball_x_pixels_per_second = 70 arcade.set_background_color(arcade.color.WHITE) # Note: # You can change how often the animate() method is called by using the # set_update_rate() method in the parent class. # The default is once every 1/80 of a second. # self.set_update_rate(1/80) def on_draw(self): """ Render the screen. """ # This command should happen before we start drawing. It will clear # the screen to the background color, and erase what we drew last frame. arcade.start_render() # Draw the circle arcade.draw_circle_filled(self.ball_x_position, SCREEN_HEIGHT // 2, BALL_RADIUS, arcade.color.GREEN) # Draw the text arcade.draw_text("This is a simple template to start your game.", 10, SCREEN_HEIGHT // 2, arcade.color.BLACK, 20) def update(self, delta_time): """ All the logic to move, and the game logic goes here. """ # Move the ball self.ball_x_position += self.ball_x_pixels_per_second * delta_time # Did the ball hit the right side of the screen while moving right? if self.ball_x_position > SCREEN_WIDTH - BALL_RADIUS \ and self.ball_x_pixels_per_second > 0: self.ball_x_pixels_per_second *= -1 # Did the ball hit the left side of the screen while moving left? if self.ball_x_position < BALL_RADIUS \ and self.ball_x_pixels_per_second < 0: self.ball_x_pixels_per_second *= -1 def on_key_press(self, key, key_modifiers): """ Called whenever a key on the keyboard is pressed. For a full list of keys, see: http://pythonhosted.org/arcade/arcade.key.html """ # See if the user hit Shift-Space # (Key modifiers are in powers of two, so you can detect multiple # modifiers by using a bit-wise 'and'.) if key == arcade.key.SPACE and key_modifiers == arcade.key.MOD_SHIFT: print("You pressed shift-space") # See if the user just hit space. elif key == arcade.key.SPACE: print("You pressed the space bar.") def on_key_release(self, key, key_modifiers): """ Called whenever the user lets off a previously pressed key. """ if key == arcade.key.SPACE: print("You stopped pressing the space bar.") def on_mouse_motion(self, x, y, delta_x, delta_y): """ Called whenever the mouse moves. """ pass def on_mouse_press(self, x, y, button, key_modifiers): """ Called when the user presses a mouse button. """ pass def on_mouse_release(self, x, y, button, key_modifiers): """ Called when a user releases a mouse button. """ pass def main(): """ Main method """ MyApplication(SCREEN_WIDTH, SCREEN_HEIGHT) arcade.run() if __name__ == "__main__": main()