일모도원(日暮途遠) 개발자

[Flame] Flame의 Route에러 본문

Flutter/Flutter개발

[Flame] Flame의 Route에러

달님개발자 2025. 5. 15. 23:51
반응형

https://docs.flame-engine.org/latest/flame/router.html

 

import 'package:flame/components.dart';
import 'package:flame/effects.dart';
import 'package:flame/events.dart';
import 'package:flame/game.dart';
import 'package:flame/geometry.dart';
import 'package:flame/rendering.dart';
import 'package:flutter/rendering.dart';

class RouterGame extends FlameGame {
  late final RouterComponent router;

  @override
  Future<void> onLoad() async {
    add(
      router = RouterComponent(
        routes: {
          'home': Route(StartPage.new),
          'level1': WorldRoute(Level1Page.new),
          'level2': WorldRoute(Level2Page.new, maintainState: false),
          'pause': PauseRoute(),
        },
        initialRoute: 'home',
      ),
    );
  }
}

 

위 예제에서 나오는 코드를 개발중인 코드에 넣으니 아래처럼 Route관련 에러가 난다.

 

에러를 자세히 읽어보면 Route가 game.dart에도 있지만, material.dart에도 있다고 한다.

 

'Route' isn't a function.
Try correcting the name to match an existing function, or define a method or function named 'Route'.dartinvocation_of_non_function
⌘+click to open in new tab
The name 'Route' is defined in the libraries 'package:flame/src/components/router/route.dart (via package:flame/game.dart)' and 'package:flutter/src/widgets/navigator.dart (via package:flutter/material.dart)'.
Try using 'as prefix' for one of the import directives, or hiding the name from all but one of the imports.dart (ambiguous_import)



그래서 코드에서 material.dart에서는 Route를 안쓰게 hide를 하니 에러가 사라졌다.

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