void TouchMovingTiles() { if (HGameMng.I.nTouchCount == 1) // 1번째 터치일 때 { int nDestYIndex = HGameMng.I.nTouchYIndex; int nTouchXIndex = GetTileXIndex(); // 터치한 시점에서 타일의 X인덱스 int nTouchYIndex = GetTileYIndex(); // 터치한 시점에서 타일의 Y인덱스 if (nDestYIndex != nTouchYIndex) // 지금 있는 열과 터치한 열이 다를 때 { if (HGameMng.I.TileIndexInfoArray[nTouchXIndex + 1, nDestYIndex].nIndex == 0) // 터치한 열에 타일의 현재 위치보다 높이 있는 타일이 없을 때 { bMoved = true; Vector3 TempVec3 = transform.position; TempVec3.x = HGameMng.I.OffsetGroupSc.OffsetTmList[nDestYIndex].position.x; transform.position = TempVec3; CalcDestPos(nDestYIndex, bMoved); HGameMng.I.TileIndexInfoArray[nPrevXIndex, nPrevYIndex].Tile = null; HGameMng.I.TileIndexInfoArray[nPrevXIndex, nPrevYIndex].nIndex = 0; } } } ETileState = E_TILE_STATE.E_DOWN; HGameMng.I.nTouchCount = 0; }
//초 기 public void Reset() { bUse = false; nTiletype = -1; E_TSTATE = E_TILE_STATE.E_STOP; Tm.localPosition = Vector3.zero; DestVec3 = Vector3.zero; }
void TileDown() { transform.localPosition = Vector3.MoveTowards(transform.localPosition, DestVec3, Time.deltaTime * HGameMng.I.TGroupSc.fTileMoveSpeed); if (transform.localPosition == DestVec3) { E_TSTATE = E_TILE_STATE.E_STOP; } }
public void Reset() { TileSprite.color = Color.white; transform.localPosition = Vector3.zero; nTileColorDepth = 0; bUse = false; ETileState = E_TILE_STATE.E_STOP; DestVec3 = Vector3.zero; bMoved = false; }
// 한칸씩 내려가 public void OneStepDown(int nYIndex, int nXIndex) { Tm = this.transform; Vector3 nTempVec3 = Vector3.zero; HGameMng.I.SetTileIndex(nYIndex, nXIndex, 0, null); HGameMng.I.SetTileIndex(nYIndex + 1, nXIndex, 1, (HTileInfo)this); nTempVec3.x = nXIndex * 40f; nTempVec3.y = -((nYIndex + 1) * 40f); nTempVec3.z = 0f; DestVec3 = nTempVec3; E_TSTATE = E_TILE_STATE.E_DOWN; }
public void OneStepDown(int nXIndex, int nYIndex) { // 한 칸 아래에 정보 복사 HGameMng.I.TileIndexInfoArray[nXIndex + 1, nYIndex].Tile = this; HGameMng.I.TileIndexInfoArray[nXIndex + 1, nYIndex].nIndex = HGameMng.I.TileIndexInfoArray[nXIndex, nYIndex].nIndex; // 지금 칸 정보 비움 HGameMng.I.TileIndexInfoArray[nXIndex, nYIndex].Tile = null; HGameMng.I.TileIndexInfoArray[nXIndex, nYIndex].nIndex = 0; // 한 칸 아래로 목적지 계산 DestVec3.x = transform.localPosition.x; DestVec3.y = -((nXIndex + 1)) * TileSprite.height; DestVec3.z = 0f; ETileState = E_TILE_STATE.E_DOWN; HGameMng.I.TileGroupSc.fCurrentSpeed = HGameMng.I.TileGroupSc.fTileDownSpeed; }
void DownTiles() { transform.localPosition = Vector3.MoveTowards(transform.localPosition, DestVec3, HGameMng.I.TileGroupSc.fCurrentSpeed * Time.deltaTime); if (transform.localPosition == DestVec3) { ETileState = E_TILE_STATE.E_STOP; HGameMng.I.fTimeArray[(int)E_GTIME.E_CREATE] = Time.time; HGameMng.I.bScoreEftSwitch = true; HMng.I.nCurrentScore += 2; HGameMng.I.DownTileAudio.Play(); if (HMng.I.nCurrentScore >= HGameMng.I.TileGroupSc.nSpeedUpScore * (HGameMng.I.TileGroupSc.nSpeedUpCount + 1)) // 점수가 nSpeedUpScore만큼 증가했는지 검사 { HGameMng.I.TileGroupSc.nSpeedUpCount++; HGameMng.I.TileGroupSc.fOriginalSpeed += HGameMng.I.TileGroupSc.fSpeedUp; } HGameMng.I.TileGroupSc.fCurrentSpeed = HGameMng.I.TileGroupSc.fOriginalSpeed; } }
void Init() { E_TSTATE = E_TILE_STATE.E_STOP; UserSprite = transform.GetComponent <UISprite> (); }