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

Flame中FixedResolutionViewport导致点击/触摸位置偏移问题求助

Flame固定分辨率下触摸位置偏移问题的解决

问题场景

测试Flame官方的drag_events示例时,想要给游戏设置固定的400×800分辨率,于是在onLoad方法里添加了这段代码:

camera.viewport = FixedResolutionViewport(Vector2(400, 800));

结果出现了点击/触摸位置偏移的问题——实际点击的位置和游戏响应的位置对不上,而且偏移程度还会随着窗口大小、设备(比如iOS模拟器)变化,在macOS应用里这个问题也很明显。

解决方案

采用Spydon提供的方案,修改drag_events.dart的onLoad函数,改用CameraComponent.withFixedResolution来创建相机,并将锚点设置为topLeft,这样既解决了触摸位置偏移的问题,背景也能正常适配。代码如下:

camera = CameraComponent.withFixedResolution(width: 400, height: 800)
  ..anchor = Anchor.topLeft;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:50:01