我正在用Flame开发一款流畅的游戏,在实现控制器时遇到了问题。控制器基本上是操纵杆和按钮atack。我需要操纵杆上的panStart,panUpdate和panEnd手势,以及进攻按钮onTapUp和onTapDown。但是我不能同时做两个,只能一次做一个手势
MultiTapGestureRecognizer tapper = MultiTapGestureRecognizer();
PanGestureRecognizer panGesture = PanGestureRecognizer();
panGesture.onEnd = game.onPanEnd;
panGesture.onUpdate = game.onPanUpdate;
panGesture.onStart = game.onPanStart;
panGesture.onCancel = game.onPanCancel;
tapper.onTapDown = game.onTapDown;
tapper.onTapUp = game.onTapUp;
tapper.onTapCancel = game.onTapCancel;
flameUtil.addGestureRecognizer(tapper);
flameUtil.addGestureRecognizer(panGesture);
[而不是使用GestureRecognizers,而是直接在游戏类上使用PanDetector
和TapDetector
mixins,并覆盖所需的方法。
class MyGame extends BaseGame with TapDetector, PanDetector {
MyGame();
@override
void onTap() {}
@override
void onTapCancel() {}
@override
void onTapDown(TapDownDetails details) {}
@override
void onTapUp(TapUpDetails details) {}
@override
void onPanDown(DragDownDetails details) {}
@override
void onPanStart(DragStartDetails details) {}
@override
void onPanUpdate(DragUpdateDetails details) {}
@override
void onPanEnd(DragEndDetails details) {}
@override
void onPanCancel() {}
}