Python弹球游戏(tkinter模块编写)
python弹球游戏,能够选择难度和分数控制。
程序利用tkinter模块编写(说到这里吐槽一下tkinter模块,虽然tkinter是python自带的模块,但是编写手感真没有wxpython好,一个原因是tkinter模块较复杂定义了交互界面还要pack,位置也难调整,更重要的是界面没有wxpython好看)
更多内容访问omegaxyz.com
python3代码:
from tkinter import *
from tkinter import messageboximport random
import timeclass Ball:def __init__(self, canvas, paddle, color):self.canvas = canvasself.paddle = paddleself.id = canvas.create_oval(10, 10, 25, 25, fill=color)self.canvas.move(self.id, 245, 100)startx = [-3, -2, -1, 1, 2, 3]random.shuffle(startx)self.x = startx[0]self.y = -3self.canvas_height = self.canvas.winfo_height()self.canvas_width = self.canvas.winfo_width()self.hit_bottom = Falsedef draw(self):self.canvas.move(self.id, self.x, self.y)pos = self.canvas.coords(self.id) # top-left bottom-rightif pos[1] <= 0 or self.hit_paddle(pos) == True:self.y = -self.yif pos[0] <= 0 or pos[2] >= self.canvas_width:self.x = -self.xif pos[3] >= self.canvas_height:self.hit_bottom = Truedef hit_paddle(self, pos):global scorepaddle_pos = self.canvas.coords(self.paddle.id)if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:score += 1return Truereturn Falseclass Paddle:def __init__(self, canvas, color,width):self.canvas = canvasself.id = canvas.create_rectangle(0, 0, width, 10, fill=color)self.x = 0self.y = 0self.canvas.move(self.id, 200, 300)self.canvas_width = self.canvas.winfo_width()self.canvas.bind_all("<Key-Left>", self.turn_left)self.canvas.bind_all("<Key-Right>", self.turn_right)def draw(self):pos = self.canvas.coords(self.id)if pos[0] + self.x >= 0 and pos[2] + self.x <= self.canvas_width:self.canvas.move(self.id, self.x, 0)# self.x = 0def turn_left(self, event):self.x = -4def turn_right(self, event):self.x = 4width = 0def test1():global width2width2 = 200def test2():global width2width2 = 100width2 = 100
score = 0
tk = Tk()
tk.title("Game")
tk.resizable(0, 0) # not resizable
tk.wm_attributes("-topmost", 1) # at top
btn1 = Button(tk, text='简单', command=test1)
btn2 = Button(tk, text='难', command=test2)btn1.pack(side='left')
btn2.pack(side='left')
canvas = Canvas(tk, width=500, height=350, bd=0, highlightthickness=0)
canvas.pack()
canvas.create_line(1, 0, 1, 600, fill='red')
tk.update()
paddle = Paddle(canvas, 'blue', width2)
ball = Ball(canvas, paddle, 'red')
while True:if ball.hit_bottom == False:ball.draw()paddle.draw()else:messagebox.showinfo(title='失败!', message="你的分数为:" + str(score))breaktk.update_idletasks()tk.update()time.sleep(0.01)
效果图:
更多内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2018 • OmegaXYZ-版权所有 转载请注明出处
Python弹球游戏(tkinter模块编写)相关推荐
- python写前端图形界面_如何Tkinter模块编写Python图形界面
一.为何使用Tkinter而非PyQt 众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模块包,这些第三方的图形界面模块功能强大.配置丰富,界面美观 ...
- python中tkinter模块_使用Python中的tkinter模块作图的方法
python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...
- 使用python中的tkinter模块制作一个学习打卡小软件
学习任务打卡小软件---戈多Sensei 1.制定任务 2.完成任务 3.学习评估 最近为了给我的星星⭐写一个学习记录软件,学习了一下python中的tkinter模块,做了一个可视化打卡界面,此处为 ...
- python弹球游戏双球代码键盘操作_python编写弹球游戏的实现代码
弹球游戏: from tkinter import * import time import random tk=Tk() #创建一个界面 tk.title("弹球游戏") can ...
- python弹球游戏移动球拍_python编写弹球游戏的实现代码
弹球游戏: from tkinter import * import time import random tk=Tk() #创建一个界面 tk.title("弹球游戏") can ...
- 用 Python 的 tkinter 模块编写一个好看又强大的中国象棋
继上次我的第一版的<中国象棋>程序之后,我又编写了第二版的<中国象棋>程序,关注我的粉丝知道,我在第一篇<中国象棋>的文章末尾说了,我会出第二版的,对第一版感兴趣的 ...
- python弹球游戏难度_python弹球游戏
先看一下我们的最终效果图 我们分9步来讲解如何写这个小游戏 1.创建游戏的主界面 我们用Python的内置模块Tkinter来完成了,它是Python的标准GUI工具包,可以非常方便在制作GUI小工具 ...
- python弹球游戏实验报告_Python实战案例:用Python写一个弹球游戏,就是这么强
我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python ...
- python 弹球游戏
首先,我们需要安装tkinter,random,time. tkinter实现画布弹窗,random实现随机出现,time负责等待sleep() 1. Ball 类 draw()负责移动Ball 碰撞 ...
- Python实例教程Mechanize模块编写爬虫的要点解析
Python使用Mechanize模块编写爬虫的要点解析 mechanize是对urllib2的部分功能的替换,能够更好的模拟浏览器行为,在web访问控制方面做得更全面.结合beautifulsoup ...
最新文章
- php 字符 hash_php常用hash加密函数
- 温州大学《机器学习》课程课件(十、聚类)
- Django Web开发基础环境配置流程
- 运算符--位移运算符和一些其他运算符
- 麦块服务器显示连接已丢失,麦块服务器密码怎么设置
- 单片机七阶音符_单片机对于音乐的编程中 ,音符的十六位数据表是怎样
- POJ读书笔记2.1 —— 鸡兔笼带
- learn go return fuction
- 细说在兄弟连搞上PHP的那些事儿
- php txt bom,使用 PHP 函数或者软件去除文件的 BOM 头字符 - 文章教程
- OpenCV 单/多目标跟踪传统算法实验
- Simulink Mutual Inductance互感线圈模块使用方法
- Python3图片中竖排文字
- 10个超强英语学习资源网站,学霸们都在用!
- 【VulnHub靶场】——HARRYPOTTER第三部: FAWKES
- Ubuntu16.04.4制作自定义安装光盘方案
- 磁带备份迁移到磁盘备份前的准备工作
- 电脑族的视力保护常识
- 1 - 基于卡方检验的特征选择
- 解决手机端中文输入法中keyup不灵便的方法
热门文章
- 切片 go 去除第一个_Go语言入门指南,带你轻松学Go
- VMware新建虚拟机(CentOS)步骤详解
- linux 网卡 虚拟化,RHEL6.4 KVM虚拟化网卡桥接,PXE无人值守安装虚拟机
- linux开启mysql窗口_linux操作系统中如何查看是否开启了MySQL服务呢?
- php中is upload,PHP中,文件上传
- 软件测试与发布,软件测试与发布技术
- java的if判读_java if判断
- oracle数据泵功能,Oracle数据泵的使用(1)-Oracle
- 形式语义学-JLU-ZHH
- Java Web J2EE下的两大框架SSH和SSM对比