예제 #1
0
    def throw(self):
        if self._pickup:
            if self.facing >= 0:
                dir = Vec2D(100.0, -160.0)
            else:
                dir = Vec2D(-100.0, -160.0)
            dir.normalize()
            self._pickup.vel.values = self._pickup_time * (dir / self._pickup.weight)
            self._pickup.throw()
            self.calc_apex()
            self._pickup = None
            self._pickup_time = 0.0

            soundsystem.grunt()
예제 #2
0
    def throw(self):
        if self._pickup:
            if self.facing >= 0:
                dir = Vec2D(100.0, -160.0)
            else:
                dir = Vec2D(-100.0, -160.0)
            dir.normalize()
            self._pickup.vel.values = self._pickup_time * (dir /
                                                           self._pickup.weight)
            self._pickup.throw()
            self.calc_apex()
            self._pickup = None
            self._pickup_time = 0.0

            soundsystem.grunt()
예제 #3
0
    def handle_event(self, event):
        if event.type == KEYDOWN:
            if event.key == self.actionkey_walk_l:
                self.kdir -= 1
            elif event.key == self.actionkey_walk_r:
                self.kdir += 1
            elif event.key == self.actionkey_pickup:
                #if self.collider:
                #    self.pickup(self.collider)
                #    self.collider = None
                #    if gamelib.DEBUG: print "*!*!*!*!*!*! CAUGHT %s *!*!*!*!*!" % self._pickup
                if self._pickup and not self.build_up_power:
                    self.let_fall()
                else:
                    item = states.TheStateManager.cur_state.get_closest(
                        self.pos.x, self.rect.w)
                    if item:
                        self.pickup(item[0])
            elif event.key == self.actionkey_throw and self._pickup:
                if isinstance(self._pickup, Article):
                    self._pickup.activate(self)
                else:
                    self.build_up_power = True
        elif event.type == KEYUP:
            if event.key == self.actionkey_walk_l:
                self.kdir += 1
            elif event.key == self.actionkey_walk_r:
                self.kdir -= 1
            elif event.key == self.actionkey_throw:
                if not isinstance(self._pickup, Article):
                    soundsystem.grunt()
                    self.build_up_power = False
                    self.throw()
            #elif event.key == self.actionkey_pickup:
            #    if not self._pickup:
            #        item = states.TheStateManager.cur_state.get_closest(self.pos.x, self.rect.w)
            #        if item:
            #            self.pickup(item[0])

        self.set_vel(0.1 * self.kdir, 0)
        if self.kdir != 0:
            self.facing = self.kdir
            self.spr.face = self.facing
            if self._pickup:
                self._pickup.spr.face = self.facing
            self.spr.play()
        else:
            self.spr.stop()
예제 #4
0
    def handle_event(self, event):
        if event.type == KEYDOWN:
            if event.key == self.actionkey_walk_l:
                self.kdir -= 1
            elif event.key == self.actionkey_walk_r:
                self.kdir += 1
            elif event.key == self.actionkey_pickup:
                #if self.collider:
                #    self.pickup(self.collider)
                #    self.collider = None
                #    if gamelib.DEBUG: print "*!*!*!*!*!*! CAUGHT %s *!*!*!*!*!" % self._pickup
                if self._pickup and not self.build_up_power:
                    self.let_fall()
                else:
                    item = states.TheStateManager.cur_state.get_closest(self.pos.x, self.rect.w)
                    if item:
                        self.pickup(item[0])
            elif event.key == self.actionkey_throw and self._pickup:
                if isinstance(self._pickup, Article):
                    self._pickup.activate(self)
                else:
                    self.build_up_power = True
        elif event.type == KEYUP:
            if event.key == self.actionkey_walk_l:
                self.kdir += 1
            elif event.key == self.actionkey_walk_r:
                self.kdir -= 1
            elif event.key == self.actionkey_throw:
                if not isinstance(self._pickup, Article):
                    soundsystem.grunt()
                    self.build_up_power = False
                    self.throw()
            #elif event.key == self.actionkey_pickup:
            #    if not self._pickup:
            #        item = states.TheStateManager.cur_state.get_closest(self.pos.x, self.rect.w)
            #        if item:
            #            self.pickup(item[0])

        self.set_vel(0.1*self.kdir, 0)
        if self.kdir != 0:
            self.facing = self.kdir
            self.spr.face = self.facing
            if self._pickup:
                self._pickup.spr.face = self.facing
            self.spr.play()
        else:
            self.spr.stop()