#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Jan 27 16:32:02 2020 @author: suwako """ import numpy as np class Mass(): def __init__(self, pos=(0,0), speed=(0,0), mass=1): self.pos = np.array(pos, dtype='float64') self.speed = np.array(speed, dtype='float64') self.mass = mass self.G = 0.0000001 def tick(self): self.pos += self.speed def apply_gravity(self, elements): for element in elements: d = element.pos - self.pos norm_d = np.linalg.norm(d) if norm_d != 0: u = d/norm_d norm = self.G * element.mass * (d[0]**2 + d[1]**2) self.speed += norm*u class Player(Mass): def __init__(self, keys={}, orientation=0, pos=(0, 0), speed=(0, 0), mass=1): Mass.__init__(self, pos=pos, speed=speed, mass=mass) self.orientation = orientation self.actions = {"thrust": False, "fire": False} self.actions.update(keys) def action(self, keys): self.actions.update(keys) if __name__ == "__main__": pass