반업주부의 일상 배움사
[Flutter/Flame] 단숨에 Flame 헬로월드 본문
반응형
불꽃을 좋아해요. (열정, PHP는 코드이그나이터)
간단한 플러터 게임 엔진이에요.
작년에 유사한 엔진인 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
영어, 중국어 공부중이신가요?
홈스쿨 교재. 한 권으로 가족 모두 할 수 있어요!
반응형
LIST
'IT 인터넷 > Flutter' 카테고리의 다른 글
ChatGPT와 함께 캔버스에 그림 그리는 Flutter 앱 만들기 (0) | 2023.02.09 |
---|---|
Dart와 Flutter를 ChatGPT에게 배우다. (0) | 2023.02.05 |
[Dart] VSCode 저장시 자동으로 ; 세미콜론 추가하기 (0) | 2023.01.31 |
[iOS/Xcode] M1 CocoaPods 에러 (0) | 2022.08.09 |
Comments