pygame飞机大战用精灵组层编写敌机系列(一)敌机的运动轨迹,贝塞尔曲线方程及杨辉三角计算

本文介绍了使用pygame制作飞机大战游戏中敌机的运动轨迹,重点讲解了利用贝塞尔曲线公式和Python实现方法。通过调整参数和结合杨辉三角计算,实现了多样化的飞行路径。同时,对比了pygame内置的贝塞尔曲线绘制函数,展示了自制代码与官方实现的相似效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

飞机大战中,敌机的角色是必不可少的,其运动轨迹有很多种,简单点的,用初中、高中的几何知识,也能创建不少。

例如:圆圈

radius = 200
for angle in range(0,361,10):
    a = angle*math.pi/180
    pos_x = radius *math.sin(a)
    pos_y = radius *math.cos(a)

稍微复杂点 sin函数,控制下中心点y坐标(300)和振幅(200),也能实现很多

for x in range(0,SCENEWIDTH):
    pos_x = x
    angle = x *math.pi/180
    pos_y = 200*math.sin(angle)+300

再例如抛物线函数,螺旋曲线函数,都能实现飞机的各种花样轨迹。

调试下各个参数的数值,顺便温故下初中高中的知识,也是很有乐趣的。

但简单、易行且路径花样繁多的公式,还是得用到贝塞尔曲线方式。可以自行百度,太神奇了。

参考下阿呆的入门介绍。

http://www.cnblogs.com/wjtaigwh/p/6647114.html

看下n 阶贝塞尔曲线计算公式实现

https://www.jianshu.com/p/7c56103dcf63

编写了一个容易理解点的 python的实现方式。

用到了下面的知识点

----------------------------------------------------------------

  • N = 3: P = (1-t)^2P0 + 2(1-t)tP1 + t^2*P2
  • N = 4: P = (1-t)^3P0 + 3(1-t)^2tP1 + 3(1-t)<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值