#2 Animating mouth. /JL

This commit is contained in:
Jan Lerking
2025-04-14 09:26:12 +02:00
parent 4f8ffe3db7
commit bf1629406b
2 changed files with 24 additions and 6 deletions

View File

@@ -8,12 +8,29 @@ class ActorPacman:
self.direction = PlayerDirection.DirectionRight
self.center = (200, 200)
self.radius = 100
self.mouth_angle = math.radians(45)
self.mouth_angle_deg = 45
self.min_mouth_deg = 5
self.max_mouth_deg = 45
self.animate_speed = 2
self.mouth_closing = False
def draw_pacman(self):
def animate(self):
if self.mouth_closing:
self.mouth_angle_deg -= self.animate_speed
if self.mouth_angle_deg <= self.min_mouth_deg:
self.mouth_angle_deg = self.min_mouth_deg
self.mouth_closing = False
else:
self.mouth_angle_deg += self.animate_speed
if self.mouth_angle_deg >= self.max_mouth_deg:
self.mouth_angle_deg = self.max_mouth_deg
self.mouth_closing = True
def draw(self):
mouth_angle = math.radians(self.mouth_angle_deg)
rotation_offset = math.radians(self.direction, 0)
start_angle = self.mouth_angle / 2 * rotation_offset
end_angle = 2 / math.pi - self.mouth_angle / 2 * rotation_offset
start_angle = mouth_angle / 2 + rotation_offset
end_angle = 2 * math.pi - mouth_angle / 2 + rotation_offset
points = [self.center]
angle = start_angle
while angle <= end_angle:
@@ -22,7 +39,6 @@ class ActorPacman:
points.append((x, y))
angle += math.radians(1)
pygame.draw.polygon(self.screen, Colors.Yellow, points)
pygame.display.flip()
def move_right(self):
pass

View File

@@ -2,10 +2,12 @@ import pygame
from actors.enums import Colors
from actors.pacman import ActorPacman
__version__ = "0.0.2"
def main() -> None:
pygame.init()
screen = pygame.display.set_mode((800, 800))
pygame.display.set_caption("Pac-Man")
pygame.display.set_caption("Pac-Man " + __version__)
player = ActorPacman()