内容正文:
第二册
信息技术
项目2-3 开发弹球游戏
学习领域二
江苏凤凰教育出版社·凤凰职教
通过消费账单的简单计算,培养电子数据处理能力,提高数据处理意识。
学习目标
核心素养
知识目标
能力目标
情感目标
通过大任务拆解为小任务让学生学会面向对象算法思维,同时提升利用程序设计解决问题的意识。
学习领域一 项目 1-5编制数据分析报表
能够定义和调用类和对象。
能够创设窗口对象并修改窗口属性。
能够综合分析任务并对小任务进行流程图、算法分析。
通过对大任务的拆解,能够有模块化思维,具有面向对象的初步想法,提升问题解决能力。
能够通过自主探究开发弹球游戏,激发学生对程序游戏原理的认识并正确认识游戏。
情境导入
一
【弹球游戏】
情境导入
一
from tkinter import *
import random
import time
class Ball:
def __init__(self, huabu, color):
self.huabu = huabu
self.id = huabu.create_oval(10, 10, 50, 50, fill=color)
self.huabu.move(self.id, 295, 100)
starts = [-3, -2, -1, 1, 2, 3]
random.shuffle(starts)
self.x = starts[0]
self.y = -1
self.huabukuan = self.huabu.winfo_width()
self.huabugao = self.huabu.winfo_height()
def draw(self):
self.huabu.move(self.id, self.x, self.y)
p = self.huabu.coords(self.id)
if p[1] <= 0: # 如果小球碰到画布顶部
self.y = 1
if p[3] >= self.huabugao: # 如果小球碰到画布底部
self.y = -1
if p[0] <= 0:
self.x = 1
if p[2] >= self.huabukuan:
self.x = -1
模仿左侧代码并执行结果,思考每句代码内涵。
【弹球游戏】
win = Tk()
win.title("Ball Game")
win.resizable(0, 0)
#win.wm_attributes("-topmost", 1)
huabu = Canvas(win, width=600, height=400)
huabu.pack()
win.update()
ball = Ball(huabu, 'blue')
while 1:
ball.draw()
win.update_idletasks()
win.update()
time.sleep(0.01)
任务探究
二
【任务分析】
任务一
创建画布
tkinter
time库
任务二
创设小球
class 类名:
任务三
移动小球
坐标
【任务一】
Python 标准库Tkinter 提供了强大的跨平台图形用户界面(GUI)编程的功能。Tkinter 提供了大量用于 GUI编程的组件,如 button、label、menu、message、canvas等。
任务探究
二
GUI—窗体
from tkinter import *
root = Tk()
#创建一个窗口
root.title("trivial")
#设置窗口标题#设置窗口大小
root.geometry('300x120')
#禁止调整窗口大小
root.resizable(0,0)
#在窗口上建一个“添加线路”按钮
Button(root,text="添加线路",relief="solid",width=10,height=2). pack()
#下面的代码实现在窗口上添加一个"查询线路"按钮的功能
root.mainloop()
模仿代码并实现上述图形结果
模仿任务
任务探究
二
创建画布
运行任务
from tkinter import *
import time
win = Tk()
win.title("Ball Game")
win.resizable(0, 0)
hu