Flutter Flame SpawnComponent参数类型不匹配报错求助
问题解决:SpawnComponent参数类型不匹配报错
错误原因
SpawnComponent的factory参数要求传入一个接收int类型参数的函数(该int代表当前生成组件的序号),而你写的是无参函数() => MyComponent(...),类型不匹配导致报错。
修正代码
将factory函数改为带int参数的形式,即使不需要这个序号参数,也需保留参数位:
SpawnComponent( factory: (int count) => MyComponent(size: Vector2(10, 20), amount: 2), period: 0.5, area: Circle(Vector2(100, 200), 150), );
另外,你的MyComponent构造函数需要初始化父类的size属性,否则组件可能无法正常渲染,补充后完整代码:
class MyComponent extends PositionComponent with HasVisibility { MyComponent({required Vector2 size, required int amount}) : super(size: size); @override void renderTree(Canvas canvas) { if (isVisible) { // 自定义渲染逻辑写在这里 super.renderTree(canvas); } } }
说明
(int count)是SpawnComponent要求的固定参数,代表当前生成的是第几个组件,你可根据需求使用该值调整组件属性,不需要的话直接忽略即可。- 父类
PositionComponent的size必须通过构造函数初始化,否则组件的位置和大小无法正确生效。
内容的提问来源于stack exchange,提问作者Phil Ciraolo
相关产品推荐
相关产品推荐

