private void DropBrick() { int Timetemp = Environment.TickCount; if (Timetemp - startY > Checktime) { // 현재시간 - 시작점이 주기보다 크다면 다음을 실행하고 startY = Timetemp; // 시작점을 다시 현재시간으로 초기화 if (stage.IsSomethingBelow(PosX, PosY, nowBrick)) { // 아래에 무엇이 있다면 더이상 블럭이 내려가지 않고 // 스테이지에 저장후 블럭의 좌표 및 새로운 블럭으로 재설정 if (PosY <= 0) { Endflag = false; } stage.SaveStage(doublebuffer); PosX = 4; PosY = 0; SetBricks(); return; } // 주기마다 좌표값을 증가시켜 블럭이 떨어지는것 처럼 구현 PosY++; } }
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)); // 점수출력 }