티스토리 뷰


이제 처음 시작시 랜덤하게 배열시키도록하겠습니다.

아무렇게나 배열하게되면 안 풀리는 퍼즐이 될수도 있기때문에
MoveBlock을 반복문으로 돌려서 배열하도록 하겠습니다.




private void setrandom() { for (int i = 0; i < 20; i++) { int ran = rand.Next(4); if (ran == 0) { MoveBlock(1, 0); } else if (ran == 1) { MoveBlock(-1, 0); } else if (ran == 2) { MoveBlock(0, 1); } else if (ran== 3) { MoveBlock(0, -1); } } }

    protected override void Initialize() 에 들어갈 함수입니다.
간단하게 20번 정도 랜덤으로 돌리게 해두었습니다.
총 0~4의 값을 랜덤으로 받아서 한칸씩 이동시키고 있습니다.

다음으로는 차례로 퍼즐이 맞았을경우 성공 창을 띄우겠습니다.
        Texture2D suc;
success시 나올 그림을 선언해주시구요~
            suc = Content.Load<Texture2D>("suc");
로드해주시구요~

이제 성공시 bool 자료형을 하나 사용하여 성공시에만 그림을 나타나게 하겠습니다.
먼저 그림이 완성되는 것을 판단하겠습니다.




public void testsuccess() { int su =0; int suess = 0; for (int n = 0; n < 4; n++) { for (int m = 0; m < 6; m++) { if (data[n, m] == su) { if (suess >= 22) { success = true; } suess++; } su++; } } }

protected override void Update(GameTime gameTime)
업데이트 부분에 위 함수를 추가 해줍니다.
매프레임 성공을 하였는지를 검사합니다
만약 성공했을 시에는 success = true ; 값으로 나타내줍니다.
이중 for 문을 이용해서 data배열 값이 차례대로 나열되어있는지를 검사하고
suess값을 1씩 더해서 그수가 차례대로 완성이된다면 true 값을 반환합니다.



success가 true가 되며 더이상 키 입력을 받지 않고 화면상에 성공창을 띄우도록 하겠습니다.
if (success)
{
spriteBatch.Draw(suc, new Vector2(20,50), Color.White);
}
Draw 부분에 위 if문을 추가하였습니다
success가 true 값이되면 20,50위치에 success그림을 호출합니다.
키입력 부분에는 if(!success) 거짓일 때만 먹히게 하면 됩니다. 한번해보세요^^

네 간단한 퍼즐게임을 만들어봤습니다.^^

다음에는 xna creators 있는 예제를 파보도록 하겠습니다.

댓글