-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBasicObject.py
More file actions
40 lines (36 loc) · 1.24 KB
/
BasicObject.py
File metadata and controls
40 lines (36 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pygame
import math
class BasicObject:
def __init__(self,gameObjects,rect):
self.rect = rect
self.active = True
self.gameObjects = gameObjects
def step(self):
pass
def draw(self):
pass
def collision(self,gameObjects):
pass
def getCenterX(self):
return self.rect.left+self.rect.width/2
def getCenterY(self):
return self.rect.top+self.rect.height/2
def getBottomY(self):
return self.rect.top+self.rect.height
def angle_between_vectors_degrees(self,u, v):
dot_product = sum(i*j for i, j in zip(u, v))
norm_u = math.sqrt(sum(i**2 for i in u))
norm_v = math.sqrt(sum(i**2 for i in v))
cos_theta = dot_product / (norm_u * norm_v)
angle_rad = math.acos(cos_theta)
angle_deg = math.degrees(angle_rad)
return angle_deg
def getAxisDistToObjectX(self,other):
return other.getCenterX()-self.getCenterX()
def getAxisDistToObjectY(self,other):
return other.getCenterY()-self.getCenterY()
def createObject(self,obj):
self.gameObjects.append(obj)
def removeObject(self,obj):
if obj in self.gameObjects:
self.gameObjects.remove(obj)