Prog3A_JW/lab_01/apollo.py
2025-10-30 16:47:01 +01:00

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()