from __future__ import annotations from ... import config from .Position import Position from .Point import Point import time import math class Ball: def __init__(self) -> None: self.size: float self.position: Position self.angle: float self.speed: float self.reset() self.speed = 0 def reset(self) -> None: self.size = config.BALL_SIZE self.position = Position(Point(config.BALL_SPAWN_POS_X + self.size / 2, config.BALL_SPAWN_POS_Y + self.size / 2), time.time()) self.angle = math.pi * 0 self.speed = config.BALL_SPEED_START def to_dict(self) -> dict: data: dict = { "size": self.size, "speed": self.speed, "position": self.position.to_dict(), "angle": self.angle, } return data def __str__(self) -> str: return f"Ball(size: {self.size}, speed: {self.speed}, angle: {self.angle}, position: {self.position})"