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()
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()
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()