티스토리 뷰
MoveBlock(int dx, int dy) 함수를 이용해서 키보드에 따라 움직이는 퍼즐을 만들어보겠습니다.
가장먼저 키보드입력을 받아오도록 합시다.
protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); KeyboardState KeyboardState = Keyboard.GetState();//키보드상태 if (KeyboardState.IsKeyDown(Keys.Left) && stopkeyboard.IsKeyUp(Keys.Left)) { MoveBlock(-1, 0); } if (KeyboardState.IsKeyDown(Keys.Right) && stopkeyboard.IsKeyUp(Keys.Right)) { MoveBlock(1, 0); } if (KeyboardState.IsKeyDown(Keys.Up) && stopkeyboard.IsKeyUp(Keys.Up)) { MoveBlock(0, -1); } if (KeyboardState.IsKeyDown(Keys.Down) && stopkeyboard.IsKeyUp(Keys.Down)) { MoveBlock(0, 1); }
키 입력에 따라 MoveBlock() 함수를 호출 합니다.
각 수에따라 위아래로 셀을 움직일 예정입니다.
키 입력 부분이 완성 되었습니다. 그럼 이제 MoveBlock 함수를 만들어 봅시다.
-1의 값을 가진 data[n,m] 의 값을 찾습니다.
public void MoveBlock(int dx, int dy) { bool bFind = false;//빈블럭 찾기 int ex = 0;//빈블럭 좌표값 int ey = 0;//빈블럭 좌표값 for (int n = 0; n < 4 && !bFind; n++) { for (int m = 0; m < 6 && !bFind; m++) { if (data[n,m] < 0) { bFind = true; ex = m; ey = n; } } } if (ex + dx >= 6 || ex + dx < 0 || ey + dy >= 4 || ey + dy < 0) return; //만약 좌우 위아래 끝에 도달하면 움직이지 말고 리턴하라// data[ey, ex] = data[ey + dy, ex + dx];// data[ey + dy, ex + dx] = -1;//빈블럭과 움직인 셀을 바꿔줍니다. }
찾은후 좌표값을 저장하고 MoveBlock시 들어온 인수를 더해서
-1을 가진 셀과 바꿔버리는 것입니다.
이렇게 하면 -1을 값을 가진 것은 그리지 않게 되고
data 값에 의해서 그림영역이 정해지기때문에 그림이 바뀌지 않고 그 위치로 바뀌게 됩니다.
네 다음 #3에서는 랜덤으로 배열하고 완성 시에 success 글을 출력하도록 하겠습니다.
%보너스
private void setdivise() { graphics.PreferredBackBufferWidth = 240; graphics.PreferredBackBufferHeight = 160; graphics.ApplyChanges(); } 화면 크기를 바꾼 함수입니다. 초기화 부분에 넣어두시면 됩니다.^^
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- XNA 2D tutorial
- XNA 퍼즐게임
- 듀랑고
- 메이저골프게임
- 플래시
- 골프 게임
- 듀랑고 매크로
- 리니지m 매크로
- C# 매크로 강의
- 포토샵 에러
- 듀랑고 자동
- 비활성화 화면 캡쳐
- C# 듀랑고 매크로
- xna 2D
- XNA
- 매크로 강의
- C# 매크로
- 매크로 강좌
- 매크로
- MSP 프로젝트P
- 메이저골프
- XNA 3D tutorial
- MSPproject
- 안드로이드
- 모모앱플레이어 매크로
- 안드로이드 개발
- 모바일게임 매크로
- 이미지 찾기 매크로
- 안드로이드 게임
- C# 이미지매크로
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함