Проведите пальцем по столу в мобильном браузере - PullRequest
0 голосов
/ 27 мая 2018

Я и мой напарник пишем игру "Battlecity" в дартс для мобильного браузера.Проблема заключается в пролистывании направления танка (слева направо, справа налево и т. Д.) В мобильном браузере.Он работает с большим интересом (и по некоторым причинам не работает в Chrome-Browser).Вы можете лучше увидеть проблему, если запустите игру на своем мобильном устройстве (просто откройте ссылку с игрой: https://javajunikorn.github.io/BattleCity/build/web/html/test.html) Интересно то, что проблема существует только при пролистывании через игровое поле (в нашем случае это 27 * 27).html table). Если мы убираем из gamefeeld, то он отлично работает.

Вот код нашего контроллера:

class Direction{


  Point first, last;
  Game game;

  void startListening(){


    window.onTouchStart.listen((ev) {
      last = null;
      first = ev.touches.first.client;
    });

    window.onTouchMove.listen((ev){
      last = ev.touches.first.client;
    });

    window.onTouchEnd.listen((ev) {
      if(last == null || first.distanceTo(last) < 20)
        game.player.shoot();
      else {
        Point d = first - last;
        if(d.x.abs() > d.y.abs()){
          //Waagerecht
          if( first.x > last.x){
            //links
            game.player.changeDirection(Directions.left);
          }
          else{
            //rechts
            game.player.changeDirection(Directions.right);
          }
        }
        else{
          //Senkrecht
          if(first.y > last.y){
            //Up
            game.player.changeDirection(Directions.up);
          }
          else{
            //Down
            game.player.changeDirection(Directions.down);

          }
        }
      }
    });


    window.onKeyPress.listen((k) {
      //Shoot
      if(k.which == 32) { //spacebar
        game.player.shoot();
      }
      //Up
      if(k.which == 119 || k.keyCode == KeyCode.UP){
        game.player.changeDirection(Directions.up);
      }
      //Down
      if(k.which == 115 || k.keyCode == KeyCode.DOWN){
        game.player.changeDirection(Directions.down);
      }
      //Left
      if(k.which == 97 || k.keyCode == KeyCode.LEFT){
        game.player.changeDirection(Directions.left);
      }
      //Right
      if(k.which == 100 || k.keyCode == KeyCode.RIGHT){
        game.player.changeDirection(Directions.right);
      }
    });

  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...