Commit 48956904 authored by 18손재민's avatar 18손재민

이동 및 회전, 드랍 관련 기능 대부분 구현 완료

parent 38c052e9
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114323397412866622
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114753577101051656
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -214,7 +214,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114851979720776072
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -252,7 +252,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!212 &212152418876382836
SpriteRenderer:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114163463770396558
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114466843507187060
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -214,7 +214,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114787691033818184
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -231,7 +231,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114826030636358216
MonoBehaviour:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114135637264954520
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114317610525364840
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -214,7 +214,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114346591663730294
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -231,7 +231,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114568813863931164
MonoBehaviour:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114213829136544718
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114426654816215182
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -235,7 +235,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114908975501692068
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -252,7 +252,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!212 &212207191686043862
SpriteRenderer:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114184053320687194
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114316302151506316
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -214,7 +214,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114491658978157548
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -252,7 +252,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!212 &212368084699848572
SpriteRenderer:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114250342630536598
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -197,7 +197,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114555629497930862
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -214,7 +214,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114609423914388260
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -231,7 +231,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114813872723638092
MonoBehaviour:
m_ObjectHideFlags: 1
......
......@@ -180,7 +180,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114116348516849362
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -218,7 +218,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114930072884505966
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -235,7 +235,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!114 &114970417993025404
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -252,7 +252,7 @@ MonoBehaviour:
stage: 0
roomConcept: 0
itemRoomType: 0
specialRoomType: 0
specialRoomType: 5
--- !u!212 &212024274712184554
SpriteRenderer:
m_ObjectHideFlags: 1
......
......@@ -28,7 +28,7 @@ public class MapManager : MonoBehaviour {
public float collapseTime;
public float fallTime;
public static int height = 23, width = 10, realHeight = height - 4;
public static int height = 24, width = 10, realHeight = height - 5;
/// <summary>
/// Absolute coordinates on tetris map.
......@@ -66,6 +66,7 @@ public class MapManager : MonoBehaviour {
/// List for the special Room candidates.
/// </summary>
public RoomInGame[] specialRoomList;
public bool controlCurrentTetrimino = false;
/*
* functions
......@@ -82,18 +83,10 @@ public class MapManager : MonoBehaviour {
return new Vector3(Mathf.Round(coord.x), Mathf.Round(coord.y), coord.z);
}
*/
public void MoveTetriminoMapCoord(Tetrimino te, Vector3 coord)
{
for(int i = 0; i < te.rooms.Length; i++)
{
te.rooms[i].mapCoord += coord;
}
te.mapCoord += coord;
}
/// <summary>
/// Check if tetrimino is in right x coordinate.
/// </summary>
/// <param name="te">-1 for over left end, 1 for over right end, 0 for right place.</param>
/// <param name="te">-1 for over left end, 1 for over right end, 2 for over bottom end, 3 for already existing, 0 for right place.</param>
/// <returns></returns>
public int IsRightTetrimino(Tetrimino te)
{
......@@ -103,6 +96,10 @@ public class MapManager : MonoBehaviour {
return -1;
else if (te.rooms[i].mapCoord.x > 9)
return 1;
else if (te.rooms[i].mapCoord.y < 0)
return 2;
else if (mapGrid[(int)te.rooms[i].mapCoord.x, (int)te.rooms[i].mapCoord.y] != null && mapGrid[(int)te.rooms[i].mapCoord.x, (int)te.rooms[i].mapCoord.y].transform.parent != te)
return 3;
}
return 0;
}
......@@ -114,20 +111,16 @@ public class MapManager : MonoBehaviour {
{
while (true)
{
Debug.Log(te.rooms[3].mapCoord);
if (IsRightTetrimino(te) == 1)
{
Debug.Log("Move Left");
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
}
else if (IsRightTetrimino(te) == -1)
{
Debug.Log("Move Right");
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
}
else
{
Debug.Log("return");
return;
}
}
......@@ -138,12 +131,27 @@ public class MapManager : MonoBehaviour {
/// <param name="row">Rows wanted to be deleted.</param>
public void DeleteRow(int row)
{
for(int x = 0; x < width; x++)
for (int x = 0; x < width; x++)
{
Destroy(mapGrid[x, row].gameObject);
mapGrid[x, row] = null;
}
}
public void DeleteFullRows()
{
for(int y = realHeight; y >= 0; y--)
{
if (IsRowFull(y))
{
for (int x = 0; x < width; x++)
{
Destroy(mapGrid[x, y].gameObject);
mapGrid[x, y] = null;
}
DecreaseRowsAbove(y);
}
}
}
/// <summary>
/// Decrease all rows above this row.
/// </summary>
......@@ -153,9 +161,15 @@ public class MapManager : MonoBehaviour {
for(int y = row; y < realHeight; y++)
{
for(int x = 0; x < width; x++)
{
if (mapGrid[x, y] != null && mapGrid[x, y].transform.parent)
{
mapGrid[x, y - 1] = mapGrid[x, y];
mapGrid[x, y] = null;
mapGrid[x, y - 1].mapCoord += new Vector3(0, -1, 0);
mapGrid[x, y - 1].transform.position += new Vector3(0, -tetrisMapSize, 0);
}
}
}
}
......@@ -167,29 +181,20 @@ public class MapManager : MonoBehaviour {
public static bool IsRowFull(int row)
{
for (int x = 0; x < width; x++)
if (mapGrid[x, row] != null && mapGrid[x, row].specialRoomType == Room.SpecialRoomType.Boss)
if (mapGrid[x, row] == null || mapGrid[x, row].specialRoomType == Room.SpecialRoomType.Boss)
return false;
return true;
}
/// <summary>
/// Destroy Tetrimino that has no rooms.
/// </summary>
public static void DestroyParent()
{
GameObject[] tetriminoes = GameObject.FindGameObjectsWithTag("Tetrimino");
foreach(GameObject child in tetriminoes)
{
if(child.transform.childCount == 0)
Destroy(child.gameObject);
}
}
/// <summary>
/// Update rooms coordinates on mapCoord.
/// </summary>
/// <param name="te">Tetrimino you want to update on map.</param>
public void UpdateMap(Tetrimino te)
{
for(int i = 0; i < te.rooms.Length; i++)
{
mapGrid[(int)te.rooms[i].mapCoord.x, (int)te.rooms[i].mapCoord.y] = te.rooms[i];
}
}
/// <summary>
/// Display how much time is it remain to fall current tetrimino.
......@@ -199,35 +204,181 @@ public class MapManager : MonoBehaviour {
{
yield return null;
}
/// <summary>
/// Move tetrimino horizontally.
/// </summary>
/// <param name="te"></param>
/// <param name="coord"></param>
public void MoveTetriminoHorizontal(Tetrimino te, Vector3 coord)
{
if (te.rotatedPosition[te.rotatedAngle] > 0 && coord.x < 0)
{
for (int i = 0; i < te.rotatedPosition.Length; i++)
{
if (te.rotatedPosition[i] > 0)
te.rotatedPosition[i] += (int)coord.x;
}
}
else if (te.rotatedPosition[te.rotatedAngle] + Tetrimino.rotationInformation[(int)te.tetriminoType].horizontalLength[te.rotatedAngle] < width && coord.x > 0)
{
for (int i = 0; i < te.rotatedPosition.Length; i++)
{
if (te.rotatedPosition[i] + Tetrimino.rotationInformation[(int)te.tetriminoType].horizontalLength[i] < width)
te.rotatedPosition[i] += (int)coord.x;
}
}
te.mapCoord = new Vector3(te.rotatedPosition[te.rotatedAngle], te.mapCoord.y, te.mapCoord.z);
SetRoomMapCoord(te);
}
/// <summary>
/// Rotate tetrimino.
/// </summary>
/// <param name="te"></param>
/// <param name="i">1 for clockwise, -1 for counter clockwise.</param>
public void TetriminoRotate(Tetrimino te, int direction)
{
if (direction == 1)
{
for (int i = 0; i < te.rooms.Length; i++)
{
Vector3 tempCoord = (te.rooms[i].mapCoord - te.mapCoord) - new Vector3(1.5f, 1.5f, 0);
te.rooms[i].mapCoord = new Vector3(tempCoord.y, -tempCoord.x, tempCoord.z) + new Vector3(1.5f, 1.5f, 0) + te.mapCoord;
}
if (te.rotatedAngle != 3)
te.rotatedAngle++;
else
te.rotatedAngle = 0;
}
else if (direction == -1)
{
for (int i = 0; i < te.rooms.Length; i++)
{
Vector3 tempCoord = (te.rooms[i].mapCoord - te.mapCoord) - new Vector3(1.5f, 1.5f, 0);
te.rooms[i].mapCoord = new Vector3(-tempCoord.y, tempCoord.x, tempCoord.z) + new Vector3(1.5f, 1.5f, 0) + te.mapCoord;
}
if (te.rotatedAngle != 0)
te.rotatedAngle--;
else
te.rotatedAngle = 3;
}
float minX = te.rooms[0].mapCoord.x, minY = te.rooms[0].mapCoord.y;
for (int i = 0; i < te.rooms.Length; i++)
{
if (te.rooms[i].mapCoord.x < minX)
minX = te.rooms[i].mapCoord.x;
if (te.rooms[i].mapCoord.y < minY)
minY = te.rooms[i].mapCoord.y;
}
for (int i = 0; i < te.rooms.Length; i++)
{
te.rooms[i].mapCoord += new Vector3(-(minX - te.mapCoord.x), -(minY - te.mapCoord.y), 0);
te.rooms[i].transform.position = (te.rooms[i].mapCoord - te.mapCoord) * tetrisMapSize + te.transform.position;
}
te.mapCoord = new Vector3(te.rotatedPosition[te.rotatedAngle], te.mapCoord.y, te.mapCoord.z);
}
/// <summary>
/// Move tetrimino as the amount of coord.
/// </summary>
/// <param name="te">Which tetrimino to move</param>
/// <param name="coord">How much will tetrimino move.</param>
public void MoveTetriminoMapCoord(Tetrimino te, Vector3 coord)
{
for (int i = 0; i < te.rooms.Length; i++)
{
te.rooms[i].mapCoord += coord;
}
te.mapCoord += coord;
}
public void TetriminoDown(Tetrimino te)
{
//완성해야됨
/// <summary>
/// Get tetrimino's mapCoord down.
/// </summary>
/// <param name="te">Which tetrimino to move.</param>
public void TetriminoMapCoordDown(Tetrimino te)
{
//controlCurrentTetrimino = false;
while (IsRightTetrimino(currentTetrimino) == 0)
{
Debug.Log(IsRightTetrimino(currentTetrimino));
MoveTetriminoMapCoord(currentTetrimino, new Vector3(0, -1, 0));
}
Debug.Log(IsRightTetrimino(currentTetrimino));
MoveTetriminoMapCoord(currentTetrimino, new Vector3(0, 1, 0));
EndTetrimino(currentTetrimino);
//StartCoroutine(TetriminoDown(currentTetrimino));
}
public void EndTetrimino(Tetrimino te)
{
var TS = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>();
currentTetrimino.transform.position = new Vector3(currentTetrimino.mapCoord.x * tetrisMapSize, tetrisYCoord[(int)currentTetrimino.mapCoord.y], currentTetrimino.mapCoord.z * tetrisMapSize);
UpdateMap(te);
CreateRoom(currentTetrimino);
DeleteFullRows();
TS.MakeTetrimino();
}
/// <summary>
/// Get tetrimino down.
/// </summary>
/// <param name="te">Which tetrimino's real position move.</param>
public IEnumerator TetriminoDown(Tetrimino te)
{
while(true)
{
if(currentTetrimino)
yield return null;
}
}
public void GhostDown()
{
}
public void TetriminoMove(Tetrimino te)
//완성해야됨
/// <summary>
/// Press Left arrow/Right arrow to move left/right, Space to drop.
/// </summary>
/// <param name="te">Tetrimino you want to move.</param>
public void TetriminoControl(Tetrimino te)
{
if (Input.GetKeyDown(KeyCode.LeftArrow) && GameManager.gameState == GameManager.GameState.Tetris)
if(Input.GetKeyDown(KeyCode.Space) && GameManager.gameState == GameManager.GameState.Tetris)
{
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
TetriminoMapCoordDown(currentTetrimino);
//StartCoroutine(TetriminoDown(currentTetrimino));
}
else if (Input.GetKeyDown(KeyCode.LeftArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
MoveTetriminoHorizontal(currentTetrimino, new Vector3(-1, 0, 0));
/*MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
if (IsRightTetrimino(te) != 0)
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));*/
}
else if (Input.GetKeyDown(KeyCode.RightArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
MoveTetriminoHorizontal(currentTetrimino, new Vector3(1, 0, 0));
/*MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
if (IsRightTetrimino(te) != 0)
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));*/
}
else if (Input.GetKeyDown(KeyCode.UpArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
TetriminoRotate(currentTetrimino, 1);
}
public void TetriminoRotate(Tetrimino te)
else if (Input.GetKeyDown(KeyCode.DownArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
TetriminoRotate(currentTetrimino, -1);
}
}
public void SetRoomMapCoord(Tetrimino te)
{
......@@ -240,6 +391,7 @@ public class MapManager : MonoBehaviour {
{
for (int i = 0; i < te.rooms.Length; i++)
{
UpdateMap(currentTetrimino);
te.rooms[i].transform.parent = grid;
if (te.rooms[i].itemRoomType != 0) ;
else if (te.rooms[i].specialRoomType != Room.SpecialRoomType.Normal)
......@@ -258,12 +410,26 @@ public class MapManager : MonoBehaviour {
{
if(Input.GetKeyDown(KeyCode.Alpha0))
{
CreateRoom(currentTetrimino);
for (int x = 0; x < width; x++)
for (int y = 0; y < height; y++)
if (mapGrid[x, y] != null)
Debug.Log(new Vector3(x, y, 0));
}
}
void Awake()
{
Tetrimino.rotationInformation[0].horizontalLength = new int[4] { 1, 4, 1, 4 }; //I
Tetrimino.rotationInformation[1].horizontalLength = new int[4] { 2, 2, 2, 2 }; //O
Tetrimino.rotationInformation[2].horizontalLength = new int[4] { 3, 2, 3, 2 }; //T
Tetrimino.rotationInformation[3].horizontalLength = new int[4] { 2, 3, 2, 3 }; //J
Tetrimino.rotationInformation[4].horizontalLength = new int[4] { 2, 3, 2, 3 }; //L
Tetrimino.rotationInformation[5].horizontalLength = new int[4] { 3, 2, 3, 2 }; //S
Tetrimino.rotationInformation[6].horizontalLength = new int[4] { 3, 2, 3, 2 }; //Z
for (int i = 0; i < tetrisYCoord.Length; i++)
{
tetrisYCoord[i] = i * 24;
}
}
// Use this for initialization
void Start () {
......@@ -271,8 +437,12 @@ public class MapManager : MonoBehaviour {
// Update is called once per frame
void Update() {
if(controlCurrentTetrimino)
{
Test();
TetriminoMove(currentTetrimino);
currentTetrimino.transform.position = currentTetrimino.mapCoord * tetrisMapSize + tetrisMapCoord;
TetriminoControl(currentTetrimino);
currentTetrimino.transform.position = new Vector3(currentTetrimino.mapCoord.x * tetrisMapSize, tetrisYCoord[(int)currentTetrimino.mapCoord.y], currentTetrimino.mapCoord.z * tetrisMapSize);
//currentTetrimino.transform.position = currentTetrimino.mapCoord * tetrisMapSize + tetrisMapCoord;
}
}
}
......@@ -48,10 +48,4 @@ public class Room : MonoBehaviour
{
}
void Awake()
{
doorInfo = new int[2] { 0, 0 };
}
}
......@@ -7,14 +7,14 @@ public class Test : MonoBehaviour {
public void ChangeTetrimino()
{
var MM = GameObject.FindGameObjectWithTag("MapManager").GetComponent<MapManager>();
var TS = GameObject.FindGameObjectWithTag("TetriminoSpawner").GetComponent<TetriminoSpawner>();
var MM = GameObject.Find("MapManager").GetComponent<MapManager>();
var TS = GameObject.Find("TetriminoSpawner").GetComponent<TetriminoSpawner>();
Destroy(MM.currentTetrimino.gameObject);
TS.MakeTetrimino();
}
public void SpawnBossTetrimino()
{
var MM = GameObject.FindGameObjectWithTag("MapManager").GetComponent<MapManager>();
var MM = GameObject.Find("MapManager").GetComponent<MapManager>();
MM.spawnBossTetrimino = true;
}
......
......@@ -36,17 +36,22 @@ public class Tetrimino : MonoBehaviour {
/// Each rooms for this tetrimino.
/// </summary>
public Room[] rooms;
/// <summary>
/// Tetrimino rotated angle.
/// </summary>
public int rotatedAngle = 0;
/// <summary>
/// Tetrimino rotated position;
/// </summary>
public int[] rotatedPosition = { 0, 0, 0, 0 };
public struct RotationInformation
{
public int[] horizontalLength;
}
public static RotationInformation[] rotationInformation = new RotationInformation[7];
/*
* functions
* */
}
......@@ -25,7 +25,7 @@ public class TetriminoSpawner : MonoBehaviour {
/// </summary>
public void MakeTetrimino()
{
var MM = GameObject.FindGameObjectWithTag("MapManager").GetComponent<MapManager>();
var MM = GameObject.Find("MapManager").GetComponent<MapManager>();
if (!MM.gameOver)
{
int randomPosition = Random.Range(0, MapManager.width);
......@@ -41,6 +41,14 @@ public class TetriminoSpawner : MonoBehaviour {
MM.currentTetrimino.mapCoord = (MM.currentTetrimino.transform.position - MM.tetrisMapCoord) / MM.tetrisMapSize;
MM.SetRoomMapCoord(MM.currentTetrimino);
MM.MakeTetriminoRightPlace(MM.currentTetrimino);
for(int i = 0; i < MM.currentTetrimino.rotatedPosition.Length;i++)
{
if (Tetrimino.rotationInformation[(int)MM.currentTetrimino.tetriminoType].horizontalLength[i] + MM.currentTetrimino.mapCoord.x > MapManager.width)
MM.currentTetrimino.rotatedPosition[i] = MapManager.width - Tetrimino.rotationInformation[(int)MM.currentTetrimino.tetriminoType].horizontalLength[i];
else
MM.currentTetrimino.rotatedPosition[i] = (int)MM.currentTetrimino.mapCoord.x;
}
MM.controlCurrentTetrimino = true;
}
}
/// <summary>
......@@ -48,7 +56,7 @@ public class TetriminoSpawner : MonoBehaviour {
/// </summary>
public void MakeInitialTetrimino()
{
var MM = GameObject.FindGameObjectWithTag("MapManager").GetComponent<MapManager>();
var MM = GameObject.Find("MapManager").GetComponent<MapManager>();
if (!MM.gameOver)
{
int randomPosition = Random.Range(0, MapManager.width);
......@@ -65,6 +73,11 @@ public class TetriminoSpawner : MonoBehaviour {
MM.currentTetrimino.mapCoord = (MM.currentTetrimino.transform.position - MM.tetrisMapCoord) / MM.tetrisMapSize;
MM.SetRoomMapCoord(MM.currentTetrimino);
MM.MakeTetriminoRightPlace(MM.currentTetrimino);
for (int i = 0; i < MM.currentTetrimino.rooms.Length; i++)
{
MM.currentTetrimino.transform.position = MM.currentTetrimino.mapCoord * MM.tetrisMapSize + MM.tetrisMapCoord;
}
MM.UpdateMap(MM.currentTetrimino);
MM.CreateRoom(MM.currentTetrimino);
}
}
......
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