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

Godot 3.2.1炮塔场景浮点数比较报错:bool与float操作数不兼容

解决Godot中旋转差值判断的运算符错误问题

我一眼就看出问题所在啦——GDScript并不支持像Python那样的链式比较语法!你写的target_dir - 0.1 < rotation < target_dir + 0.1会被Godot拆成两步计算:

  1. 先执行target_dir - 0.1 < rotation,得到一个布尔值(true或false)
  2. 接着用这个布尔值和target_dir + 0.1做<比较,这就触发了"无效操作数bool和float"的错误——毕竟布尔值和浮点数根本没法直接比大小

正确的两种写法:

方法1:拆分条件用逻辑与连接

把链式比较拆成两个独立判断,用&&确保两个条件同时成立:

if rotation > target_dir - 0.1 && rotation < target_dir + 0.1:
    print("bang!!!")
    if can_shoot:
        shoot()

方法2:用绝对值判断差值范围

这种写法更直观,也不容易出错,适合判断数值是否在误差范围内的场景:

if abs(rotation - target_dir) <= 0.1:
    print("bang!!!")
    if can_shoot:
        shoot()

小补充:因为Godot的rotation是弧度制,如果你是用角度计算的target_dir,记得先转成弧度再对比哦~从你的代码来看应该已经处理好了,这里只是提个醒!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:02:42