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

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

parent ed5a2e58
......@@ -33,6 +33,15 @@ public class MapManager : MonoBehaviour {
/// Tetrimino falling gravity.
/// </summary>
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>
/// Time Tetrimino has fallen.
/// </summary>
......@@ -391,9 +400,13 @@ public class MapManager : MonoBehaviour {
/// Display how much time is it remain to fall current tetrimino.
/// </summary>
/// <returns></returns>
public IEnumerator DisplayTime()
public IEnumerator CountTetriminoWaitingTime()
{
yield return null;
while (!isTetriminoFalling)
{
yield return new WaitForSeconds(0.1f);
tetriminoWaitedTime = Time.time - tetriminoCreatedTime;
}
}
/// <summary>
/// Move tetrimino horizontally.
......@@ -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);
fallSpeed = initialFallSpeed;
tetriminoWaitedTime = 0;
UpdateMap(te);
CreateRoom(te);
DeleteFullRows();
......@@ -565,7 +579,7 @@ public class MapManager : MonoBehaviour {
/// <param name="te">Tetrimino you want to move.</param>
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;
TetriminoMapCoordDown(currentTetrimino);
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour {
MapManager MM;
TetriminoSpawner TS;
public static Vector3 tetrisCameraCoord = new Vector3(180,
0, -1);
MapManager mapManager;
TetriminoSpawner tetriminoSpawner;
public static Vector3 tetrisCameraCoord = new Vector3(180, 0, -1);
public static float tetrisMapSize = 300;
public Text timer;
public void ChangeTetrimino()
{
Destroy(MM.currentTetrimino.gameObject);
Destroy(MM.currentGhost.gameObject);
TS.MakeTetrimino();
Destroy(mapManager.currentTetrimino.gameObject);
Destroy(mapManager.currentGhost.gameObject);
tetriminoSpawner.MakeTetrimino();
}
public void SpawnBossTetrimino()
{
MM.spawnBossTetrimino = true;
mapManager.spawnBossTetrimino = true;
}
public void Gold()
{
MM.UpgradeRoom(MapManager.SpecialRoomType.Gold);
mapManager.UpgradeRoom(MapManager.SpecialRoomType.Gold);
}
public void Amethyst()
{
MM.UpgradeRoom(MapManager.SpecialRoomType.Amethyst);
mapManager.UpgradeRoom(MapManager.SpecialRoomType.Amethyst);
}
public void BothSide()
{
MM.UpgradeRoom(MapManager.SpecialRoomType.BothSide);
mapManager.UpgradeRoom(MapManager.SpecialRoomType.BothSide);
}
public void Boss()
{
SpawnBossTetrimino();
}
public void Timer()
{
timer.text = (mapManager.timeToFallTetrimino - mapManager.tetriminoWaitedTime).ToString();
}
private void Awake()
{
MM = GameObject.Find("MapManager").GetComponent<MapManager>();
TS = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>();
mapManager = GameObject.Find("MapManager").GetComponent<MapManager>();
tetriminoSpawner = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>();
}
// Use this for initialization
void Start () {
......@@ -53,6 +58,8 @@ public class Test : MonoBehaviour {
ChangeTetrimino();
if (Input.GetKeyDown(KeyCode.Alpha2))
SpawnBossTetrimino();
if(!mapManager.isTetriminoFalling)
Timer();
/*if (Input.GetKeyDown(KeyCode.Tab) && GameManager.gameState != GameManager.GameState.Tetris)
{
GameManager.gameState = GameManager.GameState.Tetris;
......
......@@ -54,11 +54,12 @@ public class TetriminoSpawner : MonoBehaviour {
}
MakeGhost(mapManager.currentTetrimino, randomTetrimino);
mapManager.isTetriminoFalling = false;
Debug.Log(mapManager.roomsWaiting.Count);
while (mapManager.roomsWaiting.Count != 0 && mapManager.currentTetrimino.notNormalRoomCount < 4)
{
mapManager.UpgradeRoom(mapManager.roomsWaiting.Dequeue());
}
mapManager.tetriminoCreatedTime = Time.time;
StartCoroutine(mapManager.CountTetriminoWaitingTime());
}
}
/// <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