1

我正在尝试开发一个带有颤振和火焰的小型 2d 平台游戏,但我已经陷入重构代码的困境......

我想尽可能多地放在单独的类和背景中(视差效果)。这是我的主文件的一部分,包括效果。

class PlatformGame extends BaseGame with TapDetector {
  Player _player;

  ParallaxComponent _parallaxComponent;
  Size screenSize;
  double tileSize;

  PlatformGame() {
    _parallaxComponent = ParallaxComponent(
      [
        ParallaxImage('bg/bg1.png', fill: LayerFill.height),
        ParallaxImage('bg/bg2.png'),
        ParallaxImage('bg/bg3.png'),
        ParallaxImage('bg/bg4.png'),
        ParallaxImage('bg/bg5.png'),
        ParallaxImage('bg/bg6.png', fill: LayerFill.none),
      ],
      baseSpeed: Offset(100, 0),
      layerDelta: Offset(20, 0),
    );

    add(_parallaxComponent);
    _player = Player();
    add(_player);
  }
}

我试图创建一个名为“背景”的新类并将所有代码移到那里。

class Background extends ParallaxComponent {
  Background(List<ParallaxImage> images) : super(images) {

    //Here should be the Images for the parallax 

  }  
}

但我被困在那里。无论我尝试什么,我总是会出错。显然,我无法正确处理构造函数。我读了很多,但没有得到任何想法。有人可以帮我吗?

Player ist 在一个单独的类中并且工作正常。

谢谢马丁

4

1 回答 1

1

你可以写你的类如下:


class Background extends ParallaxComponent {
  Background(List<ParallaxImage> images)
      : super(images, baseSpeed: Offset(100, 0), layerDelta: Offset(20, 0));
}

于 2021-02-14T21:46:55.400 回答