您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C#课程设计实验报告
苏州市职业大学课程设计说明书名称计算机语言C#课程设计弹珠游戏2010年6月21日至2010年7月4日共2周院系计算机工程系班级09软件测试姓名罗苑(096307335)系主任李金祥教研室主任叶良指导教师张苏王德鹏摘要:这个小程序是关于弹珠的小游戏,游戏比较简单,以小球的速度来区分游戏的难易。该小程序是用左右键控制游戏的开始和挡板的方向,不让小球落到底端,当然,小球的速度越快,该游戏的难度也就越大。此程序利用C#程序编写,在visualstudio2005的环境下进行调试运行的。弹珠原理:碰撞基本都是参照“反射定理”的,就是出射角=入射角,但是做碰撞时需要角度。碰撞的运动和球的方向有关,球的方向有好几种。有8向的,也有4向的。保证小球横向上在允许范围之内运动,当触发时就反方向运动,和当出了球拍的可击打范围就停止运行了。对于该程序开发,必须达到以下要求:1、熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS应用程序。2、掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮助的使用方法。3、掌握常用控件以及控件的常用属性的使用方法。4、界面要做到简洁易懂,具有人性化等特点。5、程序没有在使用过程中不存在任何的问题。6、可选功能应全面,可以实施速度的选择,游戏的是否继续,还有记录的保存。目录摘要:...................................................................................................2目录...............................................................................................3一、题目说明.....................................................................................4二、总体设计.......................................................................................42.1.系统开发平台.........................................................................4三、详细说明.......................................................................................43.1系统实施..................................................................................4四、遇到的问题和解决方法.............................................................11五、课程设计总结.............................................................................12六、参考文献.....................................................................................13附录(源程序代码).........................................................................13一、题目说明当今用简单的代码编写的小游戏越来越受人们的欢迎,所以对于小游戏的开发也成为了各大编程人士的最爱。我选择弹珠游戏这个课题,用代码控制游戏的等级,运用不同的函数来控制球的速度和方向,游戏简单而有趣。二、总体设计2.1.系统开发平台系统采用MicrosoftVisualStudio2005三、详细说明在此弹球游戏中,对于球与挡板的位置,借助于x与y坐标的调整来实现统计,从而确定球落在板上后球的下一次方向。同时借助于VisualStudio中的控件来控制小球的速度。此项游戏的计分运用函数count++,打中一个砖块即可得到一分,看你最多能打多少砖块。3.1系统实施{timer1.Interval=dlg.Speed;}}protectedoverridevoidDispose(booldisposing){if(disposing){if(components!=null){components.Dispose();}}base.Dispose(disposing);}privatestringm_strCurrentSoundFile=BallOut.wav;publicvoidPlayASound(){if(m_strCurrentSoundFile.Length0){}m_strCurrentSoundFile=;oThread.Abort();}publicvoidPlaySoundInThread(stringwavefile){m_strCurrentSoundFile=wavefile;oThread=newThread(newThreadStart(PlayASound));oThread.Start();}#regionWindowsFormDesignergeneratedcodeprivatevoidInitializeComponent(){this.components=newSystem.ComponentModel.Container();System.ComponentModel.ComponentResourceManagerresources=newSystem.ComponentModel.ComponentResourceManager(typeof(Form1));this.timer1=newSystem.Windows.Forms.Timer(this.components);this.SuspendLayout();this.timer1.Tick+=newSystem.EventHandler(this.timer1_Tick);this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientSize=newSystem.Drawing.Size(552,389);this.Icon=((System.Drawing.Icon)(resources.GetObject($this.Icon)));this.KeyPreview=true;this.Name=Form1;this.Text=打砖块;this.Paint+=newSystem.Windows.Forms.PaintEventHandler(this.Form1_Paint);this.KeyDown+=newSystem.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);this.Load+=newSystem.EventHandler(this.Form1_Load);this.ResumeLayout(false);}#endregion[STAThread]staticvoidMain(){Application.Run(newForm1());}privatevoidForm1_Paint(objectsender,System.Windows.Forms.PaintEventArgse){Graphicsg=e.Graphics;g.FillRectangle(Brushes.White,0,0,this.ClientRectangle.Width,this.ClientRectangle.Height);TheScore.Draw(g);ThePaddle.Draw(g);DrawRows(g);TheBall.Draw(g);}privatevoidDrawRows(Graphicsg){for(inti=0;ikNumberOfRows;i++){Rows[i].Draw(g);}}privatevoidCheckForCollision(){if(TheBall.Position.X0){TheBall.XStep*=-1;TheBall.Position.X+=TheBall.XStep;PlaySoundInThread(WallHit.wav);}if(TheBall.Position.Y0){TheBall.YStep*=-1;TheBall.Position.Y+=TheBall.YStep;PlaySoundInThread(WallHit.wav);}if(TheBall.Position.Xthis.ClientRectangle.Right-TheBall.Width){TheBall.XStep*=-1;TheBall.Position.X+=TheBall.XStep;PlaySoundInThread(WallHit.wav);}if(TheBall.Position.Ythis.ClientRectangle.Bottom-TheBall.YStep){IncrementGameBalls();Reset();PlaySoundInThread(BallOut.wav);}if(RowsCollide(TheBall.Position)){TheBall.YStep*=-1;PlaySoundInThread(BrickHit.wav);}inthp=HitsPaddle(TheBall.Position);if(hp-1){PlaySoundInThread(PaddleHit.wav);switch(hp){case1:TheBall.XStep=-7;TheBall.YStep=-3;break;case2:TheBall.XStep=-5;TheBall.YStep=-5;break;case3:TheBall.XStep=5;TheBall.YStep=-5;break;default:TheBall.XStep=7;TheBall.YStep=-3;break;}}}privateintHitsPaddle(Pointp){RectanglePaddleRect=ThePaddle.GetBounds();if(p.Y=this.ClientRectangle.Bottom-(PaddleRect.Height+TheBall.Height)){if((p.XPaddleRect.Left)&&(p.XPaddleRect.Right)){if((p.XPaddleRect.Left)&&(p.X=PaddleRect.Left+PaddleRect.Width/4))return1;elseif((p.XPaddleRect.Left+PaddleRect.Width/4)&&(p.X=PaddleRect.Left+PaddleRect.Width/2))return2;elseif((p.XPaddleRect.Left+PaddleRect.Width/2)&&(p.X=PaddleRect.Right-PaddleRect.Width/2))return3;elsereturn4;}}return-1;}privatevoidIncrementGameBalls(){NumBalls++;if(NumBalls=kNumberOfTries){timer1.Stop();stringmsg=游戏结束,您一
本文标题:C#课程设计实验报告
链接地址:https://www.777doc.com/doc-4694436 .html