_step
This commit is contained in:
parent
ff096eca52
commit
01544fb5cf
|
@ -5,7 +5,7 @@ from glob import glob
|
|||
|
||||
from pygame import Color, Rect, Surface, PixelArray
|
||||
from pygame.image import load
|
||||
from pygame.transform import flip, rotate
|
||||
from pygame.transform import flip
|
||||
from pygame.locals import *
|
||||
|
||||
from Animation import Animation
|
||||
|
@ -14,8 +14,6 @@ from extension import get_hue_shifted_surface, get_step
|
|||
|
||||
class Sprite(Animation):
|
||||
|
||||
N, W, S, E = range(4)
|
||||
|
||||
def __init__(self, parent, framerate=None, neighbors=[], mass=None):
|
||||
Animation.__init__(self, parent, self.shift_frame, framerate)
|
||||
self.frames = []
|
||||
|
@ -26,12 +24,11 @@ class Sprite(Animation):
|
|||
self.frameset_index = 0
|
||||
self.neighbors = neighbors
|
||||
self.mass = mass
|
||||
self.step = EVector()
|
||||
self._step = EVector()
|
||||
self.set_frameset(0)
|
||||
self.locations.append(Location(self))
|
||||
self.motion_overflow = Vector()
|
||||
self.display_surface = self.get_display_surface()
|
||||
self.rotation = self.N
|
||||
|
||||
def __getattr__(self, name):
|
||||
if name in ("location", "rect"):
|
||||
|
@ -138,16 +135,6 @@ class Sprite(Animation):
|
|||
frames[ii] = flip(frame, True, False)
|
||||
self.mirrored = not self.mirrored
|
||||
|
||||
def point(self, heading):
|
||||
center = self.location.center
|
||||
for ii, frame in enumerate(self.frames):
|
||||
self.frames[ii] = rotate(frame, abs(heading - self.rotation) * 90)
|
||||
for frameset in self.framesets:
|
||||
frameset.measure_rect()
|
||||
self.update_location_size()
|
||||
self.rotation = heading
|
||||
self.location.center = center
|
||||
|
||||
def clear_frames(self):
|
||||
self.frames = []
|
||||
for frameset in self.framesets:
|
||||
|
@ -224,18 +211,18 @@ class Sprite(Animation):
|
|||
frameset.reverse()
|
||||
|
||||
def set_step(self, dx=0, dy=0, magnitude=None, angle=0):
|
||||
self.step.set_step(dx, dy, magnitude, angle)
|
||||
self._step.set_step(dx, dy, magnitude, angle)
|
||||
|
||||
def cancel_step(self):
|
||||
self.step.set_step(0, 0)
|
||||
self._step.set_step(0, 0)
|
||||
|
||||
def is_stepping(self):
|
||||
return bool(self.step)
|
||||
return bool(self._step)
|
||||
|
||||
def update(self, areas=None, substitute=None):
|
||||
Animation.update(self)
|
||||
if self.is_stepping():
|
||||
self.move(self.step.dx, self.step.dy)
|
||||
self.move(self._step.dx, self._step.dy)
|
||||
for neighbor in self.neighbors:
|
||||
self.move(*get_step(self.location.center, neighbor.location.center,
|
||||
neighbor.mass))
|
||||
|
|
Loading…
Reference in New Issue