본문 바로가기
카테고리 없음

Flappy Bird를 만들면서 배워보는 Flutter

by Creative Developer 2023. 2. 24.

서론

Flappy bird는 2013년에 출시된 게임으로서 한때 세계적으로 엄청난 인기를 얻었던 게임입니다. 단순하고 직관적인 조작법을 이용하는 게임이기 때문에 게임을 처음 개발하는 초보자들이 연습삼아서 만들어 보기에 좋은 프로젝트입니다. 이번에는 Flappy Bird 게임을 Flutter를 이용하여 만들어 보겠습니다.

 

작업 순서

Flutter로 Flappy Bird 게임을 만드는 방법은 다음과 같습니다:

1. 새 Flutter 프로젝트를 만듭니다:
새 Flurter 프로젝트를 만들려면 Flurter CLI 또는 Android Studio와 같은 IDE를 사용할 수 있습니다.

2. 게임 인터페이스를 디자인합니다:
Flappy Bird는 배경, 새, 파이프가 있는 간단한 사용자 인터페이스를 가지도 있습니다. 컨테이너, 이미지, 및 스택과 같은 플러터 위젯을 사용하여 게임 인터페이스를 디자인할 수 있습니다.
다음은 배경 이미지를 만드는 방법의 예입니다:

3. 게임 로직을 구현합니다:
게임 논리는 새와 파이프의 충돌을 감지하고, 새가 파이프를 통과할 때 점수를 매기고, 새가 파이프나 땅에 부딪힐 때 게임을 종료하는 것을 포함합니다. 다음은 화면을 누를 때 날개를 퍼덕이며 위로 이동할 수 있는 새를 만드는 방법에 대한 예입니다:

위의 코드에 대한 자세한 설명은 아래와 같습니다:

  • Bird 클래스는 StatefulWidget을 확장합니다. 즉, 시간이 지남에 따라 변경될 수 있는 변경 가능한 상태를 가지며 위젯의 수명 동안 업데이트할 수 있습니다.
  • Bird 클래스에는 State 클래스를 확장하는 _BirdState 클래스가 있습니다. 이 클래스는 새 위젯의 상태를 관리합니다.
  • _BirdState 클래스는 SingleTickerProviderStateMixin 클래스에서도 혼합되어 AnimationController 개체에 TickerProvider를 제공합니다.
  • 새 위젯에는 _birdX, _birdY, _birdWidth 및 _bird의 네 가지 이중 변수가 있습니다높이, 화면에서 새의 위치와 크기를 나타냅니다.
  • initState() 메서드에서는 _animationController 및 _animation 개체가 초기화됩니다. _애니메이션 컨트롤러는 새의 날개를 애니메이션화하는 데 사용되며 _애니메이션 개체는 현재 애니메이션 값을 저장하는 데 사용됩니다. Tween<double> 클래스는 0.0에서 1.0 사이의 애니메이션 범위를 정의하는 데 사용됩니다. addListener() 메서드는 애니메이션 값이 변경될 때 위젯의 상태를 업데이트하는 데 사용됩니다.
  • dispose() 메서드에서 _animationController는 시스템 리소스를 확보하기 위해 삭제됩니다.
  • 화면을 누르면 _onTapDown() 메서드가 호출됩니다. _애니메이션 컨트롤러를 호출합니다.앞으로(0.0부터) 이동하여 새의 날개를 펄럭이는 애니메이션을 시작합니다. 또한 _birdY 변수를 업데이트하여 새를 위쪽으로 이동합니다.
  • 빌드() 메서드는 화면에서 탭 이벤트를 수신하는 제스처 디텍터 위젯을 반환합니다. Transform.scale 위젯은 _animation 개체의 현재 애니메이션 값을 사용하여 새의 이미지 크기를 조정합니다. Image.asset 위젯은 자산 폴더에서 새의 이미지를 로드하고 _birdWidth 및 _bird를 사용하여 너비와 높이를 설정합니다.

4. 효과음을 추가합니다:
Flower 오디오 플러그인을 사용하여 날개를 퍼덕이는 소리, 득점, 게임 종료 등의 효과음을 추가할 수 있습니다. 다음은 효과음을 재생하는 방법의 예입니다:

void _playSound(String sound) async {
final audioCache = AudioCache();
await audioCache.play(sound);
}

이 예에서는 AudioCache 개체를 사용하여 사운드 효과를 로드하고 재생하는 _playSound 함수를 만듭니다. 이 기능은 새가 날개를 퍼덕일 때나 플레이어가 점수를 획득할 때 호출할 수 있습니다.

5. 게임을 테스트하고 게시합니다

댓글