示例#1
0
文件: ship.py 项目: weixsong/aircraft
 def shoot(self, missile_group):
   forward = Util.angle_to_vector(self.angle)
   radius = self.get_radius()
   missile_pos = [self.pos[0] + radius * forward[0], self.pos[1] - radius * forward[1]]
   missile_speed = [15 * forward[0], -15 * forward[1]]
   missile_vel = [self.vel[0] + missile_speed[0], self.vel[1] + missile_speed[1]]
   a_missile = Bullet(missile_pos, missile_vel, self.angle, 0, self.canvas)
   missile_group.add(a_missile)
示例#2
0
 def shoot(self):
   forward = Util.angle_to_vector(self.angle)
   center = self.get_center()
   missile_pos = [center[0] + self.radius * forward[0], center[1] - self.radius * forward[1]]
   missile_speed = [15 * forward[0], -15 * forward[1]]
   missile_vel = [self.vel[0] + missile_speed[0], self.vel[1] + missile_speed[1]]
   a_missile = Missile(missile_pos, missile_vel)
   return a_missile
示例#3
0
文件: ship.py 项目: weixsong/aircraft
 def shoot(self, missile_group):
     forward = Util.angle_to_vector(self.angle)
     radius = self.get_radius()
     missile_pos = [
         self.pos[0] + radius * forward[0],
         self.pos[1] - radius * forward[1]
     ]
     missile_speed = [15 * forward[0], -15 * forward[1]]
     missile_vel = [
         self.vel[0] + missile_speed[0], self.vel[1] + missile_speed[1]
     ]
     a_missile = Bullet(missile_pos, missile_vel, self.angle, 0,
                        self.canvas)
     missile_group.add(a_missile)
示例#4
0
  def update(self):
    # change image
    if self.thrust == False:
      self.image = self.image1
      self.original = self.image1
    else:
      self.image = self.image2
      self.original = self.image2

    # update angle
    self.angle += self.angle_vel
    self.angle %= 360

    # update position
    # move by move_ip will move by upleft coord,
    # but it is not good
    # TODO: there are some bugs about rect.move, 
    # the move is not smooth, make it smooth
    self.rect.move_ip(self.vel)

    # make ship in screen
    if self.rect.right < self.area.left:
      self.rect.move_ip([self.area.width, 0])
    elif self.rect.left > self.area.right:
      self.rect.move_ip([-self.area.width, 0])
    elif self.rect.bottom < self.area.top:
      self.rect.move_ip([0, self.area.height])
    elif self.rect.top > self.area.bottom:
      self.rect.move_ip([0, -self.area.height])

    # rotate,  not smooth, bad for pygame
    self.rotate_img()

    # update velocity
    if self.thrust == True:
      acc = Util.angle_to_vector(self.angle)
      self.vel[0] += acc[0] * .2
      self.vel[1] -= acc[1] * .2

    self.vel[0] *= .99
    self.vel[1] *= .99

    if self.game_on == False:
      self.angle_vel *= 0.98
示例#5
0
文件: ship.py 项目: weixsong/aircraft
    def update(self):
        # update angle
        self.angle += self.angle_vel

        # update position
        self.pos[0] = (self.pos[0] + self.vel[0]) % self.canvas.CANVAS_WIDTH
        self.pos[1] = (self.pos[1] + self.vel[1]) % self.canvas.CANVAS_HEIGHT

        # update velocity
        if self.thrust == True:
            acc = Util.angle_to_vector(self.angle)
            self.vel[0] += acc[0] * .2
            self.vel[1] -= acc[1] * .2

        self.vel[0] *= .99
        self.vel[1] *= .99

        if self.game_on == False:
            self.angle_vel *= 0.99
示例#6
0
文件: ship.py 项目: weixsong/aircraft
  def update(self):
    # update angle
    self.angle += self.angle_vel

    # update position
    self.pos[0] = (self.pos[0] + self.vel[0]) % self.canvas.CANVAS_WIDTH
    self.pos[1] = (self.pos[1] + self.vel[1]) % self.canvas.CANVAS_HEIGHT

    # update velocity
    if self.thrust == True:
      acc = Util.angle_to_vector(self.angle)
      self.vel[0] += acc[0] * .2
      self.vel[1] -= acc[1] * .2

    self.vel[0] *= .99
    self.vel[1] *= .99

    if self.game_on == False:
      self.angle_vel *= 0.99