반업주부의 일상 배움사

[Flutter/Flame] 단숨에 Flame 헬로월드 본문

IT 인터넷/Flutter

[Flutter/Flame] 단숨에 Flame 헬로월드

Banjubu 2020. 8. 12. 12:37
반응형

 

불꽃을 좋아해요. (열정, PHP는 코드이그나이터)

flame

 

간단한 플러터 게임 엔진이에요.

 

작년에 유사한 엔진인 SpriteWidget으로 간단한 테스트를 한 적도 있어요.

 

Flame에 관심이 생긴건 꾸준히 업데이트를 하고 있다는거에요.

 

그냥 헬로 월드를 찍어보죠.

 

프로젝트 생성.

$ flutter create FlameTest

 

pubspec.yaml 에 flame과 random_color 추가.

dependencies:
  flame: ^0.25.0
  random_color: ^1.0.5
$ flutter pub get

 

main.dart 코드. (화면을 탭할 때마다 색이 바껴요)

import 'package:flame/util.dart';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart';
import 'package:flame/game.dart';
import 'package:random_color/random_color.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  Util flameUtil = Util();
  await flameUtil.fullScreen();
  await flameUtil.setOrientation(DeviceOrientation.portraitUp);

  TapGestureRecognizer tapper = TapGestureRecognizer();

  SimpleGame game = SimpleGame();
  tapper.onTapDown = game.onTapDown;
  flameUtil.addGestureRecognizer(tapper);
  runApp(game.widget);
}

class SimpleGame extends Game {
  Paint paint;
  Size screenSize;
  Rect _screenRect;
  RandomColor _randomColor;

  SimpleGame() {
    print("Hello World");
    _randomColor = RandomColor();
  }

  void resize(Size size) {
    paint = Paint();
    paint.color = Color(0xffffffff);
    screenSize = size;
    _screenRect = Rect.fromLTWH(0, 0, screenSize.width, screenSize.height);

    super.resize(size);
  }

  void render(Canvas canvas) {
    if (screenSize == null) {
      return;
    }

    canvas.save();
    canvas.translate(_screenRect.width * 0.5, _screenRect.height * 0.5);
    canvas.drawCircle(Offset(0, 0), 100, paint);
    canvas.restore();
  }

  void update(double t) {
  }

  void onTapDown(TapDownDetails d) {
    paint.color = _randomColor.randomColor();
  }
}

 

반주부의 [ 둘러앉아 IT이야기 ]
https://open.kakao.com/o/gg0O4T0e

카카오톡 오픈채팅

 

 

영어, 중국어 공부중이신가요?

홈스쿨 교재. 한 권으로 가족 모두 할 수 있어요!

 

한GLO 미네르바에듀 : 네이버쇼핑 스마트스토어

한글로 영어가 된다?! 한글로[한GLO]는 영어 중국어 일어 러시아어 스페인어가 됩니다!!

smartstore.naver.com

 

 

반응형
LIST
Comments