Commit 38c052e9 authored by 18손재민's avatar 18손재민

특수 방 추가 및 시작 방 생성

parent 98830534
......@@ -52,7 +52,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
grid: {fileID: 0}
tetrisMapSize: 1
tetrisMapSize: 24
tetrisMapCoord: {x: 0, y: 0, z: 0}
speed: 0
gravity: 0
......@@ -62,5 +62,12 @@ MonoBehaviour:
spawnBossTetrimino: 0
tetrisMap: {fileID: 0}
currentTetrimino: {fileID: 0}
halfRoomList:
- {fileID: 114931030853536078, guid: 279f5b34ed5c53545990e499c74cbbe7, type: 2}
normalRoomList:
- {fileID: 114608209787691684, guid: 702a2175c3762fd4b9bc1fac0357a1a0, type: 2}
itemRoomList: []
specialRoomList:
- {fileID: 114076836714455396, guid: 1ec0004bbafe6764d9462251b866e6e6, type: 2}
- {fileID: 114589998919791384, guid: fe17cba28f910e54faf7b866f86bfd3e, type: 2}
- {fileID: 114834209009617488, guid: f6834170b7152ee4db0dc7e165dcca70, type: 2}
- {fileID: 114310635400106216, guid: 7da800d1a4355fd4aa02e3518cd9e1fb, type: 2}
- {fileID: 114495009210863316, guid: 4b147f1162668f44aa55982681399aec, type: 2}
fileFormatVersion: 2
guid: 0aa1c86779a88b84fb24b8cbe899753a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 1bf0932fb2e139643a2c515c3dadb44e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 702a2175c3762fd4b9bc1fac0357a1a0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -26,7 +26,7 @@ GameObject:
- component: {fileID: 66289433936503254}
- component: {fileID: 2113883504774285740}
m_Layer: 8
m_Name: Room0
m_Name: Room 0(half)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......
fileFormatVersion: 2
guid: fb0a6fe7d068d17429ca06fa11f93057
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 7da800d1a4355fd4aa02e3518cd9e1fb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 1ec0004bbafe6764d9462251b866e6e6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: fe17cba28f910e54faf7b866f86bfd3e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: f6834170b7152ee4db0dc7e165dcca70
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: 4b147f1162668f44aa55982681399aec
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -14,7 +14,7 @@ public class GameManager : MonoBehaviour {
// Use this for initialization
void Start () {
gameState = GameState.Ingame;
gameState = GameState.Tetris;
}
// Update is called once per frame
......
......@@ -12,7 +12,7 @@ public class MapManager : MonoBehaviour {
/// <summary>
/// Tetris map's size.
/// </summary>
public float tetrisMapSize = 1;
public float tetrisMapSize;
/// <summary>
/// Tetris map's coordinates.
/// </summary>
......@@ -55,9 +55,17 @@ public class MapManager : MonoBehaviour {
/// </summary>
public Tetrimino currentTetrimino;
/// <summary>
/// List for the half Room candidates.
/// List for the normal Room candidates.
/// </summary>
public HalfRoom[] halfRoomList;
public RoomInGame[] normalRoomList;
/// <summary>
/// List for the item Room candidates.
/// </summary>
public RoomInGame[] itemRoomList;
/// <summary>
/// List for the special Room candidates.
/// </summary>
public RoomInGame[] specialRoomList;
/*
* functions
......@@ -74,6 +82,14 @@ 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>
......@@ -85,7 +101,7 @@ public class MapManager : MonoBehaviour {
{
if (te.rooms[i].mapCoord.x < 0)
return -1;
else if (te.rooms[i].mapCoord.x > width - 1)
else if (te.rooms[i].mapCoord.x > 9)
return 1;
}
return 0;
......@@ -98,16 +114,22 @@ public class MapManager : MonoBehaviour {
{
while (true)
{
Debug.Log(te.rooms[3].mapCoord);
if (IsRightTetrimino(te) == 1)
{
te.mapCoord += new Vector3(-1, 0, 0);
Debug.Log("Move Left");
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
}
else if (IsRightTetrimino(te) == -1)
{
te.mapCoord += new Vector3(1, 0, 0);
Debug.Log("Move Right");
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
}
else
break;
{
Debug.Log("return");
return;
}
}
}
/// <summary>
......@@ -188,38 +210,20 @@ public class MapManager : MonoBehaviour {
{
}
/*public void TetriminoMove(Tetrimino te)
{
if (Input.GetKeyDown(KeyCode.LeftArrow) && inTetris)
{
te.transform.position += new Vector3(-tetrisMapSize, 0, 0);
if (IsRightTetrimino(te) != 0)
te.transform.position += new Vector3(tetrisMapSize, 0, 0);
}
else if (Input.GetKeyDown(KeyCode.RightArrow) && inTetris)
{
te.transform.position += new Vector3(tetrisMapSize, 0, 0);
if (IsRightTetrimino(te) != 0)
te.transform.position += new Vector3(-tetrisMapSize, 0, 0);
}
}*/
public void TetriminoMove(Tetrimino te)
{
if (Input.GetKeyDown(KeyCode.LeftArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
te.mapCoord += new Vector3(-1, 0, 0);
SetRoomMapCoord(currentTetrimino);
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
if (IsRightTetrimino(te) != 0)
te.mapCoord += new Vector3(1, 0, 0);
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
}
else if (Input.GetKeyDown(KeyCode.RightArrow) && GameManager.gameState == GameManager.GameState.Tetris)
{
te.mapCoord += new Vector3(1, 0, 0);
SetRoomMapCoord(currentTetrimino);
MoveTetriminoMapCoord(te, new Vector3(1, 0, 0));
if (IsRightTetrimino(te) != 0)
te.mapCoord += new Vector3(-1, 0, 0);
MoveTetriminoMapCoord(te, new Vector3(-1, 0, 0));
}
SetRoomMapCoord(currentTetrimino);
}
public void TetriminoRotate(Tetrimino te)
{
......@@ -229,7 +233,7 @@ public class MapManager : MonoBehaviour {
{
for (int i = 0; i < te.rooms.Length; i++)
{
te.rooms[i].mapCoord = te.mapCoord + te.rooms[i].transform.localPosition;
te.rooms[i].mapCoord = te.mapCoord + (te.rooms[i].transform.localPosition / tetrisMapSize);
}
}
public void CreateRoom(Tetrimino te)
......@@ -237,11 +241,11 @@ public class MapManager : MonoBehaviour {
for (int i = 0; i < te.rooms.Length; i++)
{
te.rooms[i].transform.parent = grid;
te.rooms[i].transform.localScale = new Vector3(1, 1, 1);
HalfRoom halfRoomUp = Instantiate(halfRoomList[Random.Range(0, halfRoomList.Length)], te.rooms[i].transform.position + new Vector3(0, 12, 0),
Quaternion.identity, te.rooms[i].transform);
HalfRoom halfRoomDown = Instantiate(halfRoomList[Random.Range(0, halfRoomList.Length)], te.rooms[i].transform.position + new Vector3(0, 0, 0),
Quaternion.identity, te.rooms[i].transform);
if (te.rooms[i].itemRoomType != 0) ;
else if (te.rooms[i].specialRoomType != Room.SpecialRoomType.Normal)
Instantiate(specialRoomList[(int)te.rooms[i].specialRoomType], te.rooms[i].transform.position, Quaternion.identity, te.rooms[i].transform);
else
Instantiate(normalRoomList[Random.Range(0, normalRoomList.Length)], te.rooms[i].transform.position, Quaternion.identity, te.rooms[i].transform);
}
Destroy(te.gameObject);
}
......@@ -268,7 +272,7 @@ public class MapManager : MonoBehaviour {
// Update is called once per frame
void Update() {
Test();
//TetriminoMove(currentTetrimino);
//currentTetrimino.transform.position = currentTetrimino.mapCoord * tetrisMapSize + tetrisMapCoord;
TetriminoMove(currentTetrimino);
currentTetrimino.transform.position = currentTetrimino.mapCoord * tetrisMapSize + tetrisMapCoord;
}
}
......@@ -35,7 +35,7 @@ public class Room : MonoBehaviour
/// <summary>
/// Enum for special room types.
/// </summary>
public enum SpecialRoomType { Normal, Boss, BothSide, Gold, Amethyst };
public enum SpecialRoomType { Boss, BothSide, Gold, Amethyst, Start, Normal };
/// <summary>
/// Special room types.
/// </summary>
......
......@@ -2,7 +2,7 @@
using System.Collections.Generic;
using UnityEngine;
public class HalfRoom : MonoBehaviour {
public class RoomInGame : MonoBehaviour {
/// <summary>
/// The enum for door information.
......
......@@ -21,7 +21,7 @@ public class TetriminoSpawner : MonoBehaviour {
* functions
* */
/// <summary>
/// Make new Tetrimino on top.
/// Make new Tetrimino at top.
/// </summary>
public void MakeTetrimino()
{
......@@ -37,11 +37,35 @@ public class TetriminoSpawner : MonoBehaviour {
}
else
randomTetrimino = TetriminoRandomizer();
//MM.currentTetrimino = Instantiate(tetriminoes[randomTetrimino], MM.tetrisMapCoord + MM.tetrisMapSize * new Vector3(randomPosition, MapManager.realHeight + 1, MM.tetrisMapCoord.z), Quaternion.identity);
MM.currentTetrimino = Instantiate(tetriminoes[randomTetrimino], MM.tetrisMapCoord + MM.tetrisMapSize * new Vector3(0, 0, 0), Quaternion.identity);
MM.currentTetrimino = Instantiate(tetriminoes[randomTetrimino], MM.tetrisMapCoord + MM.tetrisMapSize * new Vector3(randomPosition, MapManager.realHeight + 1, MM.tetrisMapCoord.z), Quaternion.identity);
MM.currentTetrimino.mapCoord = (MM.currentTetrimino.transform.position - MM.tetrisMapCoord) / MM.tetrisMapSize;
MM.SetRoomMapCoord(MM.currentTetrimino);
MM.MakeTetriminoRightPlace(MM.currentTetrimino);
}
}
/// <summary>
/// Make initial Tetrimino at bottom.
/// </summary>
public void MakeInitialTetrimino()
{
var MM = GameObject.FindGameObjectWithTag("MapManager").GetComponent<MapManager>();
if (!MM.gameOver)
{
int randomPosition = Random.Range(0, MapManager.width);
int randomTetrimino;
if (MM.spawnBossTetrimino)
{
randomTetrimino = 7;
MM.spawnBossTetrimino = false;
}
else
randomTetrimino = TetriminoRandomizer();
MM.currentTetrimino = Instantiate(tetriminoes[randomTetrimino], MM.tetrisMapCoord + MM.tetrisMapSize * new Vector3(randomPosition, 0, MM.tetrisMapCoord.z), Quaternion.identity);
MM.currentTetrimino.rooms[Random.Range(0, MM.currentTetrimino.rooms.Length)].specialRoomType = Room.SpecialRoomType.Start;
MM.currentTetrimino.mapCoord = (MM.currentTetrimino.transform.position - MM.tetrisMapCoord) / MM.tetrisMapSize;
MM.SetRoomMapCoord(MM.currentTetrimino);
MM.MakeTetriminoRightPlace(MM.currentTetrimino);
MM.CreateRoom(MM.currentTetrimino);
}
}
......@@ -75,6 +99,7 @@ public class TetriminoSpawner : MonoBehaviour {
// Use this for initialization
void Start () {
MakeInitialTetrimino();
MakeTetrimino();
}
......
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