Classes: Starting Template¶
Starting Template for the Arcade Library from Paul Vincent Craven on Vimeo.
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 | """
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
window = MyApplication(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
|