overhaul to the collision system... should have maybe made more commits.
This commit is contained in:
38
transform.py
Normal file
38
transform.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from dataclasses import dataclass
|
||||
from math import pi
|
||||
|
||||
import pygame as pg
|
||||
|
||||
@dataclass
|
||||
class Transform:
|
||||
|
||||
position: pg.Vector2
|
||||
rotation: pg.Vector2 = 0.0
|
||||
scale: float = 1.0
|
||||
parent: 'Transform' = None
|
||||
|
||||
@property
|
||||
def global_position(self):
|
||||
if self.parent is None:
|
||||
return self.position
|
||||
return self.position + self.parent.global_position
|
||||
|
||||
@property
|
||||
def global_rotation(self):
|
||||
if self.parent is None:
|
||||
return self.rotation
|
||||
return self.position + self.parent.global_rotation
|
||||
|
||||
@property
|
||||
def global_scale(self):
|
||||
if self.parent is None:
|
||||
return self.scale
|
||||
return self.scale * self.parent.global_scale
|
||||
|
||||
@property
|
||||
def global_degrees(self):
|
||||
return self.global_rotation * (180.0 / pi)
|
||||
|
||||
@property
|
||||
def degrees(self):
|
||||
return self.rotation * (180.0 / pi)
|
||||
Reference in New Issue
Block a user