private void UPBTN_Click(object sender, EventArgs e) { m_PlayerDirecton = E_DirectionType.UP; if (ISMove(m_PlayerPos.X, m_PlayerPos.Y - 1)) { int posx = m_PlayerPos.X; int posy = m_PlayerPos.Y; if (ISBox(posx, posy - 1)) { if (ISBoxMove(m_PlayerPos.X, m_PlayerPos.Y - 2)) { MoveBox(posx, posy - 1, posx, posy - 2); CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy - 1, posx] = 'p'; m_PlayerPos.Y -= 1; } } else { CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy - 1, posx] = 'p'; m_PlayerPos.Y -= 1; } } //Render(); this.Invalidate(); }
protected void SetActorMove(E_DirectionType p_movetype) { Vector3 offsetpos = Vector3.zero; switch (p_movetype) { case E_DirectionType.Up: offsetpos = Vector3.forward * 2; // 앞 방향으로 1 이동 * 2 break; case E_DirectionType.Down: offsetpos = Vector3.back * 2; // 뒤 방향으로 1 이동 * 2 break; case E_DirectionType.Left: offsetpos = Vector3.left * 2; // 왼쪽 방향으로 1 이동 * 2 break; case E_DirectionType.Right: offsetpos = Vector3.right * 2; // 오른쪽 방향으로 1 이동 * 2 break; default: Debug.LogErrorFormat("SetActorMove Error : {0}", p_movetype); // 잘못된 입력시 출력 break; } this.transform.position += offsetpos; }
private void LeftBTN_Click(object sender, EventArgs e) { m_PlayerDirecton = E_DirectionType.Left; if (ISMove(m_PlayerPos.X - 1, m_PlayerPos.Y)) { //int posx = m_PlayerPos.X; //int posy = m_PlayerPos.Y; //CurrentStageData[posy, posx] = ' '; //CurrentStageData[posy, posx - 1] = 'p'; //m_PlayerPos.X -= 1; int posx = m_PlayerPos.X; int posy = m_PlayerPos.Y; if (ISBox(posx - 1, posy)) { if (ISBoxMove(m_PlayerPos.X - 2, m_PlayerPos.Y)) { MoveBox(posx - 1, posy, posx - 2, posy); CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy, posx - 1] = 'p'; m_PlayerPos.X -= 1; } } else { CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy, posx - 1] = 'p'; m_PlayerPos.X -= 1; } } Render(); this.Invalidate(); }
private void DownBTN_Click(object sender, EventArgs e) { m_PlayerDirecton = E_DirectionType.Down; if (ISMove(m_PlayerPos.X, m_PlayerPos.Y + 1)) { //int posx = m_PlayerPos.X; //int posy = m_PlayerPos.Y; //CurrentStageData[posy, posx] = ' '; //CurrentStageData[posy + 1, posx] = 'p'; //m_PlayerPos.Y += 1; int posx = m_PlayerPos.X; int posy = m_PlayerPos.Y; if (ISBox(posx, posy + 1)) { if (ISBoxMove(m_PlayerPos.X, m_PlayerPos.Y + 2)) { MoveBox(posx, posy + 1, posx, posy + 2); CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy + 1, posx] = 'p'; m_PlayerPos.Y += 1; } } else { CurrentBOXStageData[posy, posx] = ' '; CurrentBOXStageData[posy + 1, posx] = 'p'; m_PlayerPos.Y += 1; } } Render(); this.Invalidate(); }