资源简介 教学单元 计算与问题解决 教学主题 综合问题的解决教学目标知识与技能 通过pygame库游戏的任务拆解,能够插入文本、图片。 能够根据需求简单代码,并自主dbug程序。 过程与方法 通过实现游戏的简单游戏,让学生能够感受程序的高阶运行过程,库运行原理,提升问题和代码的调试能力。 情感态度价值观 能够通过游戏设计,对程序运行和Python的探索兴趣,为后续职业选择打下兴趣基础。核心素养培养通过对代码的综合运用,提升程序调试能力,能够用计算思维处理和分析日常生活中的事务。教学内容Pygame库;问题解决要素分步实现;插入文字、图片、鼠标事件实现。教学媒体电子白板、PPT教学过程教学环节 教师活动 学生活动 设计意图游戏导入 播放【简单的点击小球】游戏,该游戏是由教师制作的简单游戏,通过直面运行程序让学生观看并自主运行程序结果。 首先观看视频,并根据教师的代码素材运行Python文件,让学生能够自主运行,并自主玩乐游戏。 游戏的实现属于综合问题解决,需要先让学生看到结果,激发学生探究的兴趣。活动分析 【点击小球游戏】 【游戏要素】 界面 分数 小球 鼠标点击动作 根据教师分析,一起分解小球实现的具体内容。 综合与分析是一项计算思维的必备内容。学生面对抽象内容时,必然要分析、拆解如何通过小部分、小步骤内容来实现。 学生根据教师引导分解综合问题,提升综合分析问题的能力。活动探究 活动一、【窗口界面】import pygame pygame.init() # 初始化Pygame size = width, height = 320, 240 # 设置窗口 screen = pygame.display.set_mode(size) # 显示窗口 # 执行死循环,确保窗口一直显示 while True: # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() pygame.quit() 【学生模仿代码,实现结果】 知识讲解 【Pygame库】 #屏幕尺寸 pygame.display.set_mode(200,300)#屏幕尺寸为200*300 #窗口标题 pygame.display.set_caption(‘贪吃蛇游戏’) #刷新 pygame.display.flip()#第一次刷新 pygame.display.update()#第二次刷新 #屏幕颜色 pygame.display.fill((255,0,0)) 播放【教师的插入修改视频】 学生实现上述界面。 认真听讲,记录笔记。 根据左侧提示,自主设置代码 1、修改屏幕尺寸 2、修改窗口标题 3、修改屏幕填充色 观看视频,并且不断修正代码。 在分解任务的过程中,集成程序教学法的小步骤,以紧密的任务安排让学生在实践练习中加深对程序设计的理解,并不断提升程序调试的能力,让学生感受综合问题解决时所具备的心态、情绪、能力和知识技能,不断提升对信息技术的探究兴趣。活动二、【字体画笔】【字体画笔】 score=0#初始定义分数为0 def showscore(score):#设置分数函数 textfont=pygame.font.SysFont('宋体',40)#设置画笔对象 t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例 screen.blit(t,[50,50])#将画笔写在屏幕上 while True: showscore(score) pygame.display.flip() 讲解并播放如何显示分数的视频。 【屏幕坐标】 请思考以下画笔都分布在界面哪些位置,并修改坐标代码,实现结果。 screen.blit(t,[0,0] screen.blit(t,[50,50] screen.blit(t,[100,50] screen.blit(t,[50,100] 播放【分数坐标】视频。 在教师指导下认识代码,运行结果。 观看视频,修正代码,记录笔记。 根据题意自主实现结果,总结结论。活动三、【小球显示】import pygame,time,sys pygame.init() # 初始化Pygame size = width, height = 320, 240 # 设置窗口 screen = pygame.display.set_mode(size) # 显示窗口 screen.fill((255,255,255)) img=pygame.image.load(‘ball.png’)#加载小球图片 # 执行死循环,确保窗口一直显示 while True: time.sleep(0.1) # 0.1秒 screen.blit(img,(0,0)) pygame.display.flip() # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() pygame.quit() 【图片插入】 img=pygame.image.load(‘ball.png’)#加载小球图片 screen.blit(img,(0,0))#将图片加载到屏幕上,并放在屏幕坐标的(0,0)位置。 【图片方法】 获取图片大小:img.get_size() 按照尺寸缩放:pygame.transform.scale(img, (100, 100)),参数:scale(缩放对象,目标大小), 按照比例缩放:pygame.transform.rotozoom(img,),参数:rotozoom(缩放/旋转对象,旋转角度,缩放比例) 自主探索,给屏幕增加背景图片,并且按照屏幕尺寸把图片尺寸调整,得到小球图片的四个顶点坐标。 A点(x,y) B点(x,y+h) C点(x+w,y) D点(x+w,y+h) 播放【图片坐标】的视频 【图片随机显示】 分析:图片的随机显示,是为了让图片的左顶点的坐标是随机数字,使得图片能够随机显示。 import random#导入随机数字库 #设置随机坐标 x=img_x,img_y=random.randint(20,500),random.randint(20,200) #加载在屏幕上 screen.blit(img,[img_x,img_y]) pygame.display.update()#屏幕刷新 播放【图片随机显示】视频。 模仿代码,运行结果 模仿并实现结果之后,认真听讲,记录笔记。 记录笔记并自主尝试。 完成任务。 根据教师引导寻找并写出四个点的坐标,以此认识位置。 观看视频,记录笔记。 跟随教师分析。 理解并模仿代码。 观看视频。 实现结果。活动四、【鼠标点击事件】while True: screen.fill((255,255,255)) time.sleep(0.1) # 0.1秒 # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type==pygame.MOUSEBUTTONDOWN: img_x,img_y=random.randint(20,500),random.randint(20,200) screen.fill((255,255,255)) screen.blit(img,[img_x,img_y]) pygame.display.update() if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() 实现鼠标点击,图片随机显示的事件 鼠标键按下事件:pygame.event.MOUSEBUTTONDOWN: 鼠标键抬起事件: event.type == pygame.MOUSEBUTTONUP: 鼠标键移动事件: event.type == pygame.MOUSEMOTION: 鼠标坐标获取: mx,my=pygame.mouse.get_pos() 【判断鼠标是否击中小球】 mx,my=pygame.mouse.get_pos() if mx in range(x,x+54) and my in range (y,y+48): score=score+5 认真听讲,理解代码并自主完成结果运行,有问题请教指导教师。完善总结 按照四部分任务,完善代码,实现点击小球游戏。 总结完善教材中的填空内容,学以致用。 巩固、加强学习,并解决开放性问题。拓展练习 尝试给“点击小球”游戏设计一个难度策略或是给鼠标换一个手形图,以实现抓取的视觉效果,增加游戏的趣味性。难度策略可以考虑使用什么规则增减速度。尝试在你的游戏中实现自己的想法。 自主查阅资料,完成任务 高难度挑战Python应用,让真正感兴趣的学生继续深入探索,提供任务的要求。(共30张PPT)4.4 综合问题的解决2019教科版高中信息技术教学目标一、活动导入【简单的点击小球游戏】二、活动分析【点击小球游戏】三、活动探究【点击小球游戏】【窗口界面】import pygamepygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口# 执行死循环,确保窗口一直显示while True:# 检查事件for event in pygame.event.get(): # 遍历所有事件if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出sys.exit()pygame.quit()模仿代码,实现结果这是固定框架三、活动探究【点击小球游戏】【窗口界面】Pygame库import pygamepygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口尺寸screen = pygame.display.set_mode(size) # 显示窗口# 执行死循环,确保窗口一直显示while True:# 检查事件for event in pygame.event.get(): # 遍历所有事件if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出sys.exit()pygame.quit()三、活动探究【点击小球游戏】【窗口界面】Pygame库#屏幕尺寸pygame.display.set_mode(200,300)#屏幕尺寸为200*300#窗口标题pygame.display.set_caption(‘贪吃蛇游戏’)#刷新pygame.display.flip()#第一次刷新pygame.display.update()#第二次刷新#屏幕颜色screen.(fill((255,0,0))三、活动探究【点击小球游戏】【窗口界面】Pygame库三、活动探究【点击小球游戏】【分数显示】score=0#初始定义分数为0def showscore(score):#设置分数函数textfont=pygame.font.SysFont('宋体',40)#设置画笔对象t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例screen.blit(t,[50,50])#将画笔写在屏幕上while True: showscore(score) pygame.display.flip()字体画笔三、活动探究【点击小球游戏】【分数显示】三、活动探究请思考以下画笔都分布在界面哪些位置,并修改坐标代码,实现结果。screen.blit(t,[0,0])screen.blit(t,[50,50])screen.blit(t,[100,50])screen.blit(t,[50,100])【点击小球游戏】【分数显示】屏幕坐标三、活动探究【点击小球游戏】【分数显示】三、活动探究【点击小球游戏】【小球显示】import pygame,time,syspygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口screen.fill((255,255,255))img=pygame.image.load(‘ball.png’)#加载小球图片# 执行死循环,确保窗口一直显示while True:time.sleep(0.1) # 0.1秒screen.blit(img,(0,0))pygame.display.flip()# 检查事件for event in pygame.event.get(): # 遍历所有事件if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出sys.exit()pygame.quit()模仿代码,运行结果三、活动探究【点击小球游戏】【小球显示】img=pygame.image.load(‘ball.png’)#加载小球图片screen.blit(img,(0,0))#将图片加载到屏幕上,并放在屏幕坐标的(0,0)位置。图片插入三、活动探究【点击小球游戏】【小球显示】图片方法三、活动探究【点击小球游戏】【小球显示】图片方法获取图片大小:img.get_size()按照尺寸缩放:pygame.transform.scale(img, (100, 100)),参数:scale(缩放对象,目标大小),按照比例缩放:pygame.transform.rotozoom(img,),参数:rotozoom(缩放/旋转对象,旋转角度,缩放比例)三、活动探究【点击小球游戏】【小球显示】自主探索,给屏幕增加背景图片,并且按照屏幕尺寸把图片尺寸调整,得到小球图片的四个顶点坐标。三、活动探究【点击小球游戏】【小球显示】IMGB点A点C点D点A点(x,y)B点(x,y+h)C点(x+w,y)D点(x+w,y+h)(x,y)wh三、活动探究【点击小球游戏】【小球显示】三、活动探究图片随机显示分析:图片的随机显示,是为了让图片的左顶点的坐标是随机数字,使得图片能够随机显示。import random#导入随机数字库#设置随机坐标x=img_x,img_y=random.randint(20,500),random.randint(20,200)#加载在屏幕上screen.blit(img,[img_x,img_y])pygame.display.update()#屏幕刷新【点击小球游戏】【小球显示】三、活动探究【点击小球游戏】【小球显示】三、活动探究【鼠标点击事件】【点击小球游戏】鼠标点击之后,图片随机显示while True:screen.fill((255,255,255))time.sleep(0.1) # 0.1秒# 检查事件for event in pygame.event.get(): # 遍历所有事件if event.type==pygame.MOUSEBUTTONDOWN:img_x,img_y=random.randint(20,500),random.randint(20,200)screen.fill((255,255,255))screen.blit(img,[img_x,img_y])pygame.display.update()if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出sys.exit()三、活动探究鼠标键按下事件:pygame.event.MOUSEBUTTONDOWN:鼠标键抬起事件: event.type == pygame.MOUSEBUTTONUP:鼠标键移动事件: event.type == pygame.MOUSEMOTION:鼠标坐标获取: mx,my=pygame.mouse.get_pos()【点击小球游戏】【鼠标点击事件】三、活动探究判断鼠标是否“击中”小球mx,my=pygame.mouse.get_pos()if mx in range(x,x+54) and my in range (y,y+48):score=score+5【点击小球游戏】【鼠标点击事件】四、完善总结按照四部分任务,完善代码,实现点击小球游戏。总结完善教材中的填空内容,学以致用。绘制屏幕Score=0点击鼠标小球随机出现Score+=5四、完善总结pygame.display.set_mode(800,600)Pygame.image.loadback四、完善总结Pygame.display.update()将背景图画在窗口[0,0]位置加载分数函数X的值为随机数y的值为随机数福字为随机位置显示刷新屏幕四、完善总结按下鼠标事件分数加5四、完善总结尝试给“点击小球”游戏设计一个难度策略或是给鼠标换一个手形图,以实现抓取的视觉效果,增加游戏的趣味性。难度策略可以考虑使用什么规则增减速度。尝试在你的游戏中实现自己的想法。五、拓展练习一、界面现实import pygamepygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口# 执行死循环,确保窗口一直显示while True: # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit()pygame.quit() 二、分数显示import pygamepygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口score=0#初始定义分数为0def showscore(score):#设置分数函数 textfont=pygame.font.SysFont('宋体',40)#设置画笔对象 t=textfont.render('score:'+str(score),True,(255,0,0))#定义画笔实例 screen.blit(t,[50,50])#将画笔写在屏幕上# 执行死循环,确保窗口一直显示while True: showscore(score) pygame.display.flip() # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit()pygame.quit() 三、小球显示import pygame,time,syspygame.init() # 初始化Pygamesize = width, height = 320, 240 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口screen.fill((255,255,255))img=pygame.image.load('ball.png')# 执行死循环,确保窗口一直显示while True: time.sleep(0.1) # 0.1秒 screen.blit(img,(0,0)) pygame.display.flip() # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit()pygame.quit() 四、随机出现小球(一)鼠标不点击import pygame,time,sys,randompygame.init() # 初始化Pygamesize = width, height = 600, 300 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口img=pygame.image.load('ball.png')# 执行死循环,确保窗口一直显示while True: screen.fill((255,255,255)) img_x,img_y=random.randint(20,500),random.randint(20,200) screen.blit(img,[img_x,img_y]) pygame.display.update() time.sleep(3) # 3秒 # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit()pygame.quit() (二)鼠标点击import pygame,time,sys,randompygame.init() # 初始化Pygamesize = width, height = 600, 300 # 设置窗口screen = pygame.display.set_mode(size) # 显示窗口img=pygame.image.load('ball.png')# a,b=img.get_size()#获得小球的尺寸# print(a,b) #打印小球的尺寸# 执行死循环,确保窗口一直显示while True: screen.fill((255,255,255)) time.sleep(0.1) # 0.1秒 # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type==pygame.MOUSEBUTTONDOWN: img_x,img_y=random.randint(20,500),random.randint(20,200) screen.fill((255,255,255)) screen.blit(img,[img_x,img_y]) pygame.display.update() if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit()pygame.quit() 五、鼠标点击小球后,积分增加import pygame,time,sys,randompygame.init() # 初始化Pygamesize = width, height = 600, 300 # 设置窗口score=0screen = pygame.display.set_mode(size) # 显示窗口screen.fill((255,255,255))x=random.randint(50,500)y=random.randint(50,200)def showqiu(x,y): qiu=pygame.image.load('ball.png') screen.blit(qiu,[x,y])def showscore(score): textfont=pygame.font.SysFont('宋体',40) t=textfont.render('score:'+str(score),True,(255,0,0)) screen.blit(t,[50,50])# 执行死循环,确保窗口一直显示while True: screen.fill((255,255,255)) time.sleep(0.1) # 0.1秒 # 检查事件 for event in pygame.event.get(): # 遍历所有事件 if event.type==pygame.MOUSEBUTTONDOWN: mx,my=pygame.mouse.get_pos() if mx in range(x,x+54) and my in range (y,y+48): score=score+5 #print(mx,x,x+54,my,y,y+48) x=random.randint(50,500) y=random.randint(50,200) showqiu(x,y) showscore(score) pygame.display.update() if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 sys.exit() pygame.quit() 展开更多...... 收起↑ 资源列表 4.4 综合问题的解决.docx 4.4 综合问题的解决.pptx 4.4 综合问题的解决之pygame库——鼠标点击小球游戏代码.docx