diff --git a/NS.py b/NS.py index ab25d9a..a188df2 100644 --- a/NS.py +++ b/NS.py @@ -206,6 +206,21 @@ class Platform(GameChild): def get_pressed(self): return [light.position for light in self.lights if light.pressed] + def get_edge_pressed(self): + pressed = self.get_pressed() + if NS.NW in pressed and NS.NE in pressed: + return NS.N + elif NS.NE in pressed and NS.SW in pressed: + return NS.NE + elif NS.NE in pressed and NS.SE in pressed: + return NS.E + elif NS.NW in pressed and NS.SE in pressed: + return NS.NW + elif NS.SE in pressed and NS.SW in pressed: + return NS.S + elif NS.SW in pressed and NS.NW in pressed: + return NS.W + def update(self): for light in self.lights: light.update() @@ -323,36 +338,36 @@ class Chemtrails(GameChild): def orient(self): ds = self.get_display_surface() - pressed = self.get_game().platform.get_pressed() - if NS.NW in pressed and NS.NE in pressed: + edge = self.get_game().platform.get_edge_pressed() + if edge == NS.N: rect = self.image.get_rect() rect.center = ds.get_width() / 2, NS.FRONT - 30 ds.blit(self.image, rect.topleft) self.orientation = NS.N - elif NS.NE in pressed and NS.SE in pressed: + elif edge == NS.E: image = rotate(self.image, 270) rect = image.get_rect() rect.center = ds.get_width() / 2 + NS.FRONT_WIDTH / 2, NS.FRONT + NS.LENGTH * NS.STEP + 10 ds.blit(image, rect.topleft) self.orientation = NS.E - elif NS.SE in pressed and NS.SW in pressed: + elif edge == NS.S: rect = self.image.get_rect() rect.center = ds.get_width() / 2, NS.FRONT + NS.LENGTH - NS.LENGTH * NS.STEP - 20 ds.blit(self.image, rect.topleft) self.orientation = NS.S - elif NS.SW in pressed and NS.NW in pressed: + elif edge == NS.W: image = rotate(self.image, 270) rect = image.get_rect() rect.center = ds.get_width() / 2 - NS.FRONT_WIDTH / 2 + 70, NS.FRONT + NS.LENGTH * NS.STEP + 10 ds.blit(image, rect.topleft) self.orientation = NS.W - elif NS.NW in pressed and NS.SE in pressed: + elif edge == NS.NW: image = rotate(self.image, 315) rect = image.get_rect() rect.center = ds.get_width() / 2 + 45, NS.FRONT + NS.LENGTH * NS.STEP - 40 ds.blit(image, rect.topleft) self.orientation = NS.NW - elif NS.NE in pressed and NS.SW in pressed: + elif edge == NS.NE: image = rotate(self.image, 45) rect = image.get_rect() rect.center = ds.get_width() / 2 - 30, NS.FRONT + NS.LENGTH * NS.STEP - 50