def on_draw():
    arcade.start_render()
    arcade.draw_rectangle_filled(WIDTH * 1 / 5 + 20, HEIGHT / 4 + 30, 640, 480, arcade.color.LIGHT_GREEN)
    for i in range(len(ball_pos)):
        arcade.draw_circle_filled(ball_pos[i][0], ball_pos[i][1], 5, ball_pos[i][2])
    for i in range(len(history)):
        arcade.draw_line(ball_pos[history[i][0]][0], ball_pos[history[i][0]][1], ball_pos[history[i][1]][0],
                         ball_pos[history[i][1]][1], arcade.color.RED)
    arcade.draw_circle_filled(10, 740, 5, arcade.color.BLACK)  # Unaffected
    arcade.draw_circle_filled(10, 720, 5, arcade.color.RED)  # Infected
    arcade.draw_circle_filled(10, 700, 5, arcade.color.GRAY)  # Cured
    arcade.draw_circle_filled(10, 680, 5, arcade.color.YELLOW)  # Dead
    arcade.draw_text(
        f'Number unaffected: {population - len(history) - 1}\nNumber infected: {(len(history) + 1)-CURED-DEAD}\nNumber cured: {CURED}\nNumber deceased: {DEAD}\nTime elapsed: {(time_elapsed):.2f}',
        20, HEIGHT / 2 + 200,
        arcade.color.BLACK, 18)
    if not start:
        draw_button(WIDTH - 100, 50, 100, 30, arcade.color.GREEN, 'Start', arcade.color.LIGHT_GREEN, arcade.color.RED)
    else:
        draw_button(WIDTH - 100, 50, 100, 30, arcade.color.GREEN, 'Pause', arcade.color.LIGHT_GREEN, arcade.color.RED)
    sliders()
    sliders1()
    sliders2()
    draw_reset_button(WIDTH / 2, HEIGHT / 2 - 300, 150, 50, arcade.color.RED, "Reset", arcade.color.SALMON_PINK,
                      arcade.color.PINK)
    graph()
Esempio n. 2
0
def on_draw():
    arcade.start_render()
    # Draw in here...
    # arcade.draw_circle_filled(mouse_x, mouse_y, 25, ball_color)
    for i in range(len(ball_pos)):
        arcade.draw_circle_filled(ball_pos[i][0], ball_pos[i][1], 5, ball_pos[i][2])
    for i in range(len(history)):
        arcade.draw_line(ball_pos[history[i][0]][0], ball_pos[history[i][0]][1], ball_pos[history[i][1]][0],
                         ball_pos[history[i][1]][1], arcade.color.RED)
    arcade.draw_text(f'Number infected: {len(history) + 1}\nTime elapsed: {(time_elapsed):.2f}', 0, 0,
                     arcade.color.BLACK, 18)
Esempio n. 3
0
    def on_draw(self):
        """
        Render the screen.
        """

        # This command is necessary before drawing
        arcadeplus.start_render()

        # Draw the current position of each snowflake
        for snowflake in self.snowflake_list:
            arcadeplus.draw_circle_filled(snowflake.x, snowflake.y,
                                          snowflake.size,
                                          arcadeplus.color.WHITE)
Esempio n. 4
0
    def on_draw(self):
        """
        Render the screen.
        """

        # This command has to happen before we start drawing
        arcadeplus.start_render()

        for ball in self.ball_list:
            arcadeplus.draw_circle_filled(ball.x, ball.y, ball.size, ball.color)

        # Put the text on the screen.
        output = "Balls: {}".format(len(self.ball_list))
        arcadeplus.draw_text(output, 10, 20, arcadeplus.color.WHITE, 14)
Esempio n. 5
0
def main():
    arcadeplus.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, TITLE)
    arcadeplus.set_background_color(BACKGROUND_COLOR)
    arcadeplus.start_render()
    arcadeplus.draw_circle_filled(400, 250, 100, arcadeplus.color.BLACK)
    # load image
    image = arcadeplus.load_texture(resource_path('character.png'))
    arcadeplus.draw_texture_rectangle(200, 250, image.width, image.height,
                                      image)
    # load sound
    sound = arcadeplus.sound.load_sound(resource_path('cat-meow.wav'))
    arcadeplus.sound.play_sound(sound)
    arcadeplus.finish_render()
    arcadeplus.run()
    return
Esempio n. 6
0
def draw(_delta_time):
    """
    Use this function to draw everything to the screen.
    """

    # Start the render. This must happen before any drawing
    # commands. We do NOT need an stop render command.
    arcadeplus.start_render()

    # Draw our rectangle
    arcadeplus.draw_circle_filled(draw.x, draw.y, CIRCLE_RADIUS,
                              arcadeplus.color.BLACK)

    # Modify rectangles position based on the delta
    # vector. (Delta means change. You can also think
    # of this as our speed and direction.)
    draw.x += draw.delta_x
    draw.y += draw.delta_y

    draw.delta_y -= GRAVITY_CONSTANT

    # Figure out if we hit the left or right edge and need to reverse.
    if draw.x < CIRCLE_RADIUS and draw.delta_x < 0:
        draw.delta_x *= -BOUNCINESS
    elif draw.x > SCREEN_WIDTH - CIRCLE_RADIUS and draw.delta_x > 0:
        draw.delta_x *= -BOUNCINESS

    # See if we hit the bottom
    if draw.y < CIRCLE_RADIUS and draw.delta_y < 0:
        # If we bounce with a decent velocity, do a normal bounce.
        # Otherwise we won't have enough time resolution to accurate represent
        # the bounce and it will bounce forever. So we'll divide the bounciness
        # by half to let it settle out.
        if draw.delta_y * -1 > GRAVITY_CONSTANT * 15:
            draw.delta_y *= -BOUNCINESS
        else:
            draw.delta_y *= -BOUNCINESS / 2
Esempio n. 7
0
# Draw a filled in polygon
arcadeplus.draw_text("draw_polygon_filled", 123, 207, arcadeplus.color.BLACK,
                     9)
point_list = ((150, 240), (165, 240), (180, 255), (180, 285), (165, 300),
              (150, 300))
arcadeplus.draw_polygon_filled(point_list, arcadeplus.color.SPANISH_VIOLET)

# Draw an outline of a circle
arcadeplus.draw_text("draw_circle_outline", 243, 207, arcadeplus.color.BLACK,
                     10)
arcadeplus.draw_circle_outline(300, 285, 18, arcadeplus.color.WISTERIA, 3)

# Draw a filled in circle
arcadeplus.draw_text("draw_circle_filled", 363, 207, arcadeplus.color.BLACK,
                     10)
arcadeplus.draw_circle_filled(420, 285, 18, arcadeplus.color.GREEN)

# Draw an ellipse outline, and another one rotated
arcadeplus.draw_text("draw_ellipse_outline", 483, 207, arcadeplus.color.BLACK,
                     10)
arcadeplus.draw_ellipse_outline(540, 273, 15, 36, arcadeplus.color.AMBER, 3)
arcadeplus.draw_ellipse_outline(540, 336, 15, 36, arcadeplus.color.BLACK_BEAN,
                                3, 45)

# Draw a filled ellipse, and another one rotated
arcadeplus.draw_text("draw_ellipse_filled", 3, 3, arcadeplus.color.BLACK, 10)
arcadeplus.draw_ellipse_filled(60, 81, 15, 36, arcadeplus.color.AMBER)
arcadeplus.draw_ellipse_filled(60, 144, 15, 36, arcadeplus.color.BLACK_BEAN,
                               45)

# Draw an arc, and another one rotated
Esempio n. 8
0
COLUMN_SPACING = 20
ROW_SPACING = 20
LEFT_MARGIN = 110
BOTTOM_MARGIN = 110

# Open the window and set the background
arcadeplus.open_window(400, 400, "Complex Loops - Bottom Right Triangle")

arcadeplus.set_background_color(arcadeplus.color.WHITE)

# Start the render process. This must be done before any drawing commands.
arcadeplus.start_render()

# Loop for each row
for row in range(10):
    # Loop for each column
    # Change the number of columns depending on the row we are in
    for column in range(row, 10):
        # Calculate our location
        x = column * COLUMN_SPACING + LEFT_MARGIN
        y = row * ROW_SPACING + BOTTOM_MARGIN

        # Draw the item
        arcadeplus.draw_circle_filled(x, y, 7, arcadeplus.color.AO)

# Finish the render.
arcadeplus.finish_render()

# Keep the window up until someone closes it.
arcadeplus.run()
Esempio n. 9
0
 def draw(self):
     """ Draw the balls with the instance variables we have. """
     arcadeplus.draw_circle_filled(self.position_x, self.position_y,
                                   self.radius, self.color)
Esempio n. 10
0
    def on_draw(self):
        """
        Render the screen.
        """

        # Start the render process. This must be done before any drawing commands.
        arcadeplus.start_render()

        # Draw a grid
        # Draw vertical lines every 120 pixels
        for x in range(0, 601, 120):
            arcadeplus.draw_line(x, 0, x, 600, arcadeplus.color.BLACK, 2)

        # Draw horizontal lines every 200 pixels
        for y in range(0, 601, 200):
            arcadeplus.draw_line(0, y, 800, y, arcadeplus.color.BLACK, 2)

        # Draw a point
        arcadeplus.draw_text("draw_point", 3, 405, arcadeplus.color.BLACK, 12)
        arcadeplus.draw_point(60, 495, arcadeplus.color.RED, 10)

        # Draw a set of points
        arcadeplus.draw_text("draw_points", 123, 405, arcadeplus.color.BLACK,
                             12)
        point_list = ((165, 495), (165, 480), (165, 465), (195, 495),
                      (195, 480), (195, 465))
        arcadeplus.draw_points(point_list, arcadeplus.color.ZAFFRE, 10)

        # Draw a line
        arcadeplus.draw_text("draw_line", 243, 405, arcadeplus.color.BLACK, 12)
        arcadeplus.draw_line(270, 495, 300, 450, arcadeplus.color.WOOD_BROWN,
                             3)

        # Draw a set of lines
        arcadeplus.draw_text("draw_lines", 363, 405, arcadeplus.color.BLACK,
                             12)
        point_list = ((390, 450), (450, 450), (390, 480), (450, 480),
                      (390, 510), (450, 510))
        arcadeplus.draw_lines(point_list, arcadeplus.color.BLUE, 3)

        # Draw a line strip
        arcadeplus.draw_text("draw_line_strip", 483, 405,
                             arcadeplus.color.BLACK, 12)
        point_list = ((510, 450), (570, 450), (510, 480), (570, 480),
                      (510, 510), (570, 510))
        arcadeplus.draw_line_strip(point_list,
                                   arcadeplus.color.TROPICAL_RAIN_FOREST, 3)
        arcadeplus.draw_line_strip(point_list, arcadeplus.color.BEIGE)

        # Draw a polygon
        arcadeplus.draw_text("draw_polygon_outline", 3, 207,
                             arcadeplus.color.BLACK, 9)
        point_list = ((30, 240), (45, 240), (60, 255), (60, 285), (45, 300),
                      (30, 300))
        arcadeplus.draw_polygon_outline(point_list,
                                        arcadeplus.color.SPANISH_VIOLET, 3)

        # Draw a filled in polygon
        arcadeplus.draw_text("draw_polygon_filled", 123, 207,
                             arcadeplus.color.BLACK, 9)
        point_list = ((150, 240), (165, 240), (180, 255), (180, 285),
                      (165, 300), (150, 300))
        arcadeplus.draw_polygon_filled(point_list,
                                       arcadeplus.color.SPANISH_VIOLET)

        # Draw an outline of a circle
        arcadeplus.draw_text("draw_circle_outline", 243, 207,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_circle_outline(300, 285, 18, arcadeplus.color.WISTERIA,
                                       3)
        arcadeplus.draw_circle_outline(350, 285, 18, arcadeplus.color.WISTERIA)

        # Draw a filled in circle
        arcadeplus.draw_text("draw_circle_filled", 363, 207,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_circle_filled(420, 285, 18, arcadeplus.color.GREEN)

        # Draw an ellipse outline, and another one rotated
        arcadeplus.draw_text("draw_ellipse_outline", 483, 207,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_ellipse_outline(540, 273, 15, 36,
                                        arcadeplus.color.AMBER, 3)
        arcadeplus.draw_ellipse_outline(540, 336, 15, 36,
                                        arcadeplus.color.BLACK_BEAN, 3, 45)

        # Draw a filled ellipse, and another one rotated
        arcadeplus.draw_text("draw_ellipse_filled", 3, 3,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_ellipse_filled(60, 81, 15, 36, arcadeplus.color.AMBER)
        arcadeplus.draw_ellipse_filled(60, 144, 15, 36,
                                       arcadeplus.color.BLACK_BEAN, 45)

        # Draw an arc, and another one rotated
        arcadeplus.draw_text("draw_arc/filled_arc", 123, 3,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_arc_outline(150, 81, 15, 36,
                                    arcadeplus.color.BRIGHT_MAROON, 90, 360)
        arcadeplus.draw_arc_filled(150, 144, 15, 36,
                                   arcadeplus.color.BOTTLE_GREEN, 90, 360, 45)

        # Draw an rectangle outline
        arcadeplus.draw_text("draw_rect", 243, 3, arcadeplus.color.BLACK, 10)
        arcadeplus.draw_rectangle_outline(
            295, 100, 45, 65, arcadeplus.color.BRITISH_RACING_GREEN)
        arcadeplus.draw_rectangle_outline(
            295, 160, 20, 45, arcadeplus.color.BRITISH_RACING_GREEN, 3, 45)

        # Draw a filled in rectangle
        arcadeplus.draw_text("draw_filled_rect", 363, 3,
                             arcadeplus.color.BLACK, 10)
        arcadeplus.draw_rectangle_filled(420, 100, 45, 65,
                                         arcadeplus.color.BLUSH)
        arcadeplus.draw_rectangle_filled(420, 160, 20, 40,
                                         arcadeplus.color.BLUSH, 45)

        # Load and draw an image to the screen
        # Image from kenney.nl asset pack #1
        arcadeplus.draw_text("draw_bitmap", 483, 3, arcadeplus.color.BLACK, 12)
        texture = arcadeplus.load_texture(
            ":resources:images/space_shooter/playerShip1_orange.png")
        scale = .6
        # arcadeplus.draw_texture_rectangle(540, 120, scale * texture.width,
        #                               scale * texture.height, texture, 0)
        # arcadeplus.draw_texture_rectangle(540, 60, scale * texture.width,
        #                               scale * texture.height, texture, 45)
        #
        # Overlapping, with transparency test
        # Draw
        arcadeplus.draw_rectangle_filled(650, 100, 50, 50, (255, 0, 0))
        arcadeplus.draw_rectangle_filled(670, 100, 50, 50, (0, 255, 0, 127))

        # Test colors
        color = arcadeplus.get_pixel(635, 100)
        assert color == (255, 0, 0)
        color = arcadeplus.get_pixel(670, 100)
        assert color == (128, 127, 0)
        color = arcadeplus.get_pixel(690, 100)
        assert color == (128, 255, 128)

        # Test this other thing
        color = arcadeplus.get_pixel(100, 100)
        assert color == (255, 255, 255)

        # Run the get image. Ideally we'd test the output
        arcadeplus.get_image()
Esempio n. 11
0
    def on_draw(self):
        """
        Render the screen.
        """

        # Start the render process. This must be done before any drawing commands.
        arcadeplus.start_render()

        radius = 50
        width = radius * 2
        x = 200
        y = 100
        arcadeplus.draw_rectangle_outline(x, y, width, width,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_circle_outline(x, y, radius, arcadeplus.color.BLACK, 2)
        arcadeplus.draw_line(x - radius, y, x + radius, y,
                             arcadeplus.color.BLACK, 2)

        x = 200
        y = 300
        width = 150
        half_width = width / 2
        arcadeplus.draw_rectangle_outline(x, y, width, 50,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_ellipse_outline(x, y, width, 50,
                                        arcadeplus.color.AFRICAN_VIOLET, 2)
        arcadeplus.draw_line(x - half_width, y, x + half_width, y,
                             arcadeplus.color.RED, 2)

        x = 200
        y = 500
        width = 150
        half_width = width / 2
        arcadeplus.draw_rectangle_outline(x, y, width, 50,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_arc_outline(x, y, width, 50,
                                    arcadeplus.color.AFRICAN_VIOLET, 0, 180, 5)
        arcadeplus.draw_line(x - half_width, y, x + half_width, y,
                             arcadeplus.color.RED, 2)

        radius = 50
        width = radius * 2
        x = 400
        y = 100
        arcadeplus.draw_rectangle_outline(x, y, width, width,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_circle_filled(x, y, radius,
                                      arcadeplus.color.AFRICAN_VIOLET)
        arcadeplus.draw_line(x - radius, y, x + radius, y,
                             arcadeplus.color.BLACK, 2)

        x = 400
        y = 300
        width = 150
        half_width = width / 2
        arcadeplus.draw_rectangle_outline(x, y, width, 50,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_ellipse_filled(x, y, width, 50,
                                       arcadeplus.color.AFRICAN_VIOLET, 2)
        arcadeplus.draw_line(x - half_width, y, x + half_width, y,
                             arcadeplus.color.RED, 2)

        x = 400
        y = 500
        width = 150
        half_width = width / 2
        arcadeplus.draw_rectangle_outline(x, y, width, 50,
                                          arcadeplus.color.BLACK, 2)
        arcadeplus.draw_arc_filled(x, y, width, 50,
                                   arcadeplus.color.AFRICAN_VIOLET, 0, 180)
        arcadeplus.draw_line(x - half_width, y, x + half_width, y,
                             arcadeplus.color.RED, 2)
Esempio n. 12
0
# Open the window. Set the window title and dimensions
arcadeplus.open_window(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)

# Set the background color
arcadeplus.set_background_color(arcadeplus.color.WHITE)

# Clear screen and start render process
arcadeplus.start_render()

# --- Drawing Commands Will Go Here ---

# Draw the face
x = 300
y = 300
radius = 200
arcadeplus.draw_circle_filled(x, y, radius, arcadeplus.color.YELLOW)

# Draw the right eye
x = 370
y = 350
radius = 20
arcadeplus.draw_circle_filled(x, y, radius, arcadeplus.color.BLACK)

# Draw the left eye
x = 230
y = 350
radius = 20
arcadeplus.draw_circle_filled(x, y, radius, arcadeplus.color.BLACK)

# Draw the smile
x = 300