1

我正在从火焰 v0.29.4 迁移到火焰 v1.0.0-rc8,但我找不到关于如何获取initialDimensions、如何通过 获取引擎小部件engine.widget、如何初始化Sprite对象(以前通过Sprite('path_to_asset_file'))和如何设置SpriteComponent(以前通过SpriteComponent.rectangle)的宽度和高度。

4

1 回答 1

4

这是几个问题,所以我将给出几个答案:

  1. 如何获得inititialDimensions

inititialDimensions不再需要,onGameResize之前调用onLoad它会给你游戏的大小。您还可以通过将HasGameRefmixin 添加到您Component的 s 和 call来获取游戏的大小gameRef.size

  1. 如何获得颤振小部件?

您现在将游戏包装在 a 中,GameWidget而不是使用.widget

import 'package:flutter/material.dart';
import 'package:flame/game.dart';

void main() {
  final myGame = MyGame();
  runApp(
    GameWidget(
      game: myGame,
    ),
  );
}
  1. 如何初始化一个Sprite

你通常想要一个SpriteComponent,而不是一个 raw Sprite

创建一个Sprite

class MyGame extends FlameGame {
  Sprite player;

  @override
  Future<void> onLoad() async {
    player = Sprite.load('player.png');
  }
}

创建一个SpriteComponent

class MyGame extends FlameGame {
  SpriteComponent player;

  @override
  Future<void> onLoad() async {
    final sprite = await loadSprite('player.png');
    player = SpriteComponent(sprite: sprite);
    // And you usually want to add your component to the game too.
    add(player);
  }
}
  1. 如何设置组件的大小?

只需执行component.size = Vector2(width, height);component.width = width;+component.height = height

于 2021-03-31T21:40:16.627 回答