我想看看是否可以将 FPSCounter 添加到 Flutter Flame 应用程序中,官方文档显示它只需在 FlameGame 之后添加。
官方文档是这样显示的:
class MyGame extends FlameGame with FPSCounter {
static final fpsTextConfig = TextConfig(color: BasicPalette.white.color);
@override
void render(Canvas canvas) {
super.render(canvas);
final fpsCount = fps(120); // The average FPS for the last 120 microseconds.
fpsTextConfig.render(canvas, fpsCount.toString(), Vector2(0, 50));
}
}
我也尝试以同样的方式添加它,这是我的代码:
import 'package:flame/events.dart';
import 'package:flame/game.dart';
import 'package:flame/flame.dart';
import 'package:flame/input.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
Flame.device.fullScreen();
runApp(
GameWidget(
game: MyGame()
)
);
}
class MyGame extends FlameGame with TapDetector, FPSCounter {
@override
Future<void> onLoad() async {
super.onLoad();
print('<game loop> onLoad() called');
}
@override
void update(double dt) {
super.update(dt);
// print('<game loop> update called at delate time $dt');
}
@override
void render(Canvas canvas) {
super.render(canvas);
canvas.drawPaint(Paint()..color = Colors.red);
// print('<game loop> render called');
}
@override
void onTapUp(TapUpInfo info) {
// print('game loop onTap location: (${info.eventPosition.game.x}, ${info.eventPosition.game.y})');
}
}
但是我收到以下错误:
lib/main.dart:19:50: Error: Type 'FPSCounter' not found.
class MyGame extends FlameGame with TapDetector, FPSCounter {
^^^^^^^^^^
似乎没有任何依赖关系需要解决,我已经做了好几次了,也没有改变任何东西。
我猜你使用的是较新版本的 Flame,并且你的示例来自旧文档:
https://docs.flame-engine.org/1.0.0/debug.html
在文档顶部,您还会看到一条警告:
这是新文档:https://docs.flame-engine.org/latest/flame/other/debug.html#fps
还有一个工作示例:https://github.com/flame-engine/flame/blob/main/examples/lib/stories/components/debug_example.dart