You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

抛体运动模拟程序点击崩溃:TypeError参数类型错误排查

抛体运动程序报错解决方案

报错的核心原因是Pygame的绘制函数要求坐标必须是整数类型,但你的代码中self.path里存储的坐标包含浮点数,导致调用pygame.draw.circle时触发类型错误。

问题出在哪?

在Projectile类的update方法中,你计算的抛体位置是浮点数:

self.path.append((self.x, self.y-abs(self.ch)))

这里self.ch是通过三角函数、平方运算得到的浮点数,所以self.y-abs(self.ch)的结果也是浮点数,最终path里的坐标元组是(float, float),不符合Pygame绘制函数的参数要求。

修复方法

只需要在将坐标加入path时,把浮点数转换为整数即可,修改update方法中的append行:

# 原代码
self.path.append((self.x, self.y-abs(self.ch)))

# 修改后
self.path.append((int(self.x), int(self.y - abs(self.ch))))

这样path里存储的所有坐标都是整数元组,后续绘制圆形时就不会再报错。

额外优化(可选)

如果你希望坐标更精确,也可以用round()函数取整,适合需要四舍五入的场景:

self.path.append((round(self.x), round(self.y - abs(self.ch))))

内容的提问来源于stack exchange,提问作者Rey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:55:28