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

Pygame中如何提取同类每个实体信息?矩形移动距离获取异常

问题解决

核心问题修正

你的循环中存在break语句,这会强制循环仅执行一次,只处理ballgroup里的第一个矩形,导致最终列表里的数值都是同一个矩形的结果。只需删除break,就能遍历所有矩形并收集每个的移动距离:

for aball in ballgroup:
    distance = aball.throwlength()
    if distance is not None:  # 过滤未触发计算的情况
        checklist.append(distance)

移动距离计算优化

当前throwlength函数只计算了x方向的水平距离,若你需要的是初始到最终中心点的直线像素距离(更符合“移动距离”的实际意义),建议改用欧几里得距离公式计算:

import math

def throwlength(self):
    if self.trigger:
        dx = self.start_xmid - self.end_xmid
        dy = self.start_ymid - self.end_ymid
        return math.sqrt(dx ** 2 + dy ** 2)
    return None  # 未触发时返回None,避免后续处理异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:22:06