diff --git a/assets/planet/end/00001.png b/assets/planet/end/00001.png deleted file mode 100644 index df6154a..0000000 Binary files a/assets/planet/end/00001.png and /dev/null differ diff --git a/assets/planet/setup/00001.png b/assets/planet/setup/00001.png deleted file mode 100644 index df6154a..0000000 Binary files a/assets/planet/setup/00001.png and /dev/null differ diff --git a/assets/ship/loop/00001.png b/assets/ship/loop/00001.png index 2d723b0..927cc70 100644 Binary files a/assets/ship/loop/00001.png and b/assets/ship/loop/00001.png differ diff --git a/assets_sources/ship/Makefile b/assets_sources/ship/Makefile deleted file mode 120000 index 6e0b391..0000000 --- a/assets_sources/ship/Makefile +++ /dev/null @@ -1 +0,0 @@ -../in_Makefile \ No newline at end of file diff --git a/assets_sources/ship/loop.gif b/assets_sources/ship/loop.gif index 4c4d9c5..79de011 100644 Binary files a/assets_sources/ship/loop.gif and b/assets_sources/ship/loop.gif differ diff --git a/assets_sources/ship_fire/Makefile b/assets_sources/ship_fire/Makefile deleted file mode 120000 index 6e0b391..0000000 --- a/assets_sources/ship_fire/Makefile +++ /dev/null @@ -1 +0,0 @@ -../in_Makefile \ No newline at end of file diff --git a/assets_sources/ship_fire_thrust/Makefile b/assets_sources/ship_fire_thrust/Makefile deleted file mode 120000 index 6e0b391..0000000 --- a/assets_sources/ship_fire_thrust/Makefile +++ /dev/null @@ -1 +0,0 @@ -../in_Makefile \ No newline at end of file diff --git a/assets_sources/ship_thrust/Makefile b/assets_sources/ship_thrust/Makefile deleted file mode 120000 index 6e0b391..0000000 --- a/assets_sources/ship_thrust/Makefile +++ /dev/null @@ -1 +0,0 @@ -../in_Makefile \ No newline at end of file diff --git a/main.py b/main.py index f980853..f36273b 100755 --- a/main.py +++ b/main.py @@ -81,9 +81,11 @@ while 1: for element in elements: element.apply_gravity(elements) element.tick(camera=camera) + ori = elements[-1].pos + ori_spe = elements[-1].speed for element in elements: - element.pos = element.pos - elements[-1].pos - element.speed = element.speed - elements[-1].speed + element.pos = element.pos - ori + element.speed = element.speed - ori_spe origin=elements[follow].pos for element in elements: element.apply(camera=camera, origin=origin) diff --git a/mecha.py b/mecha.py index 69201c8..bbf92b2 100755 --- a/mecha.py +++ b/mecha.py @@ -16,8 +16,14 @@ class Mass(): self.mass = mass self.G = 0.0000001 - def tick(self, origin=np.array((0, 0), dtype='float64')): - self.pos += self.speed - origin + def tick(self): + self.pos += self.speed + + def ref(self, + origin=np.array((0, 0), dtype='float64'), + speed=np.array((0, 0), dtype='float64')): + self.pos -= origin + self.speed -= speed def apply_gravity(self, elements): for element in elements: diff --git a/visual.py b/visual.py index 42051b0..c794c7b 100755 --- a/visual.py +++ b/visual.py @@ -26,8 +26,10 @@ class Obj(): scale=1, reference=np.array((0, 0), dtype='float64'), size=(0, 0)): - npsize=np.array(size, dtype='float64')/(2*scale) - scaled_pos = scale * (self.mecha.pos - reference + npsize) + npsize=np.array(size, dtype='float64') + scaled_pos = scale * (self.mecha.pos - reference + npsize/(2*scale)) + if np.linalg.norm(scaled_pos - npsize/2) > max(size): + return scaled_dimension = (scale*self.dimension()).astype(int) scaled_image = pygame.transform.scale(self.image, scaled_dimension) scaled_image = pygame.transform.rotate(scaled_image, @@ -40,21 +42,21 @@ class Obj(): class Star(Obj): def __init__(self, **keyargs): self.mecha = mecha.Player(**keyargs) - self.image = pygame.image.load("assets/star.gif") + self.image = pygame.image.load("assets/ship/loop/00001.png") self.position = self.image.get_rect() class Planet(Obj): def __init__(self, **keyargs): self.mecha = mecha.Player(**keyargs) - self.image = pygame.image.load("assets/planet.gif") + self.image = pygame.image.load("assets/planet/loop/00001.png") self.position = self.image.get_rect() class Player(Obj): def __init__(self, **keyargs): self.mecha = mecha.Player(**keyargs) - self.image = pygame.image.load("assets/ship/setup/0").convert_alpha() + self.image = pygame.image.load("assets/ship/loop/00001.png").convert_alpha() self.position = self.image.get_rect() @@ -63,12 +65,12 @@ if __name__ == "__main__": pygame.init() black = (0, 0, 0) size = width, height = 1366, 720 - TICK_RATE = 60 + TICK_RATE = 30 keys = set() tick = (time.time(), time.time(), 0) screen = pygame.display.set_mode(size, flags=pygame.RESIZABLE) - elements = [Player(speed=(-5, 30), pos=(10, 1)), Player()] + elements = [Player(speed=(5, 0), pos=(10, -200)), Player(speed=(-5, 0), pos=(10, 200), mass = 2), Planet(mass=200)] reference = 1 joy=[1, 1] while 1: @@ -99,15 +101,18 @@ if __name__ == "__main__": if key in [275,276,273,274]: exec("joy" + ("[0]+","[0]-","[1]+","[1]-")[[275,276,273,274].index(key)] + "=1") elements[1].mecha.orientation=joy[0]*(-3) - for element in elements[::-1]: + for element in elements: element.mecha.apply_gravity([element.mecha for element in elements]) - element.mecha.tick(origin=elements[0].mecha.pos) - if i <= 2: + element.mecha.tick() + ori,speed=origin=elements[1].mecha.pos, origin=elements[1].mecha.speed + for element in elements: + element.mecha.ref(origin=ori, speed=speed) + if i < 2: for element in elements: - element.draw(scale=10**(joy[1]*0.05), reference=elements[1].mecha.pos, size=screen.get_size()) + element.draw(scale=10**(joy[1]*0.05), reference=elements[reference].mecha.pos, size=screen.get_size()) pygame.display.flip() # for element in elements: # element.apply(camera=camera, origin=origin) # screen.blit(element.image, element.position) time.sleep(0.001) - if tick[2]%60 == 0 : print(elements[1].mecha.pos) \ No newline at end of file + if tick[2]%60 == 0 : print(elements[2].mecha.pos, elements[2].mecha.speed) \ No newline at end of file