Beispiel #1
0
 def __init__(self, pos, vel, mass):
   super(Clod, self).__init__()
   self.mass = mass
   self.radius = Home.mass_to_radius(mass)
   self.body, self.shape = physics.clod_body(self.radius, pos, vel, mass)
   self.shape.SetUserData(self)
   self.image = Media.media.clod
   self.rect = self.image.get_rect()
   state().clods.add(self)
   Home.instance.mass -= mass
Beispiel #2
0
  def __init__(self):
    super(Snake, self).__init__()
    state().snakes.add(self)
    Snake.all.append(self)

    spawn_angle = math.pi * random.uniform(0, 2)
    speed = -random.uniform(1, 2)

    vel = polar_vec(speed, spawn_angle / random.uniform(-0.5, 0.5))
    # pos = polar_vec(params.dragon.spawn_distance, spawn_angle)
    pos = vec(10, -10)
    self.body, self.shape = physics.snake_body(pos, vel)
    self.shape.SetUserData(self)
    self.is_hit = False
    self.image = Media.media.snake
    self.rect = self.image.get_rect()
Beispiel #3
0
 def update(self):
   self.doGravity()
   r = self.pos.Length()
   if(r + self.radius < Home.instance.radius):
     Home.instance.mass += self.mass
     world.DestroyBody(self.body)
     state().clods.remove(self)
     self.shape.ClearUserData()
     del self
   elif(r > params.game.max_distance):
     world.DestroyBody(self.body)
     state().clods.remove(self)
     self.shape.ClearUserData()
     del self
   else:
     self.rect.center = self.screen_coords
Beispiel #4
0
    def __init__(self, home):
      super(Home.Ent, self).__init__()

      self.home = home
      #Cooldown for allowing the player to fire SOILORBS
      self.shot_cool = 20
      #shot_angle |[-90, 90]|
      self.shot_angle = 0.0
      self.start_angle = 0.0
      self.cw = True
      

      Home.Ent.image = self.image = Media.media.cannon[1]
      self.c_front = Media.media.cannon[2]
      self.rect = self.image.get_rect()

      state().cannon_group.add(self)
Beispiel #5
0
  def __init__(self):
    super(Dragon, self).__init__()
    state().dragons.add(self)
    Dragon.all.append(self)

    spawn_angle = math.pi * random.uniform(0, 2)
    speed = -random.uniform(1, 2)

    vel = polar_vec(speed, spawn_angle / random.uniform(-0.5, 0.5))

    # pos = polar_vec(params.dragon.spawn_distance, spawn_angle)
    pos = vec(10, -10)
    self.bodies, self.shapes = physics.dragon_body(pos, vel)
    self.body = self.bodies[0]
    for s in self.shapes: s.SetUserData(self)

    self.is_hit = False

    print "\nDragon spawned!\nangle: {init_angle}\nvelocity: {init_velocity}".format(
          init_angle = spawn_angle,
          init_velocity = vel,
          )
Beispiel #6
0
  def draw(self, screen):
    for i in range(0, len(self.bodies)-1):
      b = self.bodies[i]
      pos = state().toScreen(b.GetPosition())
      ang = b.GetAngle()
      img = Media.media.dragon[params.dragon.order[i]]

      rect = pygame.Rect((0,0), img.get_size())
      rect.center = pos
      screen.blit(img, rect)
      pygame.draw.rect(screen, (255,0,255), rect, 1)


      ja = params.dragon.joint_attachments[params.dragon.order[i]]
      if(ja[0] is not None):
        a = vec(rect.topleft)
        a += vec(ja[0])
        a = (int(a.x), int(a.y))
        pygame.draw.circle(screen, (255,0,0), a, 5)
      if(ja[1] is not None):
        b = vec(rect.topleft)
        b += vec(ja[1])
        b = (int(b.x), int(b.y))
        pygame.draw.circle(screen, (255,255,0), b, 5)