게임 개발 로그

Flappy Brid 본문

게임 개발/미니게임

Flappy Brid

03:00am 2024. 11. 12. 12:06

 

Flappy Bird

0. 구현

0-1. Spawner

public class PipeSpawner : MonoBehaviour
{
    public GameObject pipePrefab;
    public float interval = 1.0f;
    public float range = 2.5f;

	private void Start()
	{
		StartCoroutine("SpawnPipe");
	}

	IEnumerator SpawnPipe()
    {
        while (true)
        {
            yield return new WaitForSeconds(interval);            
            Instantiate(pipePrefab, new Vector3(transform.position.x, Random.Range(-range, range), transform.position.z), transform.rotation);
        }
    }
}
  • Spawner에서 일정 시간마다 해당 위치에 Pipe를 생성한다. 
  • Pipe는 매 틱마다 왼쪽으로 이동하는 프리팹이다.

 

0-2. Endline

public class Endline : MonoBehaviour
{
	private void OnCollisionEnter(Collision collision)
	{
		Destroy(collision.gameObject);
	}
}
  • 화면 밖에 Endline을 배치하여 Endline에 오브젝트가 닿으면 없어지도록 간단하게 구현했다.

 

0-3. FloatingUI

public class FloatingUI : MonoBehaviour
{
    [SerializeField] public TextMeshProUGUI getScore;
    public int speed = 20;
    
	void Update()
    {
        getScore.alpha -= Time.deltaTime;
        getScore.transform.position += new Vector3(0, Time.deltaTime * speed, 0);
		if ( getScore.alpha <= 0 )
            Destroy(gameObject);
	}
	public void SetPos(Vector3 pos)
	{
		getScore.transform.position = new Vector3(getScore.transform.position.x, pos.y, getScore.transform.position.z);
	}
}
  • FloatingUI는 점수 획득 시 뜨는 GetScoreUI 와 게임오버 시 뜨는 GameOverUI 에 사용한다.
  • 플레이어 위치를 스크린 좌표로 변경하여, 플레이어 위치에서 UI가 뜨도록 한다. 
  • 시간에 따라 알파값이 변해 점점 옅어지며, 안 보이게 되면 오브젝트를 삭제한다. 

'게임 개발 > 미니게임' 카테고리의 다른 글

미니게임: 미로 숨바꼭질  (0) 2024.12.09
미니게임: Carrot Flight  (0) 2024.11.21