This commit is contained in:
Frank DeMarco 2018-06-21 16:07:11 -04:00
parent 9f074a70ab
commit bda97667fc
1 changed files with 29 additions and 22 deletions

51
NS.py
View File

@ -1412,6 +1412,8 @@ class Boss(Animation):
class Sword(Animation):
OFFSET = 10
def __init__(self, parent):
Animation.__init__(self, parent)
image = load(self.get_resource("Sword.png")).convert_alpha()
@ -1483,31 +1485,36 @@ class Sword(Animation):
def update(self):
Animation.update(self)
display_count = 0
displayed_positions = []
displayed_sprites = []
offset = [self.OFFSET] * 6
for sprite in self.sprites:
if not sprite.is_hidden():
if sprite.sword_position not in displayed_positions:
display_count += 1
displayed_positions.append(sprite.sword_position)
displayed_sprites.append(sprite)
display_count += 1
offset[sprite.sword_position] -= self.OFFSET
display_index = 0
for sprite in reversed(displayed_sprites):
display_index += 1
alpha = int(float(display_index) / display_count * 255)
frame = sprite.get_current_frame()
surface = frame.copy()
rect = surface.get_rect()
colors = self.get_game().platform.get_color_pair_from_edge(sprite.sword_position)
color_a = colors[0].r, colors[0].g, colors[0].b, alpha
color_b = colors[1].r, colors[1].g, colors[1].b, alpha
if sprite.sword_position == NS.N or sprite.sword_position == NS.S:
surface.fill(color_a, (0, 0, rect.w / 2, rect.h), BLEND_RGBA_MULT)
surface.fill(color_b, (rect.centerx, 0, rect.w / 2, rect.h), BLEND_RGBA_MULT)
else:
surface.fill(color_a, (0, 0, rect.w, rect.h / 2), BLEND_RGBA_MULT)
surface.fill(color_b, (0, rect.centery, rect.w, rect.h / 2), BLEND_RGBA_MULT)
self.get_display_surface().blit(surface, sprite.location.topleft)
for sprite in reversed(self.sprites):
if not sprite.is_hidden():
display_index += 1
alpha = int(float(display_index) / display_count * 255)
frame = sprite.get_current_frame()
surface = frame.copy()
rect = surface.get_rect()
colors = self.get_game().platform.get_color_pair_from_edge(sprite.sword_position)
color_a = colors[0].r, colors[0].g, colors[0].b, alpha
color_b = colors[1].r, colors[1].g, colors[1].b, alpha
if sprite.sword_position == NS.NE:
location = sprite.location.move(*([offset[sprite.sword_position]] * 2)).topleft
else:
location = sprite.location.move(offset[sprite.sword_position],
-offset[sprite.sword_position])
if sprite.sword_position == NS.N or sprite.sword_position == NS.S:
surface.fill(color_a, (0, 0, rect.w / 2, rect.h), BLEND_RGBA_MULT)
surface.fill(color_b, (rect.centerx, 0, rect.w / 2, rect.h), BLEND_RGBA_MULT)
self.get_display_surface().blit(surface, location)
else:
surface.fill(color_a, (0, 0, rect.w, rect.h / 2), BLEND_RGBA_MULT)
surface.fill(color_b, (0, rect.centery, rect.w, rect.h / 2), BLEND_RGBA_MULT)
self.get_display_surface().blit(surface, location)
offset[sprite.sword_position] += self.OFFSET
# sprite.update()