私はフラッターとフレームにはまだかなり慣れていませんが、BaseGame を拡張するクラス内で BuilerContext コンテキストを渡す必要があるゲームに取り組んでいます。現在、ウィジェットであるコンポーネントを画面に追加するメソッドを使用しています。 「addWidgetOverlay」と呼ばれます。このエラーは通常、ウィジェット内で BuilderContext コンテキストが呼び出されない場合に発生することを知っていますが、それがどこでクラスが BaseGame を拡張し、ステートフルまたはステートレス ウィジェットではないのか完全にはわかりません。前もって感謝します!
import 'package:flame/components/parallax_component.dart';
import 'package:flame/components/text_component.dart';
import 'package:flame/game.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'gamesfdafdsafdsa.dart';
class NewMenu extends BaseGame with HasWidgetsOverlay {
final SharedPreferences storage;
TextComponent _text;
ParallaxComponent _parallaxComponent;
// BuildContext context;
NewMenu(this.storage, BuildContext context) {
// TEMP BACKGROUND
_parallaxComponent = ParallaxComponent([
ParallaxImage('Layer_0010_1.png'),
], baseSpeed: Offset(100, 0), layerDelta: Offset(20, 0));
// ADDS THE PLAY BUTTON
addWidgetOverlay('Play Button',
Center(
child: TextButton(
onPressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => GamePlay(),
),
);
}, child: Text('Play')),
),
);
// PARALLAX COMPONENT
add(_parallaxComponent);
// HIGHSCORE TEXT
_text = TextComponent('${storage.getInt('highscore') ?? 0}');
add(_text);
}
}