wip
This commit is contained in:
parent
eba8fd76fe
commit
f67570eed4
18 changed files with 1435 additions and 77 deletions
108
move_along_line.py
Normal file
108
move_along_line.py
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
import pygame
|
||||
|
||||
# Initialize Pygame
|
||||
pygame.init()
|
||||
|
||||
clock = pygame.time.Clock()
|
||||
# Set the window size and caption
|
||||
WINDOW_SIZE = (500, 500)
|
||||
screen = pygame.display.set_mode(WINDOW_SIZE)
|
||||
pygame.display.set_caption("Moving circle along a line")
|
||||
|
||||
# Define some colors
|
||||
WHITE = (255, 255, 255)
|
||||
BLACK = (0, 0, 0)
|
||||
|
||||
# Set up the starting position and ending position of the line
|
||||
start_pos = (50, 300)
|
||||
end_pos = (400, 400)
|
||||
|
||||
end_pos = (50, 300)
|
||||
start_pos = (400, 400)
|
||||
|
||||
# Set up the circle's initial position and movement speed
|
||||
circle_pos = start_pos
|
||||
circle_radius = 20
|
||||
movement_speed = 5
|
||||
|
||||
# # Game loop
|
||||
# running = True
|
||||
# while running:
|
||||
# # Handle events
|
||||
# for event in pygame.event.get():
|
||||
# if event.type == pygame.QUIT:
|
||||
# running = False
|
||||
|
||||
# # Clear the screen
|
||||
# screen.fill(WHITE)
|
||||
|
||||
# # Draw the line
|
||||
# pygame.draw.line(screen, BLACK, start_pos, end_pos)
|
||||
|
||||
# # Draw the circle at its current position
|
||||
# pygame.draw.circle(screen, BLACK, circle_pos, circle_radius)
|
||||
|
||||
# # Move the circle along the line
|
||||
# movement_vector = pygame.math.Vector2(
|
||||
# end_pos[0] - start_pos[0], end_pos[1] - start_pos[1]
|
||||
# )
|
||||
# movement_direction = movement_vector.normalize()
|
||||
# circle_pos = (
|
||||
# circle_pos[0] + movement_speed * movement_direction.x,
|
||||
# circle_pos[1] + movement_speed * movement_direction.y,
|
||||
# )
|
||||
|
||||
# # Check if the circle has reached the end of the line
|
||||
# if circle_pos.distance_to(end_pos) < movement_speed:
|
||||
# circle_pos = end_pos
|
||||
# running = False
|
||||
# # Update the display
|
||||
# pygame.display.update()
|
||||
|
||||
# clock.tick(60)
|
||||
|
||||
# # Quit Pygame
|
||||
# pygame.quit()
|
||||
|
||||
# Set up the starting position and ending position of the line
|
||||
start_pos = pygame.math.Vector2(50, 50)
|
||||
end_pos = pygame.math.Vector2(400, 400)
|
||||
|
||||
# Set up the circle's initial position
|
||||
circle_pos = pygame.math.Vector2(start_pos)
|
||||
|
||||
# Game loop
|
||||
running = True
|
||||
while running:
|
||||
# Handle events
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
running = False
|
||||
|
||||
# Clear the screen
|
||||
screen.fill(WHITE)
|
||||
|
||||
# Draw the line
|
||||
pygame.draw.line(screen, BLACK, start_pos, end_pos)
|
||||
|
||||
# Draw the circle at its current position
|
||||
pygame.draw.circle(
|
||||
screen, BLACK, [int(circle_pos.x), int(circle_pos.y)], circle_radius
|
||||
)
|
||||
|
||||
# Move the circle along the line
|
||||
movement_vector = end_pos - start_pos
|
||||
movement_direction = movement_vector.normalize()
|
||||
circle_pos += movement_speed * movement_direction
|
||||
|
||||
# Check if the circle has reached the end of the line
|
||||
if circle_pos.distance_to(end_pos) < movement_speed:
|
||||
circle_pos = end_pos
|
||||
running = False
|
||||
|
||||
# Update the display
|
||||
pygame.display.update()
|
||||
clock.tick(60)
|
||||
|
||||
# Quit Pygame
|
||||
pygame.quit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue