Python实现弹球小游戏


Posted in Python onAugust 01, 2020

本文主要给大家分享一个实战项目,通过python代码写一款我们儿时大多数人玩过的游戏---小弹球游戏。只不过当时,我们是在游戏机上玩,现在我们通过运行代码来玩,看看大家是否有不一样的体验,是否可以重温当年的乐趣呢!

整个游戏实现比较简单,只需在安装python的电脑上即可运行,玩游戏,通过键盘键控制弹球挡板的移动即可。原理不多说,且让我们去看看吧。

1、代码运行后,游戏界面如下所示:

Python实现弹球小游戏

2、游戏过程中,界面如下所示:

Python实现弹球小游戏

3、游戏结束后,界面如下所示:

Python实现弹球小游戏

游戏实现部分源码如下:

def main():
  tk = tkinter.Tk()

  # call back for Quit
  def callback():
    if mb.askokcancel("Quit", "Do you really wish to quit?"):
      Ball.flag = False
      tk.destroy()

  tk.protocol("WM_DELETE_WINDOW", callback)

  # Init parms in Canvas
  canvas_width = 600
  canvas_hight = 500
  tk.title("小弹球游戏V1版")
  tk.resizable(0, 0)
  tk.wm_attributes("-topmost", 1)
  canvas = tkinter.Canvas(tk, width=canvas_width, height=canvas_hight, bd=0, highlightthickness=0, bg='#00ffff')
  canvas.pack()
  tk.update()

  score = Score(canvas, 'red')
  paddle = Paddle(canvas, "magenta")
  ball = Ball(canvas, paddle, score, "grey")

  game_over_text = canvas.create_text(canvas_width / 2, canvas_hight / 2, text='Game over', state='hidden',
                    fill='red', font=(None, 18, "bold"))
  introduce = '欢迎来到小弹球游戏 V1版:\n点击任意键--开始\n停止--回车键\n继续--回车键\n'
  game_start_text = canvas.create_text(canvas_width / 2, canvas_hight / 2, text=introduce, state='normal',
                     fill='magenta', font=(None, 18, "bold"))
  while True:
    if (ball.hit_bottom == False) and ball.paddle.started:
      canvas.itemconfigure(game_start_text, state='hidden')
      ball.draw()
      paddle.draw()
    if ball.hit_bottom == True:
      time.sleep(0.1)
      canvas.itemconfigure(game_over_text, state='normal')
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)


if __name__ == '__main__':
  main()

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

以上就是Python实现弹球小游戏的详细内容,更多关于Python 弹球游戏的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
分享一个常用的Python模拟登陆类
Mar 29 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
Python3常见函数range()用法详解
Dec 30 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 Python
Python办公自动化解决world文件批量转换
Sep 15 Python
序列化Python对象的方法
Aug 01 #Python
Python 忽略文件名编码的方法
Aug 01 #Python
Python 如何展开嵌套的序列
Aug 01 #Python
Python 日期与时间转换的方法
Aug 01 #Python
Python 执行矩阵与线性代数运算
Aug 01 #Python
Python实现数字的格式化输出
Aug 01 #Python
Python实现一个简单的递归下降分析器
Aug 01 #Python
You might like
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
基于php下载文件的详解
2013/06/02 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
Vue中计算属性computed的示例解读
2017/07/26 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
ES6基础之字符串和函数的拓展详解
2019/08/22 Javascript
Vue数字输入框组件的使用方法
2019/10/19 Javascript
VUE兄弟组件传值操作实例分析
2019/10/26 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
Python 描述符(Descriptor)入门
2016/11/20 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
python 魔法函数实例及解析
2019/09/25 Python
python中np是做什么的
2020/07/21 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
代理协议书范本
2014/04/22 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
2015新学期家长寄语
2015/02/26 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
全新239军机修复记
2022/04/05 无线电
docker 制作mysql镜像并自动安装
2022/05/20 Servers