コード例 #1
0
class Hoverboard(Vehicle):
    def __init__(self):
        super(Hoverboard, self).__init__('2300ad/hoverboard')
        self.obey_gravity = False
        self.use_pixel_collisions = True

        self.float_effect = FloatEffect(self)

        self.grab_changed.connect(self.on_grab_changed)
        self.player = None

    def should_adjust_position_with(self, obj, dx, dy):
        return obj != self.player or self.player.vehicle != self

    def on_added(self, layer):
        self.player = layer.area.level.engine.player
        self.float_effect.start()

    def on_removed(self, layer):
        self.float_effect.stop()

    def on_grab_changed(self):
        if self.grabbed:
            self.float_effect.start()
        else:
            self.float_effect.stop()
コード例 #2
0
class Artifact(Item):
    def __init__(self, area, num):
        super(Artifact, self).__init__('artifact%s' % num)
        self.obey_gravity = False
        self.float_effect = FloatEffect(self)
        self.grab_changed.connect(self.on_grab_changed)
        self.float_effect.start()
        self.floating = True

    def on_grab_changed(self):
        if self.floating:
            self.float_effect.stop()
            self.floating = False

    def should_adjust_position_with(self, obj, dx, dy):
        return False