offset
This commit is contained in:
parent
9f074a70ab
commit
bda97667fc
21
NS.py
21
NS.py
|
@ -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,16 +1485,14 @@ 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)
|
||||
offset[sprite.sword_position] -= self.OFFSET
|
||||
display_index = 0
|
||||
for sprite in reversed(displayed_sprites):
|
||||
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()
|
||||
|
@ -1501,13 +1501,20 @@ class Sword(Animation):
|
|||
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, sprite.location.topleft)
|
||||
self.get_display_surface().blit(surface, location)
|
||||
offset[sprite.sword_position] += self.OFFSET
|
||||
# sprite.update()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue