向世界添加组件和FlameGame有什么区别?

问题描述 投票:0回答:1

所以我正在尝试学习Flame,并且存在向

World
添加组件以及直接向
FlameGame
添加组件的概念。我有点明白
world
以某种方式与
camera
一起工作。但主题对我来说仍然不清楚。所以这是我理解这一点的第一步。我已经阅读了docs,但并没有真正理解太多。如果有人能花时间解释世界、相机的概念,以及将孩子添加到
world
与将它们添加到
FlameGame
有何不同,我将非常感激。谢谢你。

import 'dart:async';

import 'package:flame/components.dart';
import 'package:flame/game.dart';

import 'components/components.dart';
import 'config.dart';

class BrickBreaker extends FlameGame {
  BrickBreaker()
      : super(
          camera: CameraComponent.withFixedResolution(
            width: gameWidth,
            height: gameHeight,
          ),
        );

  double get width => size.x;
  double get height => size.y;

  @override
  FutureOr<void> onLoad() async {
    super.onLoad();

    camera.viewfinder.anchor = Anchor.topLeft;

    // adding to world, but why not add directly to the current component?
    // add(PlayArea())
    world.add(PlayArea());
  }
}
flutter flame
1个回答
0
投票

不同之处在于相机正在看着

World
,因此如果您在相机周围移动 (
viewfinder
),您将在世界中移动,但如果您在相机周围移动并添加了您的
FlameGame
的组件将是静态的。

如果您不确切知道自己在做什么,我建议不要向

FlameGame
添加任何组件。如果您想要像 HUD 这样的静态组件,那么您需要使用
viewport
将它们添加到
camera.viewport.add(...)
,如果您想要世界背后的静态组件,则使用
backdrop
将它们添加到
camera.backdrop.add(...)

© www.soinside.com 2019 - 2024. All rights reserved.