1

私はフラッター開発の初心者です。画面上でクリックされたアクションを実行する場合は、onTapdown リスナーを追加します。うまくいきましたが、クリックしたときに問題が発生し、onTapdown関数が呼び出されません。どのような問題が発生したかわかりません。この問題の解決に役立つことを願っています。よろしくお願いします。

import 'package:flame/game.dart';
import 'package:flame/components/parallax_component.dart';
import 'package:flame/util.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';

void main() async {
    WidgetsFlutterBinding.ensureInitialized();
    Util flameUtil = Util();

  await flameUtil.fullScreen();
  runApp(MyGame(flameUtil).widget);
}

class MyGame extends BaseGame {
  MyGame(Util flameUtil) {

    final images = [

      ParallaxImage("space/bg_base.png",repeat: ImageRepeat.repeat,fill: LayerFill.height),
      ParallaxImage("space/bg_big_star.png",repeat: ImageRepeat.repeatY,fill: LayerFill.height),
      ParallaxImage("space/bg_planet.png",repeat: ImageRepeat.repeat,fill: LayerFill.none),

    ];

    var game = Squres(images);

    add(game);

    TapGestureRecognizer tapper = TapGestureRecognizer();
    tapper.onTapDown = game.onTapDown;
    flameUtil.addGestureRecognizer(tapper);
  }
}

class Squres extends ParallaxComponent{

    Squres(List<ParallaxImage> images) : super(images){
      baseSpeed = const Offset(4,0);
      layerDelta = const Offset(0,-50);
    }

    @override
    void render(Canvas canvas) {    
      super.render(canvas);
    }

    @override
    void resize(Size size) {
      super.resize(size);
    }

    @override
    void update(double t) {
      super.update(t);
    }

    //not always trigger
    void onTapDown(TapDownDetails tap){
        print("trigger");
    }

  }
4

1 に答える 1