54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
from game import Game
|
|
from moon import Moon
|
|
from compute import *
|
|
import pygame
|
|
|
|
WHITE = (255, 255, 255)
|
|
BLACK = (0,0,0)
|
|
RED = (255,0,0)
|
|
BLUE = (0,0, 255)
|
|
EARTH_RADIUS = 100
|
|
MOON_RADIUS = 20
|
|
AP_RADIUS = 5
|
|
|
|
|
|
class Apollo(Moon):
|
|
def __init__(self, title="Apollo", fps=60, size=(640, 400), position_moon=(0, -150), theta=0.01):
|
|
super().__init__(title, fps, size)
|
|
self.position_moon = position_moon
|
|
self.position_ap = (0, 50)
|
|
self.theta = theta
|
|
self.theta_2 = -0.02
|
|
self.rot_moon = rot_2D(self.theta)
|
|
self.rot_ap = rot_2D(self.theta_2)
|
|
self.rel_position_ap = (0,30)
|
|
self.position_ap = (self.position_moon[0] + self.rel_position_ap[0],
|
|
self.position_moon[1] + self.rel_position_ap[1])
|
|
|
|
def update_game(self):
|
|
super().update_game()
|
|
new_rel_ap = matmul(self.rot_ap, transpose([list(self.rel_position_ap)]))
|
|
self.rel_position_ap = (new_rel_ap[0][0], new_rel_ap[1][0])
|
|
|
|
self.position_ap = (self.position_moon[0] + self.rel_position_ap[0],
|
|
self.position_moon[1] + self.rel_position_ap[1])
|
|
|
|
return True
|
|
|
|
def draw_game(self):
|
|
super().draw_game()
|
|
|
|
def draw_circles(self):
|
|
super().draw_circles()
|
|
self.draw_circle(self.position_ap, AP_RADIUS, RED)
|
|
|
|
def draw_circle(self, position, radius, color):
|
|
super().draw_circle(position, radius, color)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# created by ChatGPT
|
|
game = Apollo()
|
|
game.run()
|
|
|