敌机也是机,又不是象棋里的兵和卒,他也会走八字,跳广场舞的,只要你想,没有什么轨迹是做不到的。
贝塞尔曲线的基本公式上篇日志已经实现了,现在来利用到游戏里。
新建一个飞机类enemyplane.py,为了比较,实现了两个模式,一个是基本的直接往下,一个是贝塞尔曲线。setting.py,bezier.py见前面的日志。
from setting import *
from bezier import *
# 敌人飞机
class EnemyPlane(pygame.sprite.Sprite):
# 初始化敌人飞机
def __init__(self):
self._layer = 2
self.groups = allgroup
pygame.sprite.Sprite.__init__(self, self.groups)
self.image = pygame.image.load('./images/enemy/enemy0.png')
self.rect = self.image.get_rect()
self.HP = 1
#飞机的速度
self.speed = 2
self.x_speed = 0
self.y_speed = 2
#当采用路径时,输入的控制点
self.points= []
#飞机路径上的点 point(x,y)
self.path_points = []
#飞机正常方式
self.path_type = 'normal'
#飞机用路径描述的最大的点,当前点