Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
小蜜蜂基礎遊戲程式
4-1 小蜜蜂基礎遊戲 -遊戲製作開發流程圖
4-2 小蜜蜂基礎遊戲 -遊戲圖示解說
4-3 小蜜蜂基礎遊戲 -遊戲副程式解說
4-4 小蜜蜂基礎遊戲 -遊戲程式解說
4-5 小蜜蜂基礎遊戲 -動動腦
04chapter
> 4-2 <
2D與3D遊戲設計必修課
Visual C# 2008Visual C# 2008
本章節為第三章的延伸,利用一個水平及垂直移動基礎程式的設計方式,加
上利用基礎的位移觀念及圖片的位置數據去組成一個小蜜蜂基礎遊戲程式設計,
透過下列圖示說明,來解說遊戲流程,讀者就可以明小蜜蜂基礎遊戲程式的操作
過程與設計流程。
4-1 小蜜蜂基礎遊戲-遊戲製作開發流程圖
小蜜蜂基礎遊戲流程圖:
遊戲方法構思與外觀設計
思考每個等級的遊戲速度的快慢要設多少
思考每個等級的過關分數要多少才適合
撰寫自選等級與時間玩法程式
時間限制要分別為多少
不斷測試遊戲,發現遊戲的疑點,進而修改或添加程式
撰寫射擊玩法程式
打小蜜蜂動畫程式撰寫
結束
圖 4-1 小蜜蜂基礎遊戲程式設計流程
小蜜蜂基礎遊戲程式
> 4-3 <
小蜜蜂基礎遊戲程式 04
4-2 小蜜蜂基礎遊戲-遊戲圖示解說
STEP 1 發射子彈的方向由滑鼠控制左右鍵為左右方向,中鍵為發射子彈的按鈕。
圖 4-2 小蜜蜂遊戲起始前畫面
STEP 2 當啟動時,則會記錄子彈的座標位置 (X及 Y座標 ),如果發現小蜜蜂的移動距離到可以發射的子彈的時機,需要玩家去掌握。
圖 4-3小蜜蜂遊戲啟動畫面
> 4-4 <
2D與3D遊戲設計必修課
Visual C# 2008Visual C# 2008
STEP 3 如果擊中小蜜蜂時,則會顯示玩家得到的總分數示多少數值。
圖 4-4 玩家遊玩畫面及得分畫面
4-3 小蜜蜂基礎遊戲-遊戲副程式解說
label1.Text label1.Text = “XX的座標為:的座標為:” + bull.Left.ToString bull.Left.ToString()();; label2.Text label2.Text = “YY的座標為:的座標為:” + bull.Top.ToString bull.Top.ToString()();; label3.Text = “玩家得到的總分數” + z.ToString();
圖 4-5 子彈的座標數值
privateprivate voidvoid button1_Click button1_Click((objectobject sender, sender, EventArgsEventArgs e e)) {{ timer1.Enabled timer1.Enabled = truetrue;; timer3.Enabled timer3.Enabled = truetrue;; }} private void button2_Click(object sender, EventArgs e)
小蜜蜂基礎遊戲程式
> 4-5 <
小蜜蜂基礎遊戲程式 04
{ Application.Exit(); }
圖 4-6 遊戲開始與離開遊戲
private void timer1_Tick(object sender, EventArgs e) { if (x == 800) { x = 100; bull.Left = 670; label3.Text = “玩家得到的總分數” + z.ToString();
} else { x=x+1; bull.Left = x; bull.Top = y; label1.Text = “X的座標為:” + bull.Left.ToString(); label2.Text = “Y的座標為:” + bull.Top.ToString(); label3.Text = “玩家得到的總分數” + z.ToString(); }
}
圖 4-7 玩家的得分數顯示
> 4-6 <
2D與3D遊戲設計必修課
Visual C# 2008Visual C# 2008
計時器 1及 2
─計時器─計時器 1: 1: 用來計算玩家得分的數值及顯示用來計算玩家得分的數值及顯示XX及及YY的座標的座標
privateprivate voidvoid timer1_Tick timer1_Tick((objectobject sender, sender, EventArgsEventArgs e e)) {{ ifif ((x x == 800 800)) {{ x x = 100; 100; bull.Left bull.Left = 670; 670; label3.Text label3.Text = “玩家得到的總分數玩家得到的總分數” + z.ToString z.ToString()();;
}} elseelse {{ x x=xx+1;1; bull.Left bull.Left = x; x; bull.Top bull.Top = y; y; l label1.Text abel1.Text = “XX的座標為:的座標為:” + bull.Left.ToString bull.Left.ToString()();; label2.Text label2.Text = “YY的座標為:的座標為:” + bull.Top.ToString bull.Top.ToString()();; label3.Text label3.Text = “玩家得到的總分數玩家得到的總分數” + z.ToString z.ToString()();; }}
}
4-4 小蜜蜂基礎遊戲-遊戲程式解說
privateprivate voidvoid timer1_Tick timer1_Tick((objectobject sender, sender, EventArgsEventArgs e e)) {{ ifif ((x x == 800 800)) {
小蜜蜂基礎遊戲程式
> 4-7 <
小蜜蜂基礎遊戲程式 04
x = 100; bull.Left = 670; label3.Text = “玩家得到的總分數” + z.ToString();
} else { x=x+1; bull.Left = x; bull.Top = y; label1.Text = “X的座標為:” + bull.Left.ToString(); label2.Text = “Y的座標為:” + bull.Top.ToString(); label3.Text = “玩家得到的總分數” + z.ToString(); }
}
private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; timer3.Enabled = true; } private void Form_keyDown(object sender,KeyEventArgs e) { if (e.KeyCode== Keys.L) { timer1.Enabled = false; timer2.Enabled = true; } } 呼叫shout射擊副程式。並使用滑鼠中鍵做射擊動作 private void shout(object sender,MouseEventArgs e) { if (e.Button == MouseButtons.Middle) {
timer1.Enabled = false; timer2.Enabled = true; y = 100;
> 4-8 <
2D與3D遊戲設計必修課
Visual C# 2008Visual C# 2008
}} }}
privateprivate voidvoid button2_Click button2_Click((objectobject sender, sender, EventArgsEventArgs e e)) {{ ApplicationApplication.Exit.Exit()();; }} privateprivate voidvoid timer2_Tick timer2_Tick((objectobject sender, sender, EventArgsEventArgs e e)) {{ ifif ((y <y <= 0 0)) {{ // y // y = 100; 100; timer2.Enabled timer2.Enabled = falsefalse;; timer1.Enabled timer1.Enabled = truetrue;; timer3.Enabled timer3.Enabled = truetrue;; x x = 100; 100; y y = 432; 432; }} elseelse {{ y y = y y - 10; 10; bull.Left bull.Left = x; x; bull.Top bull.Top = y; y; label1.Text label1.Text = “XX的座標為:的座標為:” + bull.Left.ToString bull.Left.ToString()();; label2.Text label2.Text = “YY的座標為:的座標為:” + bull.Top.ToString bull.Top.ToString()();; }}
}}
privateprivate voidvoid bull_Click bull_Click((objectobject sender, sender, EventArgsEventArgs e e)) {{
}}
iintnt z z=0;0; private void timer3_Tick(object sender, EventArgs e)
小蜜蜂基礎遊戲程式
> 4-9 <
小蜜蜂基礎遊戲程式 04
{ if ((Bee.Top <= 40) && (Bee.Left == 262))//判斷pictureBox2 Y座標是否為350且X座 標為200 label3.Text = z.ToString(); switch (bull.Top) //用switch判斷pic_men X座標 { case 30: case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: case 40: case 41: case 42: case 43: case 44: case 45: case 46: case 47: case 48: case 49: case 50: z++; label3.Text =”玩家得到的總分數”+ z.ToString(); timer3.Enabled = false; break; } } }}