欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    重庆海天软件学院的WINFORM实训项目疯狂的小鸟.docx

    • 资源ID:1337692       资源大小:281.95KB        全文页数:23页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    重庆海天软件学院的WINFORM实训项目疯狂的小鸟.docx

    1、重庆海天软件学院的WINFORM实训项目疯狂的小鸟重庆海天软件学院的WINFORM实训项目-疯狂的小鸟 重庆海天软件学院第二学期微软4班 WINFORM实训项目截图:最近学生们学习了2个月的C#和WINFORM,没有学习数据库。故设计了这样的一个小游戏,基本覆盖了C#语言常用的语法,已经面向对象的基本思想。本实训课程分为8个阶段来实践,效果非常好。故录制成视频分为8个阶段,每个阶段15分钟左右。此游戏开发为在课堂上即兴编写,即兴录制。没有事先准备,故有些地方不是很完美,请见谅!不过,大家可以学习丁老师在完成软件开发中的需求的时候,思考的过程和完整的思路,以及遇到错误如果去调试和解决的方法,这个

    2、大家会有收获。下载地址:主要实现思路为:用GDI+在窗体上绘制图形,在主窗体加入了一个Time控件来做游戏循环,不断的绘图。使用的DoubleBuffer技术,屏幕不闪烁。效果还是可以的,但是在面向对象设计这块设计得有点罗嗦了,没有设计好,需要进一步完善。代码展示:csharpview plaincopyprint?1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.ComponentModel;4. usingSystem.Data;5. usingSystem.Drawing;6. usingSystem.Lin

    3、q;7. usingSystem.Text;8. usingSystem.Windows.Forms;9. 10. namespaceCrazyBird_GDI11. 12. /13. /重庆海天软件工程学院微软7班WINFORM实训项目-疯狂的小鸟14. /微软讲师:丁浩Email:dinghao80QQ:37112555 15. /项目需求:射击游戏16. /实现步骤:1.采用GDI+技术,双缓冲实训精灵的绘制17. /2.绘制背景 18. /3.绘制小鸟19. /4.绘制小猪20. /5.绘制子弹21. /22. publicpartialclassForm1:Form23. 24. p

    4、ublicForm1()25. 26. InitializeComponent();27. 28. Bitmapbitmap;29. Pigpig;30. /第七步4 31. Listbullets=newList();32. BirdOPbirdop;33. /第十步6:当子弹碰到小鸟的开关34. boolisTouched=false;35. privatevoidtimer1_Tick(objectsender,EventArgse)36. 37. /在time控件中循环绘制,约33帧的FPS 38. /第一步:导入所需资源39. /第二步:搭建双缓冲模型,将资源不断的绘制在虚拟画布上面

    5、,这个技术可以消除屏幕闪烁40. /最后将虚拟画布bitmap的内容复制在窗体绘图区41. 42. using(Graphicsdc=Graphics.FromImage(bitmap)43. 44. /第三步:导入背景图片资源45. BackGroundbg=newBackGround(this.Width,this.Height);46. bg.Draw(dc);47. /固定窗体不能拖动48. 49. /*-/第一阶段完成。思考:BackGround设计成了一个类,为什么?好处在哪儿?- 50. /第四步:绘制小鸟需求一共64只小鸟,成8*8排列设计小鸟类51. 52. /第九步6:绘制

    6、小鸟53. birdop.Draw(dc);/之前要装载小鸟54. 55. 56. 57. /*-/第二阶段完成。- 58. /第五步:绘制小猪59. 60. pig.Width=70;61. pig.Height=60;62. 63. pig.Draw(this,dc);64. 65. /*-/第三阶段完成- 66. /第六步:移动小猪67. /触发键盘事件:注意思考,事件源是什么?-窗体68. 69. /第七步6:绘制子弹70. foreach(Bulletbulletinbullets)71. 72. /第八步2:让speed值增加,现在找个地方赋予speed初始值73. /bullet

    7、.Speed+=10;/没有起到作用 74. bullet.X-=bullet.Speed;75. bullet.Draw(dc);76. 77. /*-第六阶段完成(让子弹飞)-下一阶段:子弹碰撞小鸟,子弹和小鸟移除集合- 78. /思考:子弹碰撞小鸟,只需要在time控件中从小鸟集合中绘制,子弹从子弹集合里面绘制。碰撞后,从各种集合移除小鸟或子弹即可。79. 80. /第十步1:判断子弹和小鸟相撞,实际上就是2个矩形相交。追加子弹的方法。81. 82. /第十步5:83. for(inti=0;ibullets.Count;i+)/遍历子弹,注意这个时候不能用foreach,为什么?84.

    8、 85. for(intj=0;jBirdOP.birds.Count;j+)/遍历小鸟86. 87. if(bulletsi.Intersect(BirdOP.birdsj)/每一个子弹去判断所有的小鸟碰撞88. 89. BirdOP.birds.RemoveAt(j);/移除小鸟测试成功但是同时要移除子弹90. isTouched=true;91. 92. 93. /移除子弹94. if(isTouched)95. 96. bullets.RemoveAt(i);97. isTouched=false;98. 99. /测试成功100. /*-第八阶段完成到这儿就结束了思考加入声音,由于机

    9、房没有音响,不好测试。- 101. /我们发现在构造BirdBackGroundPig等到类的时候,发现都有共同的属性,这个时候可以用继承来实现,需要进一步改进,还要有更好的扩展性,大家在学习面向对象的时候102. /要积极思考面向对象的三大特性,封装继承多态接口抽象类结构枚举等等C#的特性103. /实训制作人:丁浩老师QQ:37112555这个视频会放在中下载,欢迎大家学习,谢谢!重庆海天软件工程学院 104. 105. 106. 107. 108. /第二步:复制绘制在窗体绘图区109. using(Graphicsg=this.CreateGraphics()110. 111. g.D

    10、rawImage(bitmap,0,0);112. 113. 114. 115. privatevoidForm1_Load(objectsender,EventArgse)116. 117. /第二步:创建和窗体一样大小的画布118. bitmap=newBitmap(this.Width,this.Height);119. /初始化小猪120. pig=newPig();121. pig.Step=10;122. /第九步5:初始化小鸟123. /bird=newBird(); 124. /bird.LoadBird(); 125. /做到这个地方,我们发现在bird设计中出现了问题。需要

    11、重新设计,没有思考全面。126. birdop=newBirdOP();127. /第九步5:初始化小鸟128. birdop.LoadBirds();129. 130. 131. /第六步触发键盘事件移动小猪132. privatevoidForm1_KeyUp(objectsender,KeyEventArgse)133. 134. switch(e.KeyCode)135. 136. caseKeys.Up:137. pig.Move(Direct.UP);138. break;139. caseKeys.Down:140. pig.Move(Direct.DOWN);141. brea

    12、k;142. caseKeys.Space:143. /第七步5:装载子弹在集合中144. bullets.Add(pig.FireABullet();145. break;146. 147. 148. 149. /*-第四阶段完成- 150. 151. 背景类:csharpview plaincopyprint?1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Text;5. usingSystem.Drawing;6. 7. namespaceCrazyBird_GDI8

    13、. 9. classBackGround10. 11. publicBackGround(intwidth,intheight)12. 13. Width=width;14. Height=height;15. 16. intwidth;17. 18. publicintWidth19. 20. getreturnwidth;21. setwidth=value;22. 23. intheight;24. 25. publicintHeight26. 27. getreturnheight;28. setheight=value;29. 30. 31. /绘制一个背景图片32. publicv

    14、oidDraw(Graphicsg)33. 34. Rectanglerect=newRectangle(0,0,Width,Height);35. g.DrawImage(MyRes.background,rect);36. 37. 38. 小鸟类:csharpview plaincopyprint?1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Text;5. usingSystem.Drawing;6. 7. namespaceCrazyBird_GDI8. 9. p

    15、ublicclassBird10. 11. intx;/x坐标12. 13. publicintX14. 15. getreturnx;16. setx=value;17. 18. inty;/y坐标19. 20. publicintY21. 22. getreturny;23. sety=value;24. 25. intwidth;26. 27. publicintWidth28. 29. getreturnwidth;30. setwidth=value;31. 32. intheight;33. 34. publicintHeight35. 36. getreturnheight;37

    16、. setheight=value;38. 39. 40. /小鸟的矩形绘图区第十步3 41. privateRectanglerectBird;42. 43. publicRectangleRectBird44. 45. getreturnrectBird;46. setrectBird=value;47. 48. 49. 小鸟操作类:csharpview plaincopyprint?1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Text;5. usingSystem

    17、.Drawing;6. 7. namespaceCrazyBird_GDI8. 9. /10. /第九步6:重新设计小鸟类11. /增加了一个小鸟操作类12. /13. publicclassBirdOP14. 15. /第九步2:定义一个集合16. publicstaticListbirds=newList();/为什么是静态的呢?如17. 18. 果不是静态的,每次new一个小鸟,都会有属于自己的集合,显然不对。所以用静态的19. 20. ,所有的小鸟对象都对应这一个集合21. 22. /绘制8*8小鸟阵23. 24. /第九步3:装入64只小鸟到集合中25. publicvoidLoadBirds()26


    注意事项

    本文(重庆海天软件学院的WINFORM实训项目疯狂的小鸟.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开