39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
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})" |