from tkinter import *
from random import *
import time
class Ball:
def __init__(self, canvas, color, winW, winH, racket):
self.canvas = canvas
self.racket = racket
self.id = canvas.create_oval(0, 0, 20, 20, fill=color)
self.canvas.move(self.id, winW/2, winH/2)
startPos = [-4, -3, -2, -1, 1, 2, 3, 4]
shuffle(startPos)
self.x = startPos[0]
self.y = -step
self.notTouchBottom= True
def hitRacket(self, ballPos):
racketPos = self.canvas.coords(self.racket.id)
if ballPos[2] >= racketPos[0] and ballPos[0] <= racketPos[2]:
if ballPos[3] >= racketPos[1] and ballPos[3] <= racketPos[3]:
return True
return False
def ballMove(self):
self.canvas.move(self.id, self.x, self.y)
ballPos = self.canvas.coords(self.id)
if ballPos[0] <= 0:
self.x = step
if ballPos[1] <= 0:
self.y = step
if ballPos[2] >= winW:
self.x = -step
if self.hitRacket(ballPos) == True:
self.y = -step
if ballPos[3] >= winH:
self.notTouchBottom = False
class Racket:
def __init__(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_rectangle(0, 0, 100, 15, fill=color)
self.canvas.move(self.id, 270, 400)
self.x = 0
self.canvas.bind_all('<KeyPress-Right>', self.moveRight)
self.canvas.bind_all('<KeyPress-Left>', self.moveLeft)
def racketMove(self):
self.canvas.move(self.id, self.x, 0)
racketPos = self.canvas.coords(self.id)
if racketPos[0] <= 0:
self.x = 0
elif racketPos[2] >= winW:
self.x = 0
def moveLeft(self, event):
self.x = -3
def moveRight(self, event):
self.x = 3
winW = 640
winH = 480
step = 3
speed = 0.01
tk = Tk()
tk.title("Bouncing Ball")
tk.wm_attributes('-topmost', 1)
canvas = Canvas(tk, width=winW, height=winH)
canvas.pack()
tk.update()
racket = Racket(canvas, 'purple')
ball = Ball(canvas, 'yellow', winW, winH, racket)
while ball.notTouchBottom:
try:
ball.ballMove()
except:
print("单击关闭按钮终止程序执行")
break
racket.racketMove()
tk.update()
time.sleep(speed)
没有合适的资源?快使用搜索试试~ 我知道了~
这个小程序是一个使用 tkinter 编写的弹球小游戏,采用了经典的弹球游戏设计。玩家可以通过控制板拍弹球,使其不断弹跳并消除砖块。 游戏规则: 启动游戏: 运行程序,游戏窗口将显示在屏幕上。 控制板移动: 通过键盘左右箭头键控制底部的板移动,使其接住弹球并反弹。 弹球弹跳: 弹球会在板和墙壁之间弹跳,目标是消除屏幕上的所有砖块。 游戏结束: 如果弹球触底,游戏结束。 注意事项: 得分计算: 每次弹球触碰砖块,玩家得分增加。 难度递增: 随着游戏进行,弹球的速度可能逐渐增加,使游戏更加具有挑战性。 这个小游戏采用了简单的图形界面,是一个有趣的练手项目,适合初学者学习基本的游戏开发概念。
资源推荐
资源详情
资源评论
收起资源包目录
tkinter.zip (1个子文件)
tinkter.py 2KB
共 1 条
- 1
资源评论
Nowl
- 粉丝: 1w+
- 资源: 3556
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP-JTBC-CMS(SQLITE).rar
- MC3362和MC145151调频无线接收器的设计.pdf
- MiniRenamer-v100.0一款简单易用的批量文件重命名工具(已注册PRO版本).rar
- 小狐狸Ai系统 小狐狸ai付费创作系统V2.8.0 ChatGPT智能机器人
- 公孙离-内衣-肚兜.zipgsl
- 快慢指针判断链表是否有环-go 语言实现
- 学生成绩管理系统的设计与实现-收藏备用.pdf
- JSP+SQL网站流量统计管理系统(源代码+论文).rar
- IBM-PC-XT微机过程...道中模拟量数据的采集和处理.pdf
- JSP+SQL网上选课系统(源代码+论文+答辩PPT).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功