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

Godot 3.5运算符'-'出现'int'与'Object'无效操作数错误求助

问题解决:Godot 3.5回合制RPG随机伤害错误及重复值问题

1. 修复「Invalid operands 'int' and 'Object'」错误

你当前的代码错误在于把RandomNumberGenerator实例直接当作数值去计算HP了。randi_range()方法会返回生成的随机整数,必须把这个返回值赋值给变量后再使用,修改后的代码如下:

var rng = RandomNumberGenerator.new()
rng.randomize()
# 存储随机生成的伤害值
var damage = rng.randi_range(pattacks[0][1], pattacks[0][2])
ehp -= damage

如果不想单独创建RandomNumberGenerator实例,也可以直接使用全局随机方法(注意先初始化种子,见下文):

var damage = randi_range(pattacks[0][1], pattacks[0][2])
ehp -= damage

2. 解决内置rand_range重复伤害的问题

之前使用rand_range每次进入战斗伤害相同,是因为随机数种子没有初始化。在游戏的初始化脚本里(比如主场景节点的_ready()方法)调用一次randomize(),就能让每次运行游戏的随机序列都不同:

func _ready():
    randomize()

不需要每次点击战斗按钮都调用randomize(),全局初始化一次即可保证随机序列的唯一性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:33:25