1. #coding:utf-
  2. from tkinter import *
  3. import random
  4. import time
  5.  
  6. class Ball:
  7. #创建一个球类
  8. def __init__(self, canvas, color):
  9. self.canvas = canvas
  10. self.id = canvas.create_oval(, , , , fill=color)
  11. #返回刚好划小球的id,create_oval创建一个椭圆
  12. self.canvas.move(self.id, , )
  13. #把椭圆移动到画布
  14. starts = [-, -, -, , , ]
  15. random.shuffle(starts)
  16. #随机排列
  17. self.x = starts[]
  18. self.y = -
  19. self.canvas_height = self.canvas.winfo_height()
  20. #获取画布当前高度
  21. self.canvas_width = self.canvas.winfo_width()
  22. #获取画布当前宽度
  23. def draw(self):
  24. self.canvas.move(self.id, self.x, self.y)
  25. #让小球水平和垂直移动
  26. pos = self.canvas.coords(self.id)
  27. #coords返回画布上画好的x和y坐标
  28.  
  29. #判断小球是否撞到画布顶部或者底部,保证小球反弹回去,不消失
  30. if pos[] <= :
  31. self.y =
  32. if pos[] >= self.canvas_height:
  33. self.y = -
  34. if pos[] <= :
  35. self.x =
  36. if pos[] >= self.canvas_width:
  37. self.x = -
  38.  
  39. tk = Tk()
  40. tk.title("Game")
  41.  
  42. tk.resizable(, )
  43. #窗口大小不可调整
  44. tk.wm_attributes("-topmost", )
  45. #使画布窗口置于所有窗口之前
  46. canvas = Canvas(tk,width=, height=, bd=, highlightthickness=)
  47. #bd和highlighttthickness是为了保证画布没有边框
  48. canvas.pack()
  49. tk.update()
  50. #动画初始化
  51.  
  52. ballone = Ball(canvas, 'red')
  53. balltwo = Ball(canvas, 'blue')
  54.  
  55. while :
  56. #画布一出现会马上消失,为了防止画布消失,用tkinter一直重画
  57. ballone.draw()
  58. balltwo.draw()
  59. tk.update_idletasks()
  60. tk.update()
  61. time.sleep(0.01)

效果

参考:

https://blog.csdn.net/qq_23948283/article/details/51637406?utm_source=blogxgwz6

python编写弹球游戏的实现代码的更多相关文章

  1. [python] python实现2048游戏,及代码解析。

    我初学python,有不对之处望大家指教.转载请征得同意. 我在网络上也找了一些2048游戏代码的讲解,但都不是特别详细.所以我希望能够尽量详细的讲解.同时,有的地方我也不懂,希望大家能帮助补充.我会 ...

  2. 使用html+css+js实现弹球游戏

    使用html+css+js实现弹球游戏 效果图: 代码如下,复制即可使用: <!doctype html> <head> <style type="text/c ...

  3. Python编写两个数的加减法游戏

    目标: 1.实现两个数的加减法 2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续 1.使用常规函数实现两个数的加减法游戏 代码如下: #!/usr/bin/env python # - ...

  4. 【编程教室】PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  5. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!

    本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...

  6. Python 练习项目1 弹球游戏

    这几天学习了python的基础知识,然后参考了网上的一些资料,完成了一个自己的小游戏,弹球游戏比较简单,但却具备了一些游戏的普遍特征,对于初学者是一个比较合适的锻炼的项目. 下面是效果图: 完整程序: ...

  7. Effective Python 编写高质量Python代码的59个有效方法

    Effective Python 编写高质量Python代码的59个有效方法

  8. 疯狂java实战演义 弹球游戏代码

    package org.crazyit.ball; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; ...

  9. Python编写网页爬虫爬取oj上的代码信息

    OJ升级,代码可能会丢失. 所以要事先备份. 一開始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启示和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 p ...

随机推荐

  1. (四)CXF之处理Map类型的数据

    一.需求描述 正常来讲webService可以处理Java 数据类型.JavaBean.List等,但是却不能处理Map数据类型.本章讲解如何使用适配器来使得web服务可以处理Map数据类型. 流程: ...

  2. (七)mybatis之多对一关系(复杂)

    一.需求分析 需求:查询所有消费者信息,关联查询订单及商品信息,订单明细信息中关联查询查商品信息. 分析:一个消费者有多条订单,一条订单只有一个消费者但是有多条订单明细,一条订单明细只有一个商品信息. ...

  3. Java Web 深入分析(9) Session 和 Cookie

    前言: session 和cookie都是为了保持服务器和客户端之间交互状态.如果一天的PV有几亿,而一个cookie占200个字节但是也会占用很多带宽?所以大访问量就引用session,但是几百台服 ...

  4. TypeScript入门八:TypeScript的命名空间

    初识命名空间(namespace指令) 命名空间与文件拆分 多重命名空间与三斜杠指令引入依赖文件 一.初识命名空间(namespace指令) TypeScript的命名空间可以说就是ES6的模块化,其 ...

  5. Python处理session最简单的方法

    前言: 不管是在做接口自动化还是在做UI自动化,测试人员遇到的第一个问题都是卡在登录上. 那是因为在执行登录的时候,服务端会有一种叫做session的会话机制. 一个很简单的例子: 在做功能测试的时候 ...

  6. 什么是N+1查询?

    在Session的缓存中存放的是相互关联的对象图.默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象.以Customer和Order类为例,假定O ...

  7. 去“BAT”这样面试,拿到offer的几率是80%

    一.概述 面试,难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:“面试官为什么会 ...

  8. wsl2 debian安装docker

    应用商店下载debian 安装docker 安装依赖 打开安装好的docker安装依赖 sudo apt-get install apt-transport-https ca-certificates ...

  9. rsync & sersync 实时同步

    1.根据之前一篇关于rsync的随笔部署好rsync服务后,可以开始inotify的部署 2.sersync的部署 ①.部署服务(安装和配置过程) #Master 部署Sersync服务 mkdir ...

  10. redis——持久化策略

    4.2.2 持久 化方式(1 ) RDB 方式1. 什么是 RDB 方式?Redis Database(RDB),就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存 ...