94 lines
2.6 KiB
Python
94 lines
2.6 KiB
Python
"""
|
|
Example "Arcade" library code.
|
|
|
|
This example shows how to use functions to draw a scene.
|
|
It does not assume that the programmer knows how to use classes yet.
|
|
|
|
A video walk-through of this code is available at:
|
|
https://vimeo.com/167296062
|
|
|
|
If Python and Arcade are installed, this example can be run from the command line with:
|
|
python -m arcade.examples.drawing_with_functions
|
|
"""
|
|
|
|
# Library imports
|
|
import arcade
|
|
|
|
# Constants - variables that do not change
|
|
SCREEN_WIDTH = 600
|
|
SCREEN_HEIGHT = 600
|
|
SCREEN_TITLE = "Drawing With Functions Example"
|
|
|
|
|
|
def draw_background():
|
|
"""
|
|
This function draws the background. Specifically, the sky and ground.
|
|
"""
|
|
# Draw the sky in the top two-thirds
|
|
arcade.draw_lrtb_rectangle_filled(0,
|
|
SCREEN_WIDTH,
|
|
SCREEN_HEIGHT,
|
|
SCREEN_HEIGHT * (1 / 3),
|
|
arcade.color.SKY_BLUE)
|
|
|
|
# Draw the ground in the bottom third
|
|
arcade.draw_lrtb_rectangle_filled(0,
|
|
SCREEN_WIDTH,
|
|
SCREEN_HEIGHT / 3,
|
|
0,
|
|
arcade.color.DARK_SPRING_GREEN)
|
|
|
|
|
|
def draw_bird(x, y):
|
|
"""
|
|
Draw a bird using a couple arcs.
|
|
"""
|
|
arcade.draw_arc_outline(x, y, 20, 20, arcade.color.BLACK, 0, 90)
|
|
arcade.draw_arc_outline(x + 40, y, 20, 20, arcade.color.BLACK, 90, 180)
|
|
|
|
|
|
def draw_pine_tree(x, y):
|
|
"""
|
|
This function draws a pine tree at the specified location.
|
|
"""
|
|
# Draw the triangle on top of the trunk
|
|
arcade.draw_triangle_filled(x + 40, y,
|
|
x, y - 100,
|
|
x + 80, y - 100,
|
|
arcade.color.DARK_GREEN)
|
|
|
|
# Draw the trunk
|
|
arcade.draw_lrtb_rectangle_filled(x + 30, x + 50, y - 100, y - 140,
|
|
arcade.color.DARK_BROWN)
|
|
|
|
|
|
def main():
|
|
"""
|
|
This is the main program.
|
|
"""
|
|
|
|
# Open the window
|
|
arcade.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
|
|
|
|
# Start the render process. This must be done before any drawing commands.
|
|
arcade.start_render()
|
|
|
|
# Call our drawing functions.
|
|
draw_background()
|
|
draw_pine_tree(50, 250)
|
|
draw_pine_tree(350, 320)
|
|
draw_bird(70, 500)
|
|
draw_bird(470, 550)
|
|
|
|
# Finish the render.
|
|
# Nothing will be drawn without this.
|
|
# Must happen after all draw commands
|
|
arcade.finish_render()
|
|
|
|
# Keep the window up until someone closes it.
|
|
arcade.run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|