中途岛海战飞行阵列之椭圆

"""
   中途岛海战飞行阵列之椭圆,
   本程序新建敌机类,然后让敌机绕着椭圆的轨迹不断地移动。
"""
import math
import pygame
from pygame.locals import *

class Enemy(pygame.sprite.Sprite):
    """
       绕椭圆飞行的敌机类
    """
    def __init__(self,image,a,b,rotate_center):
        """
           iamge:图形,a:长半轴,b:短半轴,rotate_center:旋转中心点
        """
        pygame.sprite.Sprite.__init__(self)
        self.rc = rotate_center  # 飞机的旋转中心
        self.rawimage = image    # 记录原始图像
        self.a = a               # 长半轴
        self.b = b               # 短半轴
        self._angle = 0          # 和x轴的夹角
        self.rotate()       

    def rotate(self):
        """根据和x轴的角度旋转图形"""
        self.image = pygame.transform.rotate(self.rawimage,self._angle)
        self.rect = self.image.get_rect()
        r = math.radians(self._angle)   # 把角度值转为弧度值
        x = self.a * math.cos(r)        # 根据椭圆参数方程算x值
        y = -self.b * math.sin(r)
        self.rect.center = self.rc[0] + x , self.rc[1] + y

You must log in to read the rest of this article. Please log in or register as a user.