Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio Android上的Flatter flame sprite复制,而不是Iphone?_Android Studio_Flutter_Flame - Fatal编程技术网

Android studio Android上的Flatter flame sprite复制,而不是Iphone?

Android studio Android上的Flatter flame sprite复制,而不是Iphone?,android-studio,flutter,flame,Android Studio,Flutter,Flame,使用FlatterFlame引擎和AndroidStudio开发制作游戏。render函数使用canvas.save()和canvas.render()函数,确保屏幕在帧之间清晰可见(以防止重复绘制精灵)。在IPhone模拟器上,应用程序按预期运行,但在多个Android模拟器上,会呈现重复的精灵。不明白为什么会发生这种事。。。感谢您的帮助 您不必自己处理渲染方法,只需将SpriteComponent添加到游戏中,它就会为您处理渲染 class ThisGame extends Game {

使用FlatterFlame引擎和AndroidStudio开发制作游戏。render函数使用canvas.save()和canvas.render()函数,确保屏幕在帧之间清晰可见(以防止重复绘制精灵)。在IPhone模拟器上,应用程序按预期运行,但在多个Android模拟器上,会呈现重复的精灵。不明白为什么会发生这种事。。。感谢您的帮助


您不必自己处理渲染方法,只需将SpriteComponent添加到游戏中,它就会为您处理渲染

class ThisGame extends Game {
  final SharedPreferences storage;
  Size screenSize;
  double tileSize;

  Player player;
  double spriteSize = 128;
  double timeElapsed = 0;

  ThisGame(this.storage) {
    initialize();
  }

  initialize() async {
    resize(await Flame.util.initialDimensions());
    player = Player();
    player.x = 0;
    player.y = 0;
    add(player); // <-- Like this
  }

  @override
  void update(double t) {
    super.update(t) // Also don't forget to call super
    timeElapsed += t;
    if (timeElapsed > 1) {
      timeElapsed = 0;
      player.y += t * 300;
      player.x += t * 300;
    }
  }

  @override
  void resize(Size size) {
    screenSize = size;
    tileSize = screenSize.width / 9;
  }
}

class Player extends SpriteComponent {
  Player() : super.square(128.0, 'player.png') {
    this.angle = 0.0;
  }
}
class这个游戏扩展了游戏{
最终共享参考存储;
屏幕大小;
双层瓷砖;
玩家;
双精灵化=128;
双时间流逝=0;
ThisGame(this.storage){
初始化();
}
初始化()异步{
调整大小(wait Flame.util.initialDimensions());
player=player();
player.x=0;
player.y=0;

add(player);//有趣的是,您可能想在BlueStack或Nov或其他著名的模拟器中尝试,看看它是否工作。我也不知道这个问题,但只是好奇这些著名模拟器的结果。
class ThisGame extends Game {
  final SharedPreferences storage;
  Size screenSize;
  double tileSize;

  Player player;
  double spriteSize = 128;
  double timeElapsed = 0;

  ThisGame(this.storage) {
    initialize();
  }

  initialize() async {
    resize(await Flame.util.initialDimensions());
    player = Player();
    player.x = 0;
    player.y = 0;
    add(player); // <-- Like this
  }

  @override
  void update(double t) {
    super.update(t) // Also don't forget to call super
    timeElapsed += t;
    if (timeElapsed > 1) {
      timeElapsed = 0;
      player.y += t * 300;
      player.x += t * 300;
    }
  }

  @override
  void resize(Size size) {
    screenSize = size;
    tileSize = screenSize.width / 9;
  }
}

class Player extends SpriteComponent {
  Player() : super.square(128.0, 'player.png') {
    this.angle = 0.0;
  }
}