40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import os
|
|
|
|
import pygame
|
|
|
|
from moon.moon import Moon
|
|
from numeric.compute import rot_2D, matmul
|
|
|
|
|
|
class Apollo(Moon):
|
|
def __init__(self, orbiter_size: int=None, orbiter_distance:int=None, orbiter_speed:float=None):
|
|
super().__init__()
|
|
|
|
if orbiter_size is None:
|
|
self.orbiter_size = int(os.getenv("ORBITER_SIZE", "4"))
|
|
else:
|
|
self.orbiter_size = orbiter_size
|
|
if orbiter_distance is None:
|
|
self.orbiter_distance = int(os.getenv("ORBITER_DISTANCE", "50"))
|
|
else:
|
|
self.orbiter_distance = orbiter_distance
|
|
if orbiter_speed is None:
|
|
self.orbiter_speed = float(os.getenv("ORBITER_SPEED", "1"))
|
|
else:
|
|
self.orbiter_speed = orbiter_speed
|
|
|
|
self.orbiter_position = None
|
|
|
|
def update_game(self):
|
|
super().update_game()
|
|
self.orbiter_position = self.get_orbit_position(
|
|
self.orbiter_distance,
|
|
bary_center=self.moon_position,
|
|
angle=-self.angle
|
|
)
|
|
return True
|
|
|
|
def draw_game(self):
|
|
super().draw_game()
|
|
pygame.draw.circle(self.screen, (255,0,0), self.orbiter_position, self.orbiter_size)
|
|
pygame.display.flip() |