Commit 1215823d authored by 18손재민's avatar 18손재민

타이머 구현함 이제 시간 지나면 테트리미노 떨어짐

parent ed5a2e58
...@@ -33,6 +33,15 @@ public class MapManager : MonoBehaviour { ...@@ -33,6 +33,15 @@ public class MapManager : MonoBehaviour {
/// Tetrimino falling gravity. /// Tetrimino falling gravity.
/// </summary> /// </summary>
public float gravity = 0.98f; public float gravity = 0.98f;
public float timeToFallTetrimino = 100.0f;
/// <summary>
/// Time tetris waits to fall.
/// </summary>
public float tetriminoWaitedTime;
/// <summary>
/// Time tetris has created.
/// </summary>
public float tetriminoCreatedTime;
/// <summary> /// <summary>
/// Time Tetrimino has fallen. /// Time Tetrimino has fallen.
/// </summary> /// </summary>
...@@ -391,9 +400,13 @@ public class MapManager : MonoBehaviour { ...@@ -391,9 +400,13 @@ public class MapManager : MonoBehaviour {
/// Display how much time is it remain to fall current tetrimino. /// Display how much time is it remain to fall current tetrimino.
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public IEnumerator DisplayTime() public IEnumerator CountTetriminoWaitingTime()
{ {
yield return null; while (!isTetriminoFalling)
{
yield return new WaitForSeconds(0.1f);
tetriminoWaitedTime = Time.time - tetriminoCreatedTime;
}
} }
/// <summary> /// <summary>
/// Move tetrimino horizontally. /// Move tetrimino horizontally.
...@@ -514,6 +527,7 @@ public class MapManager : MonoBehaviour { ...@@ -514,6 +527,7 @@ public class MapManager : MonoBehaviour {
{ {
te.transform.position = new Vector3(te.mapCoord.x * tetrisMapSize, tetrisYCoord[(int)te.mapCoord.y], te.mapCoord.z * tetrisMapSize); te.transform.position = new Vector3(te.mapCoord.x * tetrisMapSize, tetrisYCoord[(int)te.mapCoord.y], te.mapCoord.z * tetrisMapSize);
fallSpeed = initialFallSpeed; fallSpeed = initialFallSpeed;
tetriminoWaitedTime = 0;
UpdateMap(te); UpdateMap(te);
CreateRoom(te); CreateRoom(te);
DeleteFullRows(); DeleteFullRows();
...@@ -565,7 +579,7 @@ public class MapManager : MonoBehaviour { ...@@ -565,7 +579,7 @@ public class MapManager : MonoBehaviour {
/// <param name="te">Tetrimino you want to move.</param> /// <param name="te">Tetrimino you want to move.</param>
public void TetriminoControl(Tetrimino te) public void TetriminoControl(Tetrimino te)
{ {
if(Input.GetKeyDown(KeyCode.Space) && GameManager.gameState == GameManager.GameState.Tetris) if((Input.GetKeyDown(KeyCode.Space) && GameManager.gameState == GameManager.GameState.Tetris) || tetriminoWaitedTime > timeToFallTetrimino)
{ {
isTetriminoFalling = true; isTetriminoFalling = true;
TetriminoMapCoordDown(currentTetrimino); TetriminoMapCoordDown(currentTetrimino);
......
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour { public class Test : MonoBehaviour {
MapManager MM; MapManager mapManager;
TetriminoSpawner TS; TetriminoSpawner tetriminoSpawner;
public static Vector3 tetrisCameraCoord = new Vector3(180, public static Vector3 tetrisCameraCoord = new Vector3(180, 0, -1);
0, -1);
public static float tetrisMapSize = 300; public static float tetrisMapSize = 300;
public Text timer;
public void ChangeTetrimino() public void ChangeTetrimino()
{ {
Destroy(MM.currentTetrimino.gameObject); Destroy(mapManager.currentTetrimino.gameObject);
Destroy(MM.currentGhost.gameObject); Destroy(mapManager.currentGhost.gameObject);
TS.MakeTetrimino(); tetriminoSpawner.MakeTetrimino();
} }
public void SpawnBossTetrimino() public void SpawnBossTetrimino()
{ {
MM.spawnBossTetrimino = true; mapManager.spawnBossTetrimino = true;
} }
public void Gold() public void Gold()
{ {
MM.UpgradeRoom(MapManager.SpecialRoomType.Gold); mapManager.UpgradeRoom(MapManager.SpecialRoomType.Gold);
} }
public void Amethyst() public void Amethyst()
{ {
MM.UpgradeRoom(MapManager.SpecialRoomType.Amethyst); mapManager.UpgradeRoom(MapManager.SpecialRoomType.Amethyst);
} }
public void BothSide() public void BothSide()
{ {
MM.UpgradeRoom(MapManager.SpecialRoomType.BothSide); mapManager.UpgradeRoom(MapManager.SpecialRoomType.BothSide);
} }
public void Boss() public void Boss()
{ {
SpawnBossTetrimino(); SpawnBossTetrimino();
} }
public void Timer()
{
timer.text = (mapManager.timeToFallTetrimino - mapManager.tetriminoWaitedTime).ToString();
}
private void Awake() private void Awake()
{ {
MM = GameObject.Find("MapManager").GetComponent<MapManager>(); mapManager = GameObject.Find("MapManager").GetComponent<MapManager>();
TS = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>(); tetriminoSpawner = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>();
} }
// Use this for initialization // Use this for initialization
void Start () { void Start () {
...@@ -53,6 +58,8 @@ public class Test : MonoBehaviour { ...@@ -53,6 +58,8 @@ public class Test : MonoBehaviour {
ChangeTetrimino(); ChangeTetrimino();
if (Input.GetKeyDown(KeyCode.Alpha2)) if (Input.GetKeyDown(KeyCode.Alpha2))
SpawnBossTetrimino(); SpawnBossTetrimino();
if(!mapManager.isTetriminoFalling)
Timer();
/*if (Input.GetKeyDown(KeyCode.Tab) && GameManager.gameState != GameManager.GameState.Tetris) /*if (Input.GetKeyDown(KeyCode.Tab) && GameManager.gameState != GameManager.GameState.Tetris)
{ {
GameManager.gameState = GameManager.GameState.Tetris; GameManager.gameState = GameManager.GameState.Tetris;
......
...@@ -54,11 +54,12 @@ public class TetriminoSpawner : MonoBehaviour { ...@@ -54,11 +54,12 @@ public class TetriminoSpawner : MonoBehaviour {
} }
MakeGhost(mapManager.currentTetrimino, randomTetrimino); MakeGhost(mapManager.currentTetrimino, randomTetrimino);
mapManager.isTetriminoFalling = false; mapManager.isTetriminoFalling = false;
Debug.Log(mapManager.roomsWaiting.Count);
while (mapManager.roomsWaiting.Count != 0 && mapManager.currentTetrimino.notNormalRoomCount < 4) while (mapManager.roomsWaiting.Count != 0 && mapManager.currentTetrimino.notNormalRoomCount < 4)
{ {
mapManager.UpgradeRoom(mapManager.roomsWaiting.Dequeue()); mapManager.UpgradeRoom(mapManager.roomsWaiting.Dequeue());
} }
mapManager.tetriminoCreatedTime = Time.time;
StartCoroutine(mapManager.CountTetriminoWaitingTime());
} }
} }
/// <summary> /// <summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment