Commit 33a4595c authored by 18손재민's avatar 18손재민

프레스가 지나가서 삭제될 방들에 대한 작업 구현중

parent b62bd7d5
...@@ -52,6 +52,7 @@ MonoBehaviour: ...@@ -52,6 +52,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
grid: {fileID: 0} grid: {fileID: 0}
player: {fileID: 0}
initialFallSpeed: -0.1 initialFallSpeed: -0.1
gravity: 0.98 gravity: 0.98
timeToFallTetrimino: 100 timeToFallTetrimino: 100
...@@ -59,7 +60,6 @@ MonoBehaviour: ...@@ -59,7 +60,6 @@ MonoBehaviour:
tetriminoCreatedTime: 0 tetriminoCreatedTime: 0
collapseTime: 10 collapseTime: 10
gameOver: 0 gameOver: 0
isTetriminoFalling: 0
spawnBossTetrimino: 0 spawnBossTetrimino: 0
press: {fileID: 114990664041074520, guid: 8e750fd197a05d84c9fb8557eb95c666, type: 2} press: {fileID: 114990664041074520, guid: 8e750fd197a05d84c9fb8557eb95c666, type: 2}
currentTetrimino: {fileID: 0} currentTetrimino: {fileID: 0}
......
...@@ -61,12 +61,12 @@ public class CameraController : MonoBehaviour { ...@@ -61,12 +61,12 @@ public class CameraController : MonoBehaviour {
StopCoroutine(fadeOut); StopCoroutine(fadeOut);
if(GameManager.gameState == GameManager.GameState.Ingame) if(GameManager.gameState == GameManager.GameState.Ingame)
{ {
fadeIn = StartCoroutine(MapManager.RoomFadeIn(MapManager.currentRoom)); fadeIn = StartCoroutine(mapManager.RoomFadeIn(MapManager.currentRoom));
grid.transform.position = new Vector3(0, 0, 0); grid.transform.position = new Vector3(0, 0, 0);
} }
else if(GameManager.gameState == GameManager.GameState.Tetris) else if(GameManager.gameState == GameManager.GameState.Tetris)
{ {
fadeOut = StartCoroutine(MapManager.RoomFadeOut(MapManager.currentRoom)); fadeOut = StartCoroutine(mapManager.RoomFadeOut(MapManager.currentRoom));
grid.transform.position = new Vector3(0, 0, 2); grid.transform.position = new Vector3(0, 0, 2);
} }
while((_gameState == GameManager.GameState.Tetris && GetComponent<Camera>().orthographicSize < sizeDestination - 1) || (_gameState == GameManager.GameState.Ingame && GetComponent<Camera>().orthographicSize > sizeDestination + 0.0001)) while((_gameState == GameManager.GameState.Tetris && GetComponent<Camera>().orthographicSize < sizeDestination - 1) || (_gameState == GameManager.GameState.Ingame && GetComponent<Camera>().orthographicSize > sizeDestination + 0.0001))
...@@ -138,10 +138,10 @@ public class CameraController : MonoBehaviour { ...@@ -138,10 +138,10 @@ public class CameraController : MonoBehaviour {
transform.position = Vector3.Lerp(transform.position, new Vector3(posx, posy, -1), 2f * Time.deltaTime); transform.position = Vector3.Lerp(transform.position, new Vector3(posx, posy, -1), 2f * Time.deltaTime);
transform.position = new Vector3(transform.position.x, transform.position.y, -1); //카메라를 원래 z축으로 이동 transform.position = new Vector3(transform.position.x, transform.position.y, -1); //카메라를 원래 z축으로 이동
} }
else if(MapManager.isRoomFalling == true) /*else if(MapManager.isRoomFalling == true)
{ {
transform.position = player.transform.position + new Vector3(0, 0.2f, -1); transform.position = player.transform.position + new Vector3(0, 0.2f, -1);
} }*/
} }
// Camera.main.transform.position = new Vector3(posx, posy, -10); // Camera.main.transform.position = new Vector3(posx, posy, -10);
} }
......
...@@ -27,8 +27,8 @@ public class Player : MonoBehaviour { ...@@ -27,8 +27,8 @@ public class Player : MonoBehaviour {
StopCoroutine(roomEnterFadeIn); StopCoroutine(roomEnterFadeIn);
if (roomExitFadeOut != null) if (roomExitFadeOut != null)
StopCoroutine(roomExitFadeOut); StopCoroutine(roomExitFadeOut);
roomEnterFadeIn = StartCoroutine(MapManager.RoomFadeIn(MapManager.currentRoom)); roomEnterFadeIn = StartCoroutine(GameObject.Find("MapManager").GetComponent<MapManager>().RoomFadeIn(MapManager.currentRoom));
roomExitFadeOut = StartCoroutine(MapManager.RoomFadeOut(MapManager.mapGrid[ttx, tty])); roomExitFadeOut = StartCoroutine(GameObject.Find("MapManager").GetComponent<MapManager>().RoomFadeOut(MapManager.mapGrid[ttx, tty]));
} }
ttx = tx; ttx = tx;
tty = ty; tty = ty;
......
...@@ -255,14 +255,23 @@ public class MapManager : MonoBehaviour { ...@@ -255,14 +255,23 @@ public class MapManager : MonoBehaviour {
/// <returns></returns> /// <returns></returns>
public IEnumerator TetrisPress(float initialCollapseTime, Press leftPress, Press rightPress) public IEnumerator TetrisPress(float initialCollapseTime, Press leftPress, Press rightPress)
{ {
int doorCounter = 0;
int row = leftPress.row;
while (Time.time - initialCollapseTime < collapseTime) while (Time.time - initialCollapseTime < collapseTime)
{ {
yield return new WaitForSeconds(0.01f); yield return new WaitForSeconds(0.01f);
float collapseRate = (Time.time - initialCollapseTime) / collapseTime; float collapseRate = (Time.time - initialCollapseTime) / collapseTime;
leftPress.transform.localScale = new Vector3(collapseRate * 20, 1, 1); leftPress.transform.localScale = new Vector3(collapseRate * 20, 1, 1);
rightPress.transform.localScale = new Vector3(-collapseRate * 20, 1, 1); rightPress.transform.localScale = new Vector3(-collapseRate * 20, 1, 1);
if(collapseRate - doorCounter * 0.2f > (float)1 / 12)
{
StartCoroutine(mapGrid[doorCounter, row].CloseDoor("Up"));
StartCoroutine(mapGrid[doorCounter, row].CloseDoor("Down"));
StartCoroutine(mapGrid[width - doorCounter - 1, row].CloseDoor("Up"));
StartCoroutine(mapGrid[width - doorCounter - 1, row].CloseDoor("Down"));
doorCounter++;
}
} }
int row = leftPress.row;
for(int i = row + 1; i < realHeight; i++) for(int i = row + 1; i < realHeight; i++)
{ {
if(isRowDeleting[i]) if(isRowDeleting[i])
...@@ -273,14 +282,9 @@ public class MapManager : MonoBehaviour { ...@@ -273,14 +282,9 @@ public class MapManager : MonoBehaviour {
} }
for (int x = 0; x < width; x++) for (int x = 0; x < width; x++)
{ {
if (row > 0 && isRowDeleting[row - 1] != true && mapGrid[x, row - 1] != null && mapGrid[x, row - 1].isUpDoorOpened == true)
StartCoroutine(mapGrid[x, row - 1].CloseDoor("Up"));
if (row < realHeight && isRowDeleting[row + 1] != true && mapGrid[x, row + 1] != null && mapGrid[x, row + 1].isDownDoorOpened == true)
StartCoroutine(mapGrid[x, row + 1].CloseDoor("Down"));
Destroy(mapGrid[x, row].gameObject); Destroy(mapGrid[x, row].gameObject);
mapGrid[x, row] = null; mapGrid[x, row] = null;
} }
yield return new WaitForSeconds(1f);
while (leftPress.transform.localScale.x > 1) while (leftPress.transform.localScale.x > 1)
{ {
yield return new WaitForSeconds(0.01f); yield return new WaitForSeconds(0.01f);
...@@ -362,7 +366,6 @@ public class MapManager : MonoBehaviour { ...@@ -362,7 +366,6 @@ public class MapManager : MonoBehaviour {
} }
isRoomFalling = true; isRoomFalling = true;
Vector3 previousPlayerRelativePosition = player.transform.position - currentRoom.transform.position; Vector3 previousPlayerRelativePosition = player.transform.position - currentRoom.transform.position;
player.transform.position += new Vector3(0, 0.2f, 0);
while (tetrisYCoord[top + 1] > bottom * tetrisMapSize) while (tetrisYCoord[top + 1] > bottom * tetrisMapSize)
{ {
yield return new WaitForSeconds(0.01f); yield return new WaitForSeconds(0.01f);
...@@ -379,6 +382,7 @@ public class MapManager : MonoBehaviour { ...@@ -379,6 +382,7 @@ public class MapManager : MonoBehaviour {
tetrisYCoord[i] -= yFallSpeed; tetrisYCoord[i] -= yFallSpeed;
} }
SetRoomsYCoord(); SetRoomsYCoord();
if(currentRoom.mapCoord.y >= bottom)
player.transform.position += new Vector3(0, - yFallSpeed, 0); player.transform.position += new Vector3(0, - yFallSpeed, 0);
} }
if (shakeCamera) if (shakeCamera)
...@@ -770,9 +774,16 @@ public class MapManager : MonoBehaviour { ...@@ -770,9 +774,16 @@ public class MapManager : MonoBehaviour {
/// </summary> /// </summary>
/// <param name="room">Room you want to fade in.</param> /// <param name="room">Room you want to fade in.</param>
/// <returns></returns> /// <returns></returns>
public static IEnumerator RoomFadeIn(Room room) public IEnumerator RoomFadeIn(Room room)
{ {
float alpha = 1; float alpha = 1;
if(room.isRoomCleared != true)
{
StartCoroutine(room.CloseDoor("Up"));
StartCoroutine(room.CloseDoor("Down"));
StartCoroutine(room.CloseDoor("Left"));
StartCoroutine(room.CloseDoor("Right"));
}
while(alpha > 0.0001) while(alpha > 0.0001)
{ {
alpha = Mathf.Lerp(alpha, 0, Mathf.Sqrt(Time.deltaTime)); alpha = Mathf.Lerp(alpha, 0, Mathf.Sqrt(Time.deltaTime));
...@@ -792,7 +803,7 @@ public class MapManager : MonoBehaviour { ...@@ -792,7 +803,7 @@ public class MapManager : MonoBehaviour {
/// </summary> /// </summary>
/// <param name="room">Room you want to fade out.</param> /// <param name="room">Room you want to fade out.</param>
/// <returns></returns> /// <returns></returns>
public static IEnumerator RoomFadeOut(Room room) public IEnumerator RoomFadeOut(Room room)
{ {
float alpha = 0; float alpha = 0;
while (alpha < 0.99909) while (alpha < 0.99909)
......
...@@ -195,28 +195,83 @@ public class Room : MonoBehaviour ...@@ -195,28 +195,83 @@ public class Room : MonoBehaviour
switch (direction) switch (direction)
{ {
case "Up": case "Up":
if(isUpDoorOpened == true)
{
inGameDoorUp.transform.GetChild(0).transform.position += new Vector3(-standardSize / 20, 0, 0); inGameDoorUp.transform.GetChild(0).transform.position += new Vector3(-standardSize / 20, 0, 0);
inGameDoorUp.transform.GetChild(1).transform.position += new Vector3(standardSize / 25, 0, 0); inGameDoorUp.transform.GetChild(1).transform.position += new Vector3(standardSize / 25, 0, 0);
isUpDoorOpened = false; if (mapCoord.y < MapManager.realHeight && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1] != null && isUpDoorOpened == true)
{
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1].inGameDoorDown.transform.GetChild(0).transform.position += new Vector3(standardSize / 20, 0, 0);
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1].inGameDoorDown.transform.GetChild(1).transform.position += new Vector3(-standardSize / 25, 0, 0);
}
}
break; break;
case "Down": case "Down":
if(isDownDoorOpened == true)
{
inGameDoorDown.transform.GetChild(0).transform.position += new Vector3(standardSize / 20, 0, 0); inGameDoorDown.transform.GetChild(0).transform.position += new Vector3(standardSize / 20, 0, 0);
inGameDoorDown.transform.GetChild(1).transform.position += new Vector3(-standardSize / 25, 0, 0); inGameDoorDown.transform.GetChild(1).transform.position += new Vector3(-standardSize / 25, 0, 0);
isDownDoorOpened = false; if (mapCoord.y > 0 && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1] != null && isDownDoorOpened == true)
{
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1].inGameDoorUp.transform.GetChild(0).transform.position += new Vector3(-standardSize / 20, 0, 0);
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1].inGameDoorUp.transform.GetChild(1).transform.position += new Vector3(standardSize / 25, 0, 0);
}
}
break; break;
case "Left": case "Left":
if(isLeftDoorOpened == true)
{
inGameDoorLeft.transform.GetChild(0).transform.position += new Vector3(0, -standardSize / 20, 0); inGameDoorLeft.transform.GetChild(0).transform.position += new Vector3(0, -standardSize / 20, 0);
inGameDoorLeft.transform.GetChild(1).transform.position += new Vector3(0, standardSize / 25, 0); inGameDoorLeft.transform.GetChild(1).transform.position += new Vector3(0, standardSize / 25, 0);
isLeftDoorOpened = false; if (mapCoord.x > 0 && MapManager.mapGrid[(int)mapCoord.x - 1, (int)mapCoord.y] != null && isLeftDoorOpened == true)
{
MapManager.mapGrid[(int)mapCoord.x - 1, (int)mapCoord.y].inGameDoorRight.transform.GetChild(0).transform.position += new Vector3(0, standardSize / 20, 0);
MapManager.mapGrid[(int)mapCoord.x - 1, (int)mapCoord.y].inGameDoorRight.transform.GetChild(1).transform.position += new Vector3(0, -standardSize / 25, 0);
}
}
break; break;
case "Right": case "Right":
if(isRightDoorOpened == true)
{
inGameDoorRight.transform.GetChild(0).transform.position += new Vector3(0, standardSize / 20, 0); inGameDoorRight.transform.GetChild(0).transform.position += new Vector3(0, standardSize / 20, 0);
inGameDoorRight.transform.GetChild(1).transform.position += new Vector3(0, -standardSize / 25, 0); inGameDoorRight.transform.GetChild(1).transform.position += new Vector3(0, -standardSize / 25, 0);
isRightDoorOpened = false; if (mapCoord.x < MapManager.width - 1 && MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y] != null && isRightDoorOpened == true)
{
MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y].inGameDoorLeft.transform.GetChild(0).transform.position += new Vector3(0, -standardSize / 20, 0);
MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y].inGameDoorLeft.transform.GetChild(1).transform.position += new Vector3(0, standardSize / 25, 0);
}
}
break; break;
} }
yield return new WaitForSeconds(0.04f); yield return new WaitForSeconds(0.04f);
} }
switch (direction)
{
case "Up":
if (isUpDoorOpened == true)
isUpDoorOpened = false;
if (mapCoord.y < MapManager.realHeight && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1] != null && isUpDoorOpened == true)
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1].isDownDoorOpened = false;
break;
case "Down":
if (isDownDoorOpened == true)
isDownDoorOpened = false;
if (mapCoord.y > 0 && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1] != null && isDownDoorOpened == true)
MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1].isUpDoorOpened = false;
break;
case "Left":
if (isLeftDoorOpened == true)
isLeftDoorOpened = false;
if (mapCoord.x > 0 && MapManager.mapGrid[(int)mapCoord.x - 1, (int)mapCoord.y] != null && isLeftDoorOpened == true)
MapManager.mapGrid[(int)mapCoord.x - 1, (int)mapCoord.y].isRightDoorOpened = false;
break;
case "Right":
if (isRightDoorOpened == true)
isRightDoorOpened = false;
if (mapCoord.x < MapManager.width - 1 && MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y] != null && isRightDoorOpened == true)
MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y].isLeftDoorOpened = false;
break;
}
} }
/// <summary> /// <summary>
...@@ -224,7 +279,8 @@ public class Room : MonoBehaviour ...@@ -224,7 +279,8 @@ public class Room : MonoBehaviour
/// </summary> /// </summary>
public void ClearRoom() public void ClearRoom()
{ {
isRoomCleared = true; if(isRoomCleared != true)
{
if (mapCoord.y < MapManager.realHeight && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1] != null && isUpDoorOpened != true) if (mapCoord.y < MapManager.realHeight && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y + 1] != null && isUpDoorOpened != true)
StartCoroutine(OpenDoor("Up")); StartCoroutine(OpenDoor("Up"));
if (mapCoord.y > 0 && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1] != null && isDownDoorOpened != true) if (mapCoord.y > 0 && MapManager.mapGrid[(int)mapCoord.x, (int)mapCoord.y - 1] != null && isDownDoorOpened != true)
...@@ -233,7 +289,8 @@ public class Room : MonoBehaviour ...@@ -233,7 +289,8 @@ public class Room : MonoBehaviour
StartCoroutine(OpenDoor("Left")); StartCoroutine(OpenDoor("Left"));
if (mapCoord.x < MapManager.width - 1 && MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y] != null && isRightDoorOpened != true) if (mapCoord.x < MapManager.width - 1 && MapManager.mapGrid[(int)mapCoord.x + 1, (int)mapCoord.y] != null && isRightDoorOpened != true)
StartCoroutine(OpenDoor("Right")); StartCoroutine(OpenDoor("Right"));
}
isRoomCleared = true;
//Need to make extra works. //Need to make extra works.
} }
......
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