版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
综合问题的解决第二课时第4单元4.4学习目标★学会分析任务,描述需求分析,知道需要解决的关键问题。★体验软件开发的基本流程。活动1
界面设计1.创建程序窗口,设置背景。调用pygame.display.set_mode()函数,将返回一个窗口。xy0如果想在窗口上绘制或是放置对象,需要指定这个对象在窗口的具体位置,即坐标。pygame中的坐标系原点在左上角,水平方向为x轴,垂直方向为y轴。在pygame中,使用图像的最简单方法是调用image函数。通过pygame.image.load(filename)来载入图片,filename表示图像文件的路径和名称。图像文件必须和程序在同一文件夹下才可以使用相对路径的引用方式。以下是一个样例程序。importpygame
#导入模块pygame.init()
#pygame模块初始化#创建一个窗口screen,大小为800*600screen=pygame.display.set_mode([800,600])pygame.display.set_caption('实例')
#设置屏幕标题screen.fill((144,238,144)) #窗口填充淡绿色img=pygame.image.load('ball.png') #载入ball.png图像到内存#将图像绘制在screen中,图像的左上角在[200,200]screen.blit(img,[200,200])pygame.display.update() #窗口刷新运行结果#创建一个窗口screen,大小为800*600screen=____________________————————————— ————————————— #设置窗口标题为“接福”back=______________('bj.jpg’)#加载背景图screen.blit(____________,[0,0]) #将背景图画在窗口[0,0]位置_________________________ #刷新画面Pygame设置以图片为背景的窗口importpygamepygame.init()screen=pygame.display.set_mode([800,600])image=pygame.image.load(“背景.jpg”)screen.blit(image,[0,0])pygame.display.update()2.绘制福字为了便于游戏循环中反复调用,可以定义成一个函数showfu,在绘制福字时,需要设置图像显示的位置,因此showfu中有两个参数,分别表示图像位置的横坐标和纵坐标。defshowfu(x,y):
#定义函数,在坐标(x,y)上显示图像 gift=pygame.image.load('fu.png’) #加载福字图像 screen.blit(gift,[x,y]) #显示福字在实际使用中,只要提供一对坐标值,就可以调用showfu了。3.显示得分。显示游戏得分的方法为:先定义显示字体,然后将score显示出来。为了增加代码的复用性,以便游戏循环中状态更新时反复调用,可以定义成一个函数showscore。defshowscore(score):
#定义函数,显示分数 textfont=pygame.font.SysFont('Arial',30)#字体为Arial,大小30
#生成平滑的红色字符串 t=textfont.render('score:'+str(score),True,(255,0,0)) screen.blit(t,[50,50])#在窗口显示仔细阅读代码并理解各语句的含义。在pygame的游戏循环中,我们通过调用以下语句来完成游戏状态的更新和屏幕的重绘,请在横线上注明各语句的功能。screen.blit(back,[0,0])showscore(score)x=random.randint(50,700)y=random.randint(50,500)showfu(x,y)pygame.display.update()pygame.time.delay(800)#_________________#_________________#_________________#_________________#_________________#_________________#设置两次显示福字之间的延时活动2
人机交互及程序拼装在本项目中,人机交互主要体现在鼠标单击上。需要获取按键的情况,就要在监听事件中增加相应的判断语句。打开教科书配套资源中的“接福.py",找到相应的代码,仔细阅读并理解各语句的含义,在下面横线上用自然语言描述其对应的功能。ifevent.type==pygame.MOUSEBUTTONDOWN:
#__________________#获取鼠标按下的坐标并记录在mousex,mousey中mousex,mousey=pygame.mouse.get_pos()#判断鼠标是否击中福字,本例中福字宽为60,高为70ifmousexinrange(x,x+60)andmouseyinrange(y,y+70): score=score+5 #___________________最后,我们可以参照流程图组装各程序块并调试运行,也可以在Python中打开教科书配套资源中的“接福py"并运行。
虽然游戏项目已开发完成,但这款游戏还有不尽如人意的地方,如游戏难度无法调整等,请在下面的框中填写你对游戏的改进意见。pygam键盘事件拓展练习利用键盘实现人机交互在游戏中很常见。教材第114页图4.4.5所示,这个实例是通过键盘的左、右方向键来控制小船的左右移动。巩固提升1.(单选)以下关于算法中输入、输出的描述正确的是(
)A.算法可以没有输入,表示该算法不涉及任何数据信息B.算法可以没有输出,表示该算法运行结果为尤解“C.算法必须要有输入,否则算法无法进行D.算法至少要有一个输出巩固提升2.(单选)采用盲目搜索的方法,在搜索的过程中,对所得的结果逐一筛选,排除不符合要求的结果,保留那些符合要求的结果,这种方法叫作()A.解析法 B.递推法C.枚举法 D.选择法巩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手车买卖协议合同
- 《高中新讲纲》课件
- 模具委托加工简单的合同范本
- 合资经营合同模板
- 外贸订单合同范本pdf完整版
- 《丝网印刷工艺技术》课件
- 《与法同行》课件
- 铝合金门窗环保要求合同2024
- 酒店保密协议书 保密安全协议书
- 二零二四年度物业管理服务合同(商场)2篇
- 汉译英句子的翻译实用教案
- 光谱和恒星的性质
- 钻石及钻石的仿制品
- 秋冬季呼吸道传染病预防知识讲座.ppt
- 高中数学校本课程——数学文化
- 通信作业冬季施工规范
- 《金融工程学》题库及答案
- 递进式流程通用模板PPT
- 关于高中生暑假学习计划表
- 魔方教学(课堂PPT)
- 化学工程与工艺专业课程设计-8000吨年氧化羰化制碳酸二甲酯合成工艺设计(含全套CAD图纸)
评论
0/150
提交评论