C#课程设计实验报告

上传人:痛*** 文档编号:44211509 上传时间:2021-12-05 格式:DOC 页数:21 大小:1.23MB
收藏 版权申诉 举报 下载
C#课程设计实验报告_第1页
第1页 / 共21页
C#课程设计实验报告_第2页
第2页 / 共21页
C#课程设计实验报告_第3页
第3页 / 共21页
资源描述:

《C#课程设计实验报告》由会员分享,可在线阅读,更多相关《C#课程设计实验报告(21页珍藏版)》请在装配图网上搜索。

1、螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂

2、肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇

3、衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁

4、膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈

5、羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂

6、螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆

7、聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃蕿袆聿莃蚁虿羅莂莁袅袁莁蒃蚇腿蒀薆袃肅葿蚈蚆羁蒈莈袁袇肅薀蚄袃肄蚂羀膂肃莂螂肈肂蒄羈羄肁薇螁袀肀虿薃膈膀荿蝿肄腿蒁薂羀膈蚃螇羆膇莃蚀袂膆蒅袆膁膅薇蚈肇膄蚀袄羃芄荿蚇衿芃蒂袂螅节薄蚅膄芁莄袀肀芀蒆螃羆艿薈罿袂艿蚁螂膀芈莀薄肆莇蒃螀羂莆薅薃袈莅芅螈螄莄蒇薁膃莃 苏 州 市 职 业 大 学课程设计说明书 名称 计算机语言C#课程设计 弹珠 游戏 201

8、0年 6月 21日至 2010年 7月 4日共2周院 系计算机工程系 班 级 09软件测试 姓 名 罗苑(096307335) 系主任 李 金 祥 教研室主任 叶 良 指导教师 张 苏 王德鹏 摘要:这个小程序是关于弹珠的小游戏,游戏比较简单,以小球的速度来区分游戏的难易。该小程序是用左右键控制游戏的开始和挡板的方向,不让小球落到底端,当然,小球的速度越快,该游戏的难度也就越大。此程序利用C#程序编写,在visual studio 2005的环境下进行调试运行的。弹珠原理:碰撞基本都是参照“反射定理”的,就是出射角=入射角,但是做碰撞时需要角度。碰撞的运动和球的方向有关,球的方向有好几种。有8

9、向的,也有4向的。保证小球横向上在允许范围之内运动,当触发时就反方向运动,和当出了球拍的可击打范围就停止运行了。对于该程序开发,必须达到以下要求:1、熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS应用程序。2、掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮助的使用方法。3、掌握常用控件以及控件的常用属性的使用方法。4、界面要做到简洁易懂,具有人性化等特点。5、程序没有在使用过程中不存在任何的问题。6、可选功能应全面,可以实施速度的选择,游戏的是否继续,还有记录的保存。目 录摘要:2目 录3一、题目说明4二、总体设计42.1系统开发平

10、台4三、详细说明4.1系统实施4四、遇到的问题和解决方法20五、课程设计总结22六、参考文献22附录(源程序代码)22一、 题目说明当今用简单的代码编写的小游戏越来越受人们的欢迎,所以对于小游戏的开发也成为了各大编程人士的最爱。我选择弹珠游戏这个课题,用代码控制游戏的等级,运用不同的函数来控制球的速度和方向,游戏简单而有趣。二、总体设计2.1系统开发平台系统采用Microsoft Visual Studio 2005三、详细说明 在此弹球游戏中,对于球与挡板的位置,借助于x与y坐标的调整来实现统计,从而确定球落在板上后球的下一次方向。同时借助于Visual Studio中的控件来控制小球的速度

11、。此项游戏的计分运用函数count+,打中一个砖块即可得到一分,看你最多能打多少砖块。.1系统实施 timer1.Interval = dlg.Speed; protected override void Dispose( bool disposing )if( disposing )if (components != null) components.Dispose();base.Dispose( disposing ); private string m_strCurrentSoundFile = BallOut.wav; public void PlayASound() if (m_st

12、rCurrentSoundFile.Length 0) m_strCurrentSoundFile = ; oThread.Abort(); public void PlaySoundInThread(string wavefile) m_strCurrentSoundFile = wavefile; oThread = new Thread(new ThreadStart(PlayASound); oThread.Start(); #region Windows Form Designer generated codeprivate void InitializeComponent() po

13、nents = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1); this.timer1 = new System.Windows.Forms.Timer(ponents); this.SuspendLayout(); this.timer1.Tick += new System.EventHandler(this.ti

14、mer1_Tick); this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(552, 389); this.Icon = (System.Drawing.Icon)(resources.GetObject($this.Icon); this.KeyPreview = true; this.Name = Form1; this.Text = 打砖块; this.Paint += new System.Windows.Forms.PaintEventHa

15、ndler(this.Form1_Paint); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); #endregionSTAThreadstatic void Main() Application.Run(new Form1(); private void Form1_Paint(object sender, System.Wi

16、ndows.Forms.PaintEventArgs e) Graphics g = 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); private void DrawRows(Graphics g) for (int i = 0; i kNumberOfRows; i+) Rowsi.Draw(g

17、); private void CheckForCollision() if (TheBall.Position.X 0) TheBall.XStep *= -1; TheBall.Position.X += TheBall.XStep; PlaySoundInThread(WallHit.wav); if (TheBall.Position.Y this.ClientRectangle.Right - TheBall.Width ) TheBall.XStep *= -1; TheBall.Position.X += TheBall.XStep; PlaySoundInThread(Wall

18、Hit.wav); if (TheBall.Position.Y this.ClientRectangle.Bottom - TheBall.YStep) IncrementGameBalls(); Reset(); PlaySoundInThread(BallOut.wav); if (RowsCollide(TheBall.Position) TheBall.YStep *= -1; PlaySoundInThread(BrickHit.wav); int hp = HitsPaddle(TheBall.Position); if (hp -1) PlaySoundInThread(Pad

19、dleHit.wav); switch (hp) case 1: TheBall.XStep = -7; TheBall.YStep = -3; break; case 2: TheBall.XStep = -5; TheBall.YStep = -5; break; case 3: TheBall.XStep = 5; TheBall.YStep = -5; break; default: TheBall.XStep = 7; TheBall.YStep = -3; break; private int HitsPaddle(Point p) Rectangle PaddleRect = T

20、hePaddle.GetBounds(); if (p.Y = this.ClientRectangle.Bottom - (PaddleRect.Height + TheBall.Height) ) if (p.X PaddleRect.Left) & (p.X PaddleRect.Left) & (p.X PaddleRect.Left + PaddleRect.Width/4) & (p.X PaddleRect.Left + PaddleRect.Width/2) & (p.X = kNumberOfTries) timer1.Stop(); string msg = 游戏结束,您一

21、共打了 + NumTotalBricks; if (NumTotalBricks = 1) msg += brick.; else msg += bricks. + 继续努力哦!; MessageBox.Show(msg); Application.Exit(); private void Reset() TheBall.XStep = 5; TheBall.YStep = 5; TheBall.Position.Y = this.ClientRectangle.Bottom - 190; TheBall.Position.X = 5; timer1.Stop(); TheBall.Updat

22、eBounds(); Invalidate(TheBall.GetBounds(); private int SumBricks () int sum = 0; for (int i = 0; i kNumberOfRows; i+) sum += Rowsi.BrickOut; return sum; private bool RowsCollide (Point p) for (int i = 0; i kNumberOfRows; i+) if (Rowsi.Collides(TheBall.GetBounds() Rectangle rRow = Rowsi.GetBounds();

23、Invalidate(rRow); return true; return false; private void timer1_Tick(object sender, System.EventArgs e) TheBall.UpdateBounds(); Invalidate(TheBall.GetBounds(); TheBall.Move(); TheBall.UpdateBounds(); Invalidate(TheBall.GetBounds(); CheckForCollision(); NumTotalBricks = SumBricks(); TheScore.Count =

24、 NumTotalBricks; Invalidate(TheScore.GetFrame(); if (NumTotalBricks = kNumberOfRows*Row.kNumberOfBricks) timer1.Stop(); Form4 Form1 = new Form4(); Form1.ShowDialog(); Application.Exit(); private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) string result = e.KeyData.ToString

25、(); Invalidate(ThePaddle.GetBounds(); switch (result) case Left: ThePaddle.MoveLeft(); Invalidate(ThePaddle.GetBounds(); if (timer1.Enabled = false) timer1.Start(); break; case Right: ThePaddle.MoveRight(ClientRectangle.Right); Invalidate(ThePaddle.GetBounds(); if (timer1.Enabled = false) timer1.Sta

26、rt(); break; default: break; private void Form1_Load(object sender, EventArgs e) 四、遇到的问题和解决方法1.错误:图片的路径错误,在做此程序的时候对游戏中出现的挡板进行选择的时候,选择了在桌面上的图片,后来将此程序拷到自己的电脑上的时候运行代码出现了路径错误。图一:路径错误解决方案:将图片重新拷到游戏文件夹中,并且将路径改到相应的游戏文件夹中,在此拷贝的时候就不会造成图片的损坏和丢失。2.错误:游戏结束时因为缺少结束代码,使得游戏虽然结束,但是窗口无法结束,造成窗口无限堆叠,使程序变成死循环。解决方案:在窗口fo

27、rm1中加入代码timer1.Stop();用来结束前一个窗口。五、课程设计总结经过两周的课程设计,使我对C#编程有了更深一层的了解。在这两周的课程设计中我不断地改错,不断的调试,我的努力终于有了成果。最让我受益匪浅的是整个设计的过程,这个过程也是我不断学习的一个过程,我们在运用旧知识的同时也学到了不少新知识。本次课程设计我发现自己对知识掌握还存在着很多的不足之处,同时我也明白了自己还有哪些地方需要改进,自己要在哪些地方进行自我的提升。尤为重要的是,这次课程设计使我们懂得了理论与实际相结合是很重要的。在这次课程设计中,我虽然遇到一些困难,但我仍能坚持克服。通过这个小小的课题,我也学到了一些课外

28、的东西,多谢学校给了我一次体验的机会,谢谢老师在我困难的时候给我的指导,也谢谢在这段时间给过我们帮助的同学。在此期间我也失落过,也曾一度热情高涨。从开始时满腹盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无穷。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,编程已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。在设计过程中,我们遇到许多无法解决的问题,都一一通过网络解决了,同时还问过许多学得比较扎实的同学,是他们让我们有了更多的了解,更好的让我们在这个问题

29、上着手设计. 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的细心指导下,终于得到解决。同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!六、参考文献1郑阿奇、梁敬东、钱晓军等,c#实用教程,电子工业出版社,2009年。2钱雪忠、黄学光等,数据库原理及应用,北京邮电大学出版社,2005年。3王进强. Visual Basic.Net基础教程M, 北京:清华大学出版社,2004年。附录(源程序代码)using System;using System.Drawing;using System.Collections

30、;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Runtime.InteropServices;using System.Threading;namespace BrickOutpublic class Form1 : System.Windows.Forms.Form private System.ComponentModel.IContainer components; private const int kNumberOfRows = 8; private con

31、st int kNumberOfTries = 3; private int NumTotalBricks = 0; private int NumBalls = 0; private Ball TheBall = new Ball(); private Paddle ThePaddle = new Paddle(); private System.Windows.Forms.Timer timer1; private Row Rows = new RowkNumberOfRows; private Score TheScore = null; private Thread oThread =

32、 null; DllImport(winmm.dll) public static extern long PlaySound(String lpszName, long hModule, long dwFlags);public Form1()InitializeComponent(); for (int i = 0; i kNumberOfRows; i+) Rowsi = new Row(i); ThePaddle.Position.X = 5; ThePaddle.Position.Y = this.ClientRectangle.Bottom - ThePaddle.Height;

33、TheBall.Position.Y = this.ClientRectangle.Bottom - 200; this.SetBounds(this.Left, this.Top, Rows0.GetBounds().Width, this.Height); TheScore = new Score(ClientRectangle.Right - 50, ClientRectangle.Bottom - 180); / choose Level SpeedDialog dlg = new SpeedDialog(); if (dlg.ShowDialog() = DialogResult.O

34、K) timer1.Interval = dlg.Speed; / TODO: Add any constructor code after InitializeComponent call/ / Clean up any resources being used./ protected override void Dispose( bool disposing )if( disposing )if (components != null) components.Dispose();base.Dispose( disposing ); private string m_strCurrentSo

35、undFile = BallOut.wav; public void PlayASound() if (m_strCurrentSoundFile.Length 0) PlaySound(Application.StartupPath + + m_strCurrentSoundFile, 0, 0); m_strCurrentSoundFile = ; oThread.Abort(); public void PlaySoundInThread(string wavefile) m_strCurrentSoundFile = wavefile; oThread = new Thread(new

36、 ThreadStart(PlayASound); oThread.Start(); #region Windows Form Designer generated code/ / Required method for Designer support - do not modify/ the contents of this method with the code editor./ private void InitializeComponent() ponents = new System.ComponentModel.Container(); this.timer1 = new Sy

37、stem.Windows.Forms.Timer(ponents); this.SuspendLayout(); / / timer1 / this.timer1.Tick += new System.EventHandler(this.timer1_Tick); / / Form1 / this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(552, 389); this.KeyPreview = true; this.Name = Form1; th

38、is.Text = Brick Out; this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); #endregion/ / The main entry point for the a

39、pplication./ STAThreadstatic void Main() Application.Run(new Form1(); private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; g.FillRectangle(Brushes.White, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height); TheScore.Draw(g); ThePaddle.Dra

40、w(g); DrawRows(g); TheBall.Draw(g); private void DrawRows(Graphics g) for (int i = 0; i kNumberOfRows; i+) Rowsi.Draw(g); private void CheckForCollision() if (TheBall.Position.X 0) / hit the left side, switch polarity TheBall.XStep *= -1; TheBall.Position.X += TheBall.XStep; PlaySoundInThread(WallHi

41、t.wav); if (TheBall.Position.Y this.ClientRectangle.Right - TheBall.Width ) / hit the left side, switch polarity TheBall.XStep *= -1; TheBall.Position.X += TheBall.XStep; PlaySoundInThread(WallHit.wav); if (TheBall.Position.Y this.ClientRectangle.Bottom - TheBall.YStep) / lost the ball! IncrementGam

42、eBalls(); Reset(); PlaySoundInThread(BallOut.wav); if (RowsCollide(TheBall.Position) TheBall.YStep *= -1; PlaySoundInThread(BrickHit.wav); int hp = HitsPaddle(TheBall.Position); if (hp -1)/ lost the ball! PlaySoundInThread(PaddleHit.wav); switch (hp) case 1: TheBall.XStep = -7; TheBall.YStep = -3; break; case 2: TheBall.XStep = -5; TheBall.YStep = -5; break; case 3: TheBall.XStep = 5; TheBall.YStep = -5; break; default: TheBall.XStep = 7; TheBall.YStep = -3; break; private int HitsPaddle(Point p) Rectangle PaddleRect = ThePaddle.GetBounds(); if (p.Y = this

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!