C#課程設(shè)計(jì)打磚塊_第1頁
C#課程設(shè)計(jì)打磚塊_第2頁
C#課程設(shè)計(jì)打磚塊_第3頁
C#課程設(shè)計(jì)打磚塊_第4頁
C#課程設(shè)計(jì)打磚塊_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、遼 寧 工 業(yè) 大 學(xué) C#.NET程序設(shè)計(jì) 課程設(shè)計(jì)(報(bào)告)題目: 打磚塊游戲 院 (系): 軟件學(xué)院 專業(yè)班級: 計(jì)算機(jī)信息管理101班 學(xué) 號(hào): 101403009 學(xué)生姓名: 姜洪亮 指導(dǎo)教師: 胡 峰 教師職稱: 助 教 起止時(shí)間:2011.11.21至2011.12.02程序設(shè)計(jì)專題(報(bào)告)任務(wù)及評語院(系):軟件學(xué)院 教研室:軟件教研窒學(xué) 號(hào)101403009學(xué)生姓名姜洪亮專業(yè)班級計(jì)算機(jī)信息管理101班程序設(shè)計(jì)(報(bào)告)題目打磚塊游戲程序設(shè)計(jì)(報(bào)告)任務(wù)程序設(shè)計(jì)專題的任務(wù)與要求:(1)掌握c#.net編程、面向?qū)ο蟮幕A(chǔ)知識(shí)。(2)較熟練地編寫c#.net windows應(yīng)用程序。

2、(3)了解C#.net的常用類庫、編程技巧、異常處理。(5)聯(lián)系已學(xué)過的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。(6)通過設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫程序的過程,對理論學(xué)習(xí)及動(dòng)手能力都有一個(gè)很大的提高。(7)通過本次設(shè)計(jì),進(jìn)一步培養(yǎng)學(xué)生熱愛專業(yè)的思想,同時(shí)對本專業(yè)綜合素質(zhì)的提高起一個(gè)積極的推動(dòng)作用。程序設(shè)計(jì)過程中,要嚴(yán)格遵守實(shí)踐環(huán)節(jié)的時(shí)間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,記錄實(shí)習(xí)日記,規(guī)范完整地撰寫出實(shí)訓(xùn)報(bào)告。指導(dǎo)教師評語及成績成績: 指導(dǎo)教師簽字: 2011 年 12月 02日遼 寧 工 業(yè) 大 學(xué) 課 程 設(shè) 計(jì) 說 明 書(論 文)目 錄第1章 程序設(shè)計(jì)專題目的與要求11.1

3、 程序設(shè)計(jì)目的11.2 程序設(shè)計(jì)的實(shí)驗(yàn)環(huán)境11.3 程序設(shè)計(jì)的預(yù)備知識(shí)11.4 程序設(shè)計(jì)要求1第2章 程序設(shè)計(jì)內(nèi)容22.1概要設(shè)計(jì)22.2程序整體設(shè)計(jì)說明22.3程序部分源代碼及注釋82.4測試結(jié)果12第3章 程序設(shè)計(jì)總結(jié)13參考文獻(xiàn)14第1章 程序設(shè)計(jì)目的與要求1.1 程序設(shè)計(jì)目的C#.Net程序設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的必修專業(yè)基礎(chǔ)課程,其實(shí)踐性、應(yīng)用性很強(qiáng)。實(shí)踐教學(xué)環(huán)節(jié)是必不可少的一個(gè)重要環(huán)節(jié)。本課程的程序設(shè)計(jì)專題實(shí)際是軟件技術(shù)專業(yè)學(xué)生學(xué)習(xí)完C#.Net程序設(shè)計(jì)課程后,進(jìn)行的一次全面的綜合訓(xùn)練,C#.Net程序設(shè)計(jì)的設(shè)計(jì)目的是加深對理論教學(xué)內(nèi)容的理解和掌握,使學(xué)生較系統(tǒng)地掌握程序設(shè)計(jì)及

4、其在網(wǎng)絡(luò)開發(fā)中的廣泛應(yīng)用,基本方法及技巧,為學(xué)生綜合運(yùn)用所學(xué)知識(shí),利用軟件工程為基礎(chǔ)進(jìn)行軟件開發(fā)、并在實(shí)踐應(yīng)用方面打下一定基礎(chǔ)。1.2 程序設(shè)計(jì)的實(shí)驗(yàn)環(huán)境硬件要求能運(yùn)行Windows xp操作系統(tǒng)的微機(jī)系統(tǒng)。C#.Net程序設(shè)計(jì)語言及相應(yīng)的集成開發(fā)環(huán)境visual 。1.3 程序設(shè)計(jì)的預(yù)備知識(shí)熟悉c#語言及visual 集成開發(fā)環(huán)境。1.4 程序設(shè)計(jì)要求按程序設(shè)計(jì)指導(dǎo)書提供的課題,要求學(xué)生在自行完成各個(gè)操作環(huán)節(jié),并能實(shí)現(xiàn)且達(dá)到舉一反三的目的,完成一個(gè)項(xiàng)目解決一類問題。要求學(xué)生能夠全面、深入理解和熟練掌握所學(xué)內(nèi)容,并能夠用其分析、設(shè)計(jì)和解答類似問題;對此能夠較好地理解和掌握,能夠進(jìn)行簡單分析和判

5、斷;能編寫出具有良好風(fēng)格的程序;掌握c#.net2003的基本技能和面向?qū)ο蟮母拍詈头椒ǎ涣私鈝indows編程。同時(shí)培養(yǎng)學(xué)生進(jìn)行分析問題、解決問題的能力;培養(yǎng)學(xué)生進(jìn)行設(shè)計(jì)分析、設(shè)計(jì)方法、設(shè)計(jì)操作與測試、設(shè)計(jì)過程的觀察、理解和歸納能力的提高。第2章 程序設(shè)計(jì)內(nèi)容2.1程序設(shè)計(jì)題目打磚塊游戲:作為我們一款熟知的游戲我想大家都不陌生吧,就是通過擋板把小球擋回,不讓小球落地,直到打光所有磚塊為止,游戲過關(guān)進(jìn)入更難得模式小球速度更快,磚塊組成的圖案發(fā)生改變,是一個(gè)很有趣味的小游戲。2.2程序整體設(shè)計(jì)說明2.2.1程序設(shè)計(jì)內(nèi)容 1. 需求分析 本系統(tǒng)為一個(gè)用C#實(shí)現(xiàn)的為我們所熟悉的簡單的打磚塊游戲,該系

6、統(tǒng)的具體功能如下:1) 能簡便的開始游戲,游戲中的功能與日常我們所熟悉的游戲的功能一致 ,直到磚塊全部打光過關(guān)和在磚塊打光之前機(jī)會(huì)用完游戲結(jié)束功能;2) 當(dāng)游戲結(jié)束時(shí)會(huì)自動(dòng)彈出消息框提示本關(guān)所獲得得分?jǐn)?shù);3) 當(dāng)過關(guān)時(shí)會(huì)出現(xiàn)提示圖片,點(diǎn)擊進(jìn)入下一關(guān),下一關(guān)的方塊位置和所組成的形狀會(huì)發(fā)生改變 2 設(shè)計(jì)環(huán)境 本程序選擇Visual Studio 2008作為實(shí)驗(yàn)環(huán)境。3. 程序設(shè)計(jì)內(nèi)容和思路1) 游戲設(shè)計(jì)游戲開始時(shí),小球會(huì)停在擋板正中間,而且此時(shí)小球可以隨著擋板左右自由移動(dòng),當(dāng)按下空格鍵小球彈出,并在程序設(shè)定的區(qū)域中不停碰撞反彈。2) 當(dāng)小球碰撞到墻壁、擋板、和磚塊的時(shí)候,均以相同的速度反彈,并且

7、磚塊被碰撞后會(huì)以相同的速度反彈,并且當(dāng)磚塊被碰撞后會(huì)消失。3) 擋板可以左右移動(dòng)以接住小球,若超過三次沒有接住,則游戲結(jié)束,按退出鍵退出,當(dāng)所有磚塊全部打光時(shí)則出現(xiàn)進(jìn)入下一關(guān)的提示框,點(diǎn)擊進(jìn)入下一關(guān)。 程序中所用類說明根據(jù)設(shè)計(jì)思路,可以為系統(tǒng)設(shè)計(jì)三個(gè)類,實(shí)現(xiàn)小球的類RussiaBlock繼承Object類,主窗體類MainForm類,設(shè)置窗體類SettingForm類。 using System;using System.Collections.Generic;using System.Text;using System.Drawing;namespace Arkanoid cl

8、ass DisposeDAO / <summary> / 處理球碰到磚塊后彈的方向(上下) / </summary> / <param name="bx">磚的X坐標(biāo)</param> / <param name="by">磚的Y坐標(biāo)</param> / <param name="bw">磚的水平長度</param> / <param name="bh">磚的高度</param> / <par

9、am name="qx">球的X坐標(biāo)</param> / <param name="qy">球的Y坐標(biāo)</param> / <param name="qr">球的直徑</param> / <returns>返回string類型值</returns> public static string DisposeTopDown(int bx, int by, int bw, int bh, int qx, int qy, int qr) string Y

10、fangxiang = "" int f = 0; /方向 if (Math.Abs(by - (qy + qr) <= 2) f = 1; /從上碰撞到球 else if (Math.Abs(qy - (by + bh) <= 2) f = 2; /從下碰撞到球 if (f = 1) Yfangxiang = "YTop" else if (f = 2) Yfangxiang = "YDown" return Yfangxiang; / <summary> / 處理球碰到磚塊后彈的方向(左右) / </

11、summary> / <param name="bx">磚的X坐標(biāo)</param> / <param name="by">磚的Y坐標(biāo)</param> / <param name="bw">磚的水平長度</param> / <param name="bh">磚的高度</param> / <param name="qx">球的X坐標(biāo)</param> / <param n

12、ame="qy">球的Y坐標(biāo)</param> / <param name="qr">球的直徑</param> / <returns>返回string類型值</returns> / <summary> / 處理球碰撞到磚塊后的動(dòng)作 / </summary> / <param name="point">磚塊的坐標(biāo)</param> / <param name="qx">球的X坐標(biāo)</para

13、m> / <param name="qy">球的Y坐標(biāo)</param> / <param name="qr">球的直徑</param> / <param name="xfangxiang">目前X方向</param> / <param name="yfangxiang">目前Y方向</param> / <returns>RreturnDataDbean類型值</returns> public

14、 static ReturnDataBean DisposeBrick(Point point, int qx, int qy, int qr, string xfangxiang, string yfangxiang) rn rdb; 2.2.2.程序窗體程序主界面進(jìn)入游戲時(shí)的主界面,可以選擇開始、幫助和退出功能。程序主界面 游戲界面游戲開始前的畫面,顯示游戲信息,分?jǐn)?shù)、關(guān)卡、及生命次數(shù)。游戲界面幫助界面幫助信息,是關(guān)于游戲如何開始,介紹游戲玩法,以及開發(fā)作者的游戲說明。幫助界面開始游戲進(jìn)入游戲

15、之后,游戲開始畫面,空格開始游戲,可以通過鍵盤的、來控制擋板的移動(dòng)。開始游戲游戲結(jié)束游戲結(jié)束畫面,當(dāng)你用完所有的生命時(shí),會(huì)彈出此窗口,提示你所得分?jǐn)?shù),游戲結(jié)束,可退出。游戲結(jié)束游戲過關(guān)提示當(dāng)你打光所有磚塊時(shí),屏幕會(huì)出現(xiàn)此字樣,提示你點(diǎn)擊進(jìn)入下一關(guān),顯示剩余生命值。游戲過關(guān)2.2.3異常處理說明退出命令。用戶可直接退出程序。 注意,如果在游戲過程中鼠標(biāo)點(diǎn)擊別的地方,或關(guān)閉別的文件,此時(shí)游戲會(huì)繼續(xù)運(yùn)行,只要點(diǎn)擊窗口則會(huì)繼續(xù)進(jìn)行。2.2.4程序運(yùn)行效果及存在的問題未處理問題未處理問題2.3程序部分源代碼

16、及注釋2.3.1 RussiaBlock類以下涉及的詞語基本塊指的是由四個(gè)小方塊構(gòu)成的實(shí)體,四個(gè)小方塊指的是小正方形。方塊與基本塊同義。1) 構(gòu)造函數(shù),通過給定的參數(shù):控件實(shí)例,左邊界,底邊界,小方塊(一個(gè)基本塊由4個(gè)小方塊構(gòu)成)單位象素,形狀號(hào),起始位置,顏色。2) 程序部分源代碼及注釋using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using Syst

17、em.Threading;namespace Arkanoid public partial class GameCol1 : Form public GameCol1() InitializeComponent(); Point pointPic = new Point50; /封裝pictureBox對象 string keySpace = "" /是否按下空格鍵 string key = "" /是否按下左右鍵 string xfangxiang = "XRight" /X方向默認(rèn)為右 string yfangxiang = &

18、quot;YTop" /Y方向默認(rèn)為上 int x = 4; /X坐標(biāo)移動(dòng)方向 int y = 4; /Y坐標(biāo)移動(dòng)方向 public static int count = 3; /剩余機(jī)會(huì) int bw = 0; /磚塊寬度 int bh = 0; /磚塊高度 int qr = 0; /球的直徑 Point dispoint = new Point(999, 999); /移動(dòng)磚塊到XY位置 public static int score = 0; /得分 int _count = -1; int countB = 50; ReturnDataBean rdb = new Retur

19、nDataBean(); /控制球的移動(dòng)timer事件 private void timer1_Tick(object sender, EventArgs e) _count = -1; /擊中的哪一個(gè)磚塊 if (countB = 0) keySpace = "Stop" xfangxiang = "" yfangxiang = "" this.picNext.Location = new Point(12, 254); /右上 if (keySpace = "Space" && xfangxia

20、ng = "XRight" && yfangxiang = "YTop") this.TopRight(); /左下 else if (keySpace = "Space" && xfangxiang = "XLeft" && yfangxiang = "YTop") this.TopLeft(); /左下 else if (keySpace = "Space" && xfangxiang = "XLe

21、ft" && yfangxiang = "YDown") this.DownLeft(); /右下 else if (keySpace = "Space" && xfangxiang = "XRight" && yfangxiang = "YDown") this.DownRight(); /判斷是否擊中球 if (_count >= 0 && _count < 50) this.IsScore(_count); /按下鍵盤鍵發(fā)生

22、事件 private void GameCol1_KeyDown(object sender, KeyEventArgs e) if (e.KeyCode = Keys.Left) key = e.KeyCode.ToString(); if (e.KeyCode = Keys.Right) key = e.KeyCode.ToString(); if (e.KeyCode = Keys.Space) keySpace = e.KeyCode.ToString(); /釋放鍵盤鍵發(fā)生事件 private void GameCol1_KeyUp(object sender, KeyEventAr

23、gs e) key = "" /單擊退出鍵發(fā)生事件 private void lblClose_Click(object sender, EventArgs e) GameMain.isLoginGame = false; Program.bol = true; this.Close(); private void lblClose_MouseEnter(object sender, EventArgs e) this.lblClose.ForeColor = Color.Red; private void lblClose_MouseLeave(object sender

24、, EventArgs e) this.lblClose.ForeColor = Color.Black; private void goFeichuan_Tick(object sender, EventArgs e) if (key = "Left") Point Fpoint = this.picFeichuan.Location; Point Qpoint = this.picQiu.Location; if (this.picFeichuan.Location.X >= (this.picLeftborder.Location.X + 18) Fpoint.

25、X -= 10; if (keySpace = "") Qpoint.X -= 10; this.picFeichuan.Location = Fpoint; this.picQiu.Location = Qpoint; else if (key = "Right") Point Fpoint = this.picFeichuan.Location; Point Qpoint = this.picQiu.Location; if (this.picFeichuan.Location.X <= (this.picRightborder.Locatio

26、n.X - 97) Fpoint.X += 10; if (keySpace = "") Qpoint.X += 10; this.picFeichuan.Location = Fpoint; this.picQiu.Location = Qpoint; 3) 游戲結(jié)束代碼using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.F

27、orms;using System.IO;namespace Arkanoid public partial class GameOver : Form public GameOver() InitializeComponent(); private void lblExit_Click(object sender, EventArgs e) Application.Exit(); private void lblExit_MouseEnter(object sender, EventArgs e) this.lblExit.ForeColor = Color.Red; private void lblExit_MouseLeave(object sender, EventArgs e) this.lblExit.ForeColor = Color.Black; private void GameOver_Load(object sender, EventArgs e) this.lblScore.Text = GameCol1.score.ToString(); private void label1_Click(object sender, EventArgs e) 2.4 測試結(jié)果2.4.1 主窗體運(yùn)行界面編程完畢后,運(yùn)行調(diào)試,主窗體界面,及游

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論