public void SaveStage(MTGClass p_cls) { // 블럭과 블럭이 겹쳤을때 빈공간을 그대로 덮어씌울경우 구멍이 나기 때문에 그부분을 위한 저장해주는 부분 for (int i = 0; i < m_Height; i++) { for (int j = 0; j < m_Width; j++) { // 새로 내려오는 블럭의 빈공간이 기존 차있는 공간과 만났을경우 덮어 쓰지 않는다. if (!(buffer[i, j] == 1 && p_cls.buffer[i, j] == 0)) { buffer[i, j] = p_cls.buffer[i, j]; } } } }
private void Render() { // 화면을 그려주는 메소드 doublebuffer = new MTGClass(); doublebuffer.SetBuffer(PosX, PosY, nowBrick); doublebuffer.SaveStage(stage); // 새로운 스테이지를 만들고 거기에 블럭이 내려오는 부분을 그린후에 // SaveStage메소드에서 추가적으로 기존에 있던 블럭들의 정보를 추가 연산 Console.CursorVisible = false; Console.SetCursorPosition(0, 3); Console.Write(doublebuffer.Getbuffer()); // 출력부분 Console.SetCursorPosition(50, 5); Console.WriteLine("Score : {0}", string.Format("{0:####}", Score)); Console.SetCursorPosition(50, 7); Console.WriteLine("Level : {0}", string.Format("{0:##}", Level)); // 점수출력 }