flutter 的游戏/动画包“flame”有几个教程,其中第二个 (link) 由于 Undefined class 'TapDownInfo'
无法编译。
我需要什么,或者与早期版本的 flutter SDK 相关? (目前 sdk: ">=2.12.0 <3.0.0"
和 flame: ^1.0.0-rc9
)
@override
void onTapDown(TapDownInfo event) {
final buttonArea = buttonPosition & buttonSize;
isPressed = buttonArea.contains(event.eventPosition.game.toOffset());
}
答案 0 :(得分:1)
rc9
不存在该教程,如果您想要特定于某个版本的教程,则必须在 git 中查看该标签。例如:
https://github.com/flame-engine/flame/tree/1.0.0-rc9/tutorials
如果您想运行该教程,也可以克隆flame 存储库,或者依赖main
分支而不是rc9
。
我们很可能会在今天或明天发布 rc10
,其中将包含该教程。
您可以通过以下方式在您的 main
中依赖 pubspec.yaml
:
dependencies:
flame:
git:
url: https://github.com/flame-engine/flame.git
path: packages/flame
ref: main
编辑:1.0.0-rc10
现已发布,因此您可以直接使用该版本的教程。
答案 1 :(得分:0)
对于1.0.0-rc10
。 (我同意,在真正发布之前,有时很难找到好的文档(对于最新版本)。
对于您的问题,这取决于您是否谈论您的主要游戏组件(一个 extends BaseGame
)以及您是否拥有 with HasTapableComponents
。
如果它是你的 mainGame extends BaseGame with HasTapableComponents
,它应该像这样被覆盖:
@override
bool onTapDown(int pointerId, TapDownDetails details) {
super.onTapDown(pointerId, details);
// Your code
return true;
}
在其他子组件上,它是这样的:ExitButton extends PositionComponent with Tapable
,如果没有 pointerId
,它看起来应该是一样的。
@override
bool onTapDown(TapDownDetails details) {
super.onTapDown(details);
// Your code
return true;
}