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模块编写)相关推荐

  1. python写前端图形界面_如何Tkinter模块编写Python图形界面

    一.为何使用Tkinter而非PyQt 众所周知,在Python中创建图形界面程序有很多种的选择,其中PyQt和wxPython都是很热门的模块包,这些第三方的图形界面模块功能强大.配置丰富,界面美观 ...

  2. python中tkinter模块_使用Python中的tkinter模块作图的方法

    python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...

  3. 使用python中的tkinter模块制作一个学习打卡小软件

    学习任务打卡小软件---戈多Sensei 1.制定任务 2.完成任务 3.学习评估 最近为了给我的星星⭐写一个学习记录软件,学习了一下python中的tkinter模块,做了一个可视化打卡界面,此处为 ...

  4. python弹球游戏双球代码键盘操作_python编写弹球游戏的实现代码

    弹球游戏: from tkinter import * import time import random tk=Tk() #创建一个界面 tk.title("弹球游戏") can ...

  5. python弹球游戏移动球拍_python编写弹球游戏的实现代码

    弹球游戏: from tkinter import * import time import random tk=Tk() #创建一个界面 tk.title("弹球游戏") can ...

  6. 用 Python 的 tkinter 模块编写一个好看又强大的中国象棋

    继上次我的第一版的<中国象棋>程序之后,我又编写了第二版的<中国象棋>程序,关注我的粉丝知道,我在第一篇<中国象棋>的文章末尾说了,我会出第二版的,对第一版感兴趣的 ...

  7. python弹球游戏难度_python弹球游戏

    先看一下我们的最终效果图 我们分9步来讲解如何写这个小游戏 1.创建游戏的主界面 我们用Python的内置模块Tkinter来完成了,它是Python的标准GUI工具包,可以非常方便在制作GUI小工具 ...

  8. python弹球游戏实验报告_Python实战案例:用Python写一个弹球游戏,就是这么强

    我们前面讲了几篇关于类的知识点,为了让大家更好的掌握类的概念,并灵活的运用这些知识,我写了一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python ...

  9. python 弹球游戏

    首先,我们需要安装tkinter,random,time. tkinter实现画布弹窗,random实现随机出现,time负责等待sleep() 1. Ball 类 draw()负责移动Ball 碰撞 ...

  10. Python实例教程Mechanize模块编写爬虫的要点解析

    Python使用Mechanize模块编写爬虫的要点解析 mechanize是对urllib2的部分功能的替换,能够更好的模拟浏览器行为,在web访问控制方面做得更全面.结合beautifulsoup ...

最新文章

  1. php 字符 hash_php常用hash加密函数
  2. 温州大学《机器学习》课程课件(十、聚类)
  3. Django Web开发基础环境配置流程
  4. 运算符--位移运算符和一些其他运算符
  5. 麦块服务器显示连接已丢失,麦块服务器密码怎么设置
  6. 单片机七阶音符_单片机对于音乐的编程中 ,音符的十六位数据表是怎样
  7. POJ读书笔记2.1 —— 鸡兔笼带
  8. learn go return fuction
  9. 细说在兄弟连搞上PHP的那些事儿
  10. php txt bom,使用 PHP 函数或者软件去除文件的 BOM 头字符 - 文章教程
  11. OpenCV 单/多目标跟踪传统算法实验
  12. Simulink Mutual Inductance互感线圈模块使用方法
  13. Python3图片中竖排文字
  14. 10个超强英语学习资源网站,学霸们都在用!
  15. 【VulnHub靶场】——HARRYPOTTER第三部: FAWKES
  16. Ubuntu16.04.4制作自定义安装光盘方案
  17. 磁带备份迁移到磁盘备份前的准备工作
  18. 电脑族的视力保护常识
  19. 1 - 基于卡方检验的特征选择
  20. 解决手机端中文输入法中keyup不灵便的方法

热门文章

  1. 切片 go 去除第一个_Go语言入门指南,带你轻松学Go
  2. VMware新建虚拟机(CentOS)步骤详解
  3. linux 网卡 虚拟化,RHEL6.4 KVM虚拟化网卡桥接,PXE无人值守安装虚拟机
  4. linux开启mysql窗口_linux操作系统中如何查看是否开启了MySQL服务呢?
  5. php中is upload,PHP中,文件上传
  6. 软件测试与发布,软件测试与发布技术
  7. java的if判读_java if判断
  8. oracle数据泵功能,Oracle数据泵的使用(1)-Oracle
  9. 形式语义学-JLU-ZHH
  10. Java Web J2EE下的两大框架SSH和SSM对比