|
| 1 | +import pyray |
| 2 | +from raylib.colors import ( |
| 3 | + RAYWHITE, |
| 4 | + DARKGRAY, |
| 5 | + DARKBLUE, |
| 6 | + SKYBLUE, |
| 7 | + MAROON, |
| 8 | + ORANGE, |
| 9 | + RED, |
| 10 | + VIOLET, |
| 11 | + BEIGE, |
| 12 | + BROWN, |
| 13 | + BLACK, |
| 14 | + GREEN, |
| 15 | + GOLD |
| 16 | +) |
| 17 | + |
| 18 | + |
| 19 | +# Initialization |
| 20 | +screenWidth = 800 |
| 21 | +screenHeight = 450 |
| 22 | +pyray.init_window(screenWidth, screenHeight, "raylib [shapes] example - basic shapes drawing") |
| 23 | + |
| 24 | +rotation = 0.0 |
| 25 | + |
| 26 | +pyray.set_target_fps(60) |
| 27 | + |
| 28 | +# Main game loop |
| 29 | +while not pyray.window_should_close(): |
| 30 | + # Update |
| 31 | + rotation += 0.2 |
| 32 | + |
| 33 | + # Draw |
| 34 | + pyray.begin_drawing() |
| 35 | + |
| 36 | + pyray.clear_background(RAYWHITE) |
| 37 | + |
| 38 | + pyray.draw_text("some basic shapes available on raylib", 20, 20, 20, DARKGRAY) |
| 39 | + |
| 40 | + # Circle shapes and lines |
| 41 | + pyray.draw_circle(screenWidth // 5, 120, 35, DARKBLUE) |
| 42 | + pyray.draw_circle_gradient(screenWidth // 5, 220, 60, GREEN, SKYBLUE) |
| 43 | + pyray.draw_circle_lines(screenWidth // 5, 340, 80, DARKBLUE) |
| 44 | + |
| 45 | + # Rectangle shapes and lines |
| 46 | + pyray.draw_rectangle(screenWidth // 4 * 2 - 60, 100, 120, 60, RED) |
| 47 | + pyray.draw_rectangle_gradient_h(screenWidth // 4 * 2 - 90, 170, 180, 130, MAROON, GOLD) |
| 48 | + pyray.draw_rectangle_lines(screenWidth // 4 * 2 - 40, 320, 80, 60, ORANGE) |
| 49 | + |
| 50 | + # Triangle shapes and lines |
| 51 | + pyray.draw_triangle(pyray.Vector2(screenWidth / 4.0 * 3.0, 80.0), |
| 52 | + pyray.Vector2(screenWidth / 4.0 * 3.0 - 60.0, 150.0), |
| 53 | + pyray.Vector2(screenWidth / 4.0 * 3.0 + 60.0, 150.0), VIOLET) |
| 54 | + |
| 55 | + pyray.draw_triangle_lines(pyray.Vector2(screenWidth / 4.0 * 3.0, 160.0), |
| 56 | + pyray.Vector2(screenWidth / 4.0 * 3.0 - 20.0, 230.0), |
| 57 | + pyray.Vector2(screenWidth / 4.0 * 3.0 + 20.0, 230.0), DARKBLUE) |
| 58 | + |
| 59 | + # Polygon shapes and lines |
| 60 | + pyray.draw_poly(pyray.Vector2(screenWidth / 4.0 * 3, 330), 6, 80, rotation, BROWN) |
| 61 | + pyray.draw_poly_lines(pyray.Vector2(screenWidth / 4.0 * 3, 330), 6, 90, rotation, BROWN) |
| 62 | + pyray.draw_poly_lines_ex(pyray.Vector2(screenWidth / 4.0 * 3, 330), 6, 85, rotation, 6, BEIGE) |
| 63 | + |
| 64 | + # NOTE: We draw all LINES based shapes together to optimize internal drawing, |
| 65 | + # this way, all LINES are rendered in a single draw pass |
| 66 | + pyray.draw_line(18, 42, screenWidth - 18, 42, BLACK) |
| 67 | + |
| 68 | + pyray.end_drawing() |
| 69 | + |
| 70 | +# De-Initialization |
| 71 | +pyray.close_window() |
0 commit comments