일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 데브피아
- 신석현
- 윈도우폰7
- 쉐어포인트코리아
- 소년포비
- UX베이커리
- 신동혁
- 서진호
- 훈스닷넷
- 주신영
- 김춘배
- 실버라이트 코리아
- 황광진
- 마이크로소프트
- 헤이맨
- 윈도우 모바일
- 옴니아2
- 윈도데브
- windows mobile 6.5
- winmodev
- 스마트폰
- 윈도우모바일
- 윈모데브
- MIX10
- 지승욱
- 윈도우폰
- 소년포비소프트
- 루나네스
- 거제도
- 안드로이드
- Today
- Total
소년포비의 세계정복!!
Windows Mobile 퍼즐 게임 본문
처음에는 .net framework 3.5로 만들었는데 옴니아에서 상위 framework라 실행이 되지 않아 .NET Framework 2.0으로 했다.
1. 신규 프로젝트를 생성한다. ( .Net Framework 2.0)으로 해야 된다)
2. 4개의 폼으로 만들었다.
- frmgame.cs -> 퍼즐 게임을 하는 폼이다
- frmht -> 퍼즐 게임 원본 이미지를 보여주는 폼이다
- frmMain -> 처음 시작하는 폼으로 별 다른 것 없이 시작 하기 버튼만 있다.
이 폼에 대한 것은 생략할 예정이다.
- frmsltgame -> 퍼즐 이미지를 선택하고 퍼즐 조각 갯 수 및 퍼즐 움직은 속도를 선택하는 폼이다.
- iphotocreate -> 사진을 촬영 하여 퍼즐에 사용하도록 한 폼이다.
참조에 Microsoft.WindowsMobile외 2개는 카메라 촬영을 위해 참조 한 것이다.
3. frmsltgame 폼 디자인
- 아래와 같이 picturebox 2개 ( 이미지 선택 탐색기를 호출하는 것과 사진 촬영하는 것을 호출 하는 것) 버튼으로 해도 된다.
- 퍼즐 조각을 선택하는 combobox 와 속도를 선택하는 combobox
- 선택한 이미지를 보여주는 picturebox 로 구성하고
- Menu에 시작하기와 종료를 두었다.
- using Microsoft.WindowsMobile.Forms;
using System.IO;
추가했다.
4. frmsltgame.Designer.cs을 다음과 같이 했다.
public System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.ComboBox comboBox1;
public int puzzlecnt;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
public string PuzzleFile;
public frmgame sgm = new frmgame();
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ComboBox comboBox2;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.PictureBox pictureBox3;
5. 폼 로드 이벤트 처리
private void frmsltgame_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("3 X 3");
comboBox1.Items.Add("4 X 4");
comboBox1.Items.Add("5 X 5");
comboBox1.Items.Add("6 X 6");
comboBox2.Items.Add("빠르게");
comboBox2.Items.Add("보통");
comboBox2.Items.Add("느리게");
if (PuzzleFile == "" || PuzzleFile == null) //이미지 선택이 없을시 디폴트 제공 이미지
{
string path = GetApplication(); // 경로 구하기
PuzzleFile = Path.Combine(path, "aaa.jpg");
}
pictureBox1.Image = new Bitmap(PuzzleFile);
sgm.PuzzleImageWidth = 480;
sgm.PuzzleImageHeight = 480;
}
6. 퍼즐 조각 갯수 선택시 이벤트 처리
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
//sgm.PuzzleFile = PuzzleFile;
switch (comboBox1.Text)
{
case "3 X 3":
sgm.game_setting(3); // sam의 game_setting 에 3을 넘기 (sam 은 disigner.cs에서 객체를 생성했다.)
break;
case "4 X 4":
sgm.game_setting(4);
break;
case "5 X 5":
sgm.game_setting(5);
break;
case "6 X 6":
sgm.game_setting(6);
break;
}
}
7. 퍼즐 이동 속도 선택 이벤트 처리
private void comboBox2_SelectedValueChanged(object sender, EventArgs e)
{
switch (comboBox2.Text)
{
case "빠르게":
sgm.PuzzleSpeed = 0;
break;
case "보통":
sgm.PuzzleSpeed = 1;
break;
case "느리게":
sgm.PuzzleSpeed = 2;
break;
}
}
8. applicate 경로 구하기
- 이부분은 데브피아에 있는 것을 똑 같이 썼다.
public string GetApplication()
{
return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly()
.GetModules()[0].FullyQualifiedName);
}
9. 이미지 선택(탐색기 ) 이벤트 처리
- 이부분도 데브피아에 있는 것을 참고 하여 작성했다.
private void pictureBox2_Click(object sender, EventArgs e)
{
SelectPictureDialog spd = new SelectPictureDialog();
if (spd.ShowDialog() == DialogResult.OK)
{
PuzzleFile = spd.FileName;
pictureBox1.Image = new Bitmap(PuzzleFile);
sgm.PuzzleImageWidth = pictureBox1.Width;
sgm.PuzzleImageHeight = pictureBox1.Height;
sgm.PuzzleFile = PuzzleFile;
}
}
10 사진 촬영 하기 클릭 이벤트 처리
private void pictureBox3_Click(object sender, EventArgs e)
{
iPhotoCreate frmic = new iPhotoCreate();
frmic.Owner = this;
frmic.Show();
}
11. 시작하기 메뉴 클릭 이벤트 처리
- 퍼즐 속도는 나중에 추가 한거라 여기에 미처 체크하는 부분을 넣지 못 했다.
private void menuItem1_Click(object sender, EventArgs e)
{
if (comboBox1.Text == "")
{
MessageBox.Show("퍼즐 조각을 선택해 주세요");
}
else
{
sgm.PuzzleFile = PuzzleFile;
sgm.Show();
this.Close();
}
}
12 . 종료 메뉴 클릭 이벤트 처리
private void menuItem2_Click(object sender, EventArgs e)
{
Application.Exit();
}
여기까지 하면 선택 폼에 대한 작업은 끝났다.
빌드를 한다.
빌드 할때 에뮬을 Windows Mobile 6.1.4에 Professional 480 X 800 Emulator 로 한다. (옴니아가 480 X 800 이므로 단 한글은 깨진다)
실행 결과
나머지 폼은 다음에...
'윈도우폰 세상 > Windows Phone' 카테고리의 다른 글
Windows Moblie 퍼즐 게임 3 (0) | 2009.09.27 |
---|---|
Windows Moblie 퍼즐 게임 2 (0) | 2009.09.27 |
[.NET CF] PocketOutlook API 초 간단 예제 (0) | 2009.09.27 |
PDA 프로그래밍(.net C#) 환경 만들기 - 대략 M4655를 기준으로 (0) | 2009.09.27 |
[스크랩] 앱스개발시 브라우저 호환성 테스트시 유용한 플러그인 [펌] (0) | 2009.09.23 |