版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东碧桂园职业学院教案项目(章节)名称实训六pygame库实训周次18授课顺序18本次学时2累计学时36教学目标知识目标:了解pygame库的基本用法目标:能够熟练进行pygame库的编程目标:1.形成对pygame库编程的初步认识2.形成探索计算机知识的主动学习意识教学重点pygame库的基本用法教学难点对pygame库的具体编程教学方式项目教学R案例教学□情境教学□模块教学□其他□教学方法启发式☑探究式☑讨论式☑参与式☑讲授☑教学资源视频☑教具☑网络资源☑多媒体☑其他□信息技术运用职教云课堂、短视频教学过程设计教学环节主要教学内容及师生活动设计时间分配复习及新课导入告知学生本节课项目的整体教学设计pygame库。5分钟新课教学引入实训任务:小猴子接香蕉小猴子接香蕉游戏是一个根据游戏得分判定玩家反应力的游戏,该游戏的设定非常简单,游戏主体为香蕉和猴子:香蕉从屏幕顶端随机位置出现,垂直落下,玩家用鼠标左右键控制猴子左右移动,接住下落的香蕉,猴子每接到一个香蕉加10分。本任务要求编写程序,实现一个小猴子接香蕉游戏。引入知识点:一、什么是pygame?pygame是为开发2D游戏而设计的Python跨平台模块,开发人员利用pygame模块中定义的接口,可以方便快捷地实现诸如图形用户界面创建、图形和图像的绘制、用户键盘和鼠标操作的监听以及播放音频等游戏中常用的功能。(1)教师根据课件,介绍pygame库的初始化和退出,并使用代码进行演示。pygame提供了初始化和退出的函数:init()和quit(),其中init()函数可以一次性初始化pygame的所有模块;quit()函数可以卸载所有之前被初始化的pygame模块。(2)教师根据课件,介绍创建游戏窗口的内容,并使用代码进行演示。pygame通过display子模块创建图形界面窗口,该子模块中提供了与窗口相关的函数:set_mode()、set_caption()和update(),其中set_mode()函数用于为游戏创建图形窗口;set_caption()函数用于设置窗口标题;update()函数用于刷新窗口,以显示修改后的新窗口。(3)教师根据课件,介绍游戏循环的内容,并使用代码进行演示。(4)教师根据课件提出的需求,引出游戏时钟这一概念。一般情况下,电脑上一秒绘制60帧(Frame)便能够达到非常连续、高品质的动画效果,换言之,窗口中刷新图像的频率只要不低于每秒60帧,就能够达到我们对动画效果的预期。但循环体的执行频率非常高,远远超出每秒60帧。过高的帧率意味着超高的负荷,为了降低循环执行的频率,需要在程序中设置游戏时钟。(5)教师根据课件,介绍设置游戏时钟的内容,并使用代码进行演示。pygame的time模块专门提供了一个Clock类,通过该类的tick()方法可以方便地设置游戏循环的执行频率。(6)教师根据课件,介绍图形和文本绘制的内容,并使用代码进行演示。pygame中的图形窗口是一个Surface对象,在窗口中进行绘制实质上就是在Surface对象之上进行绘制。在Surface对象上绘制图形分为加载图片和绘制图片两个步骤;文本绘制实际上也是图片的叠加,只是在绘制之前需要先结合字体,将文本内容制作成图片。(7)教师根据课件,介绍pygame图形窗口的坐标体系。坐标原点在游戏窗口的左上角;x轴与水平方向平行,以向右为正;y轴与垂直方向平行,以向下为正。(8)教师根据课件,介绍元素位置的描述与控制,并使用代码进行演示。Rect类用于描述、控制可见对象(文本、图片等)在pygame窗口中的位置。Surface对象在窗口中的位置通过blit()方法的参数dest确定,dest可接收坐标元组(x,y),亦可接收矩形对象。(9)归纳总结,布置作业回顾上课前的学习目标,对本节课知识点进行总结。教师带领学生总结本节课需要了解的第三方库:wordcloud和pygam(e部分)。布置随堂练习,检查学生掌握情况。40分钟(10)实现动态效果的原理是文本或图片的更换、位置的改变以及屏幕的刷新。基础的动态效果包括三种:多次修改Surface对象绘制的位置并连续绘制刷新,实现移动效果;在同一位置绘制不同的Surface对象,实现动画效果;连续绘制不同Surface对象的同时,修改绘制的位置,实现移动的动画。什么是事件?程序开发中将玩家会对游戏进行的操作称为事件(Event),根据输入媒介的不同,游戏中的事件分为键盘事件、鼠标事件和手柄事件等等。教师根据课件,介绍事件与事件处理的内容,并使用代码进行演示。教师根据课件,介绍10.6.1的实例,并使用代码进行演示。教师根据课件,介绍10.6.2的实例,并使用代码进行演示。1.回顾上课前的学习目标,对本节课知识点进行总结。教师带领学生总结本节课需要掌握的pygame库。2.布置随堂练习,检查学生掌握情况。根据所学内容,完成本次实训的代码编写:importrandomfromsysimportexitimportpygamefrompygame.localsimport*pygame.init()#屏幕宽度screen_width=450#屏幕高度screen_height=560#绘制窗口screen=pygame.display.set_mode((screen_width,screen_height),0,32)#游戏标题pygame.display.set_caption("猴子接桃")#分数字体,字号run_time_font=pygame.font.SysFont('simhei',48)defgame_start():#加载图片monkey=pygame.image.load('monkey.png')banana=pygame.image.load('banana.png')game_background=pygame.image.load('background.jpg')#香蕉下落速度speed=1#分数score=0#猴子位置信息monkey_x=200monkey_y=470#设置移动速度monkey_x_speed=1monkey_move={K_LEFT:0,K_RIGHT:0}#香蕉坐标列表pos_list=[]#绘制初始化香蕉foriinrange(7):x=random.randint(0,390)y=random.randint(0,560)pos_list.append([x,y])#帧率控制Clock对象clock=pygame.time.Clock()whileTrue:screen.blit(game_background,(0,0))#接收信息处理foreventinpygame.event.get():ifevent.type==QUIT:exit()ifevent.type==KEYDOWN:ifevent.keyinmonkey_move:monkey_move[event.key]=1elifevent.type==KEYUP:ifevent.keyinmonkey_move:monkey_move[event.key]=0second_time_passed=clock.tick(60)#定位猴子移动后坐标monkey_x-=monkey_move[K_LEFT]*monkey_x_speed*second_time_passedmonkey_x+=monkey_move[K_RIGHT]*monkey_x_speed*second_time_passed#判断猴子边界条件ifmonkey_x>450-monkey.get_width():monkey_x=450-monkey.get_width()elifmonkey_x<0:monkey_x=0screen.blit(monkey,(monkey_x,monkey_y))foryinpos_list:#坐标循环,从y轴垂直下落y[1]=y[1]+speedscreen.blit(banana,(y[0],y[1]))#绘制香蕉ify[1]>=560:y[1]=-banana.get_height()#碰撞检测ifmonkey_x<y[0]<monkey_x+monkey.get_width()andmonkey_y-banana.get_height()<y[1]<monkey_y:score+=10pos_list.remove([y[0],y[1]])x,y=random.randint(0,390),random.randint(0,560)iflen(pos_list)<=6:pos_list.append([x,-y])screen_score=run_time_font.render('分数:'+str(score),True,(255,0,0))screen.blit(screen_score,(0,0))#刷新显示pygame.display.update()if__name__=='__main__':whileTrue:game_start()45分钟考核评价出勤+提问占10%,技能成绩(项目完成情况、过程表现、实训报告)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水生高等植物栽培工班组安全强化考核试卷含答案
- 眼镜架制作工班组协作强化考核试卷含答案
- 野生动物产品采集加工利用工岗前岗位环保责任制考核试卷含答案
- 油母页岩提炼工班组考核评优考核试卷含答案
- 感光专用药液配制工岗前道德考核试卷含答案
- 渔业观察员岗位责任制强化考核试卷含答案
- 消防设施监控操作员核心实操评优考核试卷含答案
- 糖汁蒸发工道德评优考核试卷含答案
- 纺织品裁剪工工作合规考核试卷含答案
- 色彩搭配师岗中实践水平考核试卷含答案
- 京东资产处置项目运营方案
- 凝汽器酸洗方案
- 2026年新版事故应急处置卡模板(新版27类事故分类依据YJT 32-2025要求编制)
- 2021央企党群宣传岗面试上岸必背题目及答案大全
- 教育强国建设三年行动计划(2025-2027年)
- 雨课堂学堂在线学堂云《企业伦理(大连海事)》单元测试考核答案
- 2025年四川省甘孜检察院书记员考试题(附答案)
- 骨科卧床并发症预防护理
- 律所反洗钱内部控制制度
- XX区实验初级中学2026年春季学期初三备考动员会校长鼓劲讲话
- 2025江苏省盐业集团有限责任公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论