Flutter Flame 1.23.0农场游戏开发:FixedResolutionViewport代码报错修复咨询
修复方案
1. 导入Viewport依赖包
确保在代码文件顶部添加Viewport相关的导入语句:
import 'package:flame/viewport.dart';
2. 调整onLoad方法的初始化顺序
FlameGame的核心组件(包括camera)需要先通过父类的onLoad完成初始化,才能安全设置viewport。修改后的代码如下:
@override Future<void> onLoad() async { await super.onLoad(); // 先执行父类初始化逻辑,确保camera就绪 camera.viewport = FixedResolutionViewport(Vector2(160, 160)); for (int row = 0; row < rows; row++) { for (int col = 0; col < columns; col++) { final plot = PlotComponent(Vector2(col * plotSize, row * plotSize)); add(plot); } } }
3. 可选:检查地块组件的锚点适配
如果你的PlotComponent锚点设置为Anchor.center,需要调整位置计算逻辑避免显示偏移:
final plot = PlotComponent( Vector2( col * plotSize + plotSize / 2, row * plotSize + plotSize / 2 ) );
内容的提问来源于stack exchange,提问作者Salman Farisi
相关产品推荐
相关产品推荐

