Создание игры с использованием движка Flutter Flame и AndroidStudio для разработки. Функция рендеринга использует функции canvas.save () и canvas.render (), которые обеспечивают чистоту экрана между кадрами (для предотвращения дублирования рисования спрайтов). На симуляторе IPhone приложение работает как положено, однако на нескольких симуляторах Android отображаются дубликаты спрайтов. Не могу понять, почему это происходит ... Любая помощь приветствуется!
![enter image description here](https://i.stack.imgur.com/T8k8M.png)
import 'dart:ui';
import 'package:flame/components/component.dart';
import 'package:flame/flame.dart';
import 'package:flame/game.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
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;
}
@override
void render(Canvas canvas) {
canvas.save();
player.render(canvas);
canvas.restore();
}
@override
void update(double t) {
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;
}
}