弹球游戏: from tkinter import *

import time

import random

tk=Tk() #创建一个界面

tk.title("弹球游戏")

canvas=Canvas(tk,width=800,height=600,bg="skyblue",bd=0,highlightthickness = 0)

tk.resizable(0,0) #表示边框不能被拉伸

canvas.pack() #使部件放在主窗口中

tk.update() #刷新界面

class Ball: #球的类

def __init__(self,canvas,paddle,color):

self.canvas=canvas

self.paddle=paddle

self.id=canvas.create_oval(10,10,25,25,fill=color) #在画布上画出一个球

self.canvas.move(self.id,240,100) #初始球的位置

stat=[-3,-2,-1,1,2,3]

random.shuffle(stat)

self.x=stat[0]

self.y=-3

self.canvas_height=self.canvas.winfo_height() #获取画布的的高度

self.canvas_width=self.canvas.winfo_width()

self.hit_bottom=False

def hit_paddle(self, pos): #判断输赢

paddle_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]:

return True

return False

def draw(self): #小球移动

self.canvas.move(self.id,self.x,self.y)

pos=self.canvas.coords(self.id)

if pos[1]<=0: #判断小球是否碰到边框,如果碰到回弹

self.y=3

if pos[3]>=self.canvas_height: #判断球拍是否有接到球 ,如果没接到游戏结束

self.hit_bottom=True

if self.hit_paddle(pos)==True: #判断求是否碰到了球拍,如果碰到了使小球回弹

self.y=-3

if pos[0]<=0: #来判断球拍是不是碰到了边框,,

self.x=3

if pos[2]>=self.canvas_width:

self.x=-3

class Paddle: #球拍的的类

def __init__(self,canvans,color):

self.canvas=canvas

self.id=canvas.create_rectangle(0,0,150,10,fill=color)

self.canvas.move(self.id,400,450)

self.x=0

self.canvas_width=self.canvas.winfo_width()

self.canvas.bind_all("",self.turn_left) #通过按键来使球拍移动

self.canvas.bind_all("", self.turn_right)

def turn_left(self,event): #每次按键球拍移动的距离

self.x=-5

def turn_right(self,event):

self.x=5

def draw(self): #球拍移动的方法

pos=self.canvas.coords(self.id)

self.canvas.move(self.id, self.x, 0)

if pos[0]<=0:

self.x=0

if pos[2]>=self.canvas_width:

self.x=0

paddle=Paddle(canvas,"blue")

ball=Ball(canvas,paddle,"red")

while True: #用循环 如果球怕没有接到球就推出

if ball.hit_bottom==False:

ball.draw()

paddle.draw()

else:

break

tk.update_idletasks()# 不停的刷新画布

tk.update()

time.sleep(0.01)

总结

以上所述是小编给大家介绍的python编写弹球游戏的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对聚米学院网站的支持!

python弹球游戏双球代码键盘操作_python编写弹球游戏的实现代码相关推荐

  1. python弹球游戏双球代码键盘操作_python运用pygame库实现双人弹球小游戏

    使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球. 因为是第一次用pygam ...

  2. Python获取鼠标位置,虚拟键盘操作

    Python获取鼠标位置,虚拟键盘操作 PS: 也是从网上各个帖子中学习的Python,因此代码的格式以及内容有粘贴网上其他大神的代码,如有侵权请告知删除 代码转载:https://blog.csdn ...

  3. 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码

    用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...

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

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

  5. python模拟按键包_今天玩点啥:利用python之PyUserInput实现模拟鼠标键盘操作,抢红包?聊天?自动下载?...

    一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...

  6. python代码桌面壁纸_Python实现设置windows桌面壁纸代码

    Python实现设置windows桌面壁纸代码 发布于 2015-04-07 16:59:42 | 122 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  7. python字符串加双引号是什么意思_python字符串表示什么?

    原标题:python字符串表示什么? python的字符串就是表示一串字符,字符可以是中文,英文或者数字,或者混合的文本. python字符串的几种表达方式 1 使用单引号扩起来字符串 >> ...

  8. python两层循环 循环完整体一个_Python编写循环的两个建议 | 鹅厂实战(文末有福利)...

    循环是一种常用的程序控制结构.我们常说,机器相比人类的最大优点之一,就是机器可以不眠不休的重复做某件事情,但人却不行.而**"循环"**,则是实现让机器不断重复工作的关键概念. 在 ...

  9. js装修计算器java代码_用js编写的简单的计算器代码程序

    最近编写的一个简单的计算器代码程序,先给大家展示一下 分享代码如下 #box{width: 295px; margin: 0 auto; text-align: justify; border: 1p ...

最新文章

  1. 使用LoadRunner对Web Services进行调用--Add Service Call
  2. java 数据结构 快速入门_Java 数据结构快速入门
  3. SharePoint Designer 2010创建限制筛选器
  4. c语言斐波那契数列_神奇的数列——斐波那契数列
  5. 【图论】【最短路】【SPFA】香甜的黄油 Sweet Butter (luogu 1828)
  6. 论文浅尝 - ICLR2021 | BERTology 遇上生物学:在蛋白质语言模型中解释注意力
  7. VSCode自定义代码片段9——JS中的面向对象编程
  8. ip subnet-zero 和ip classless 的用法
  9. LINQ学习之旅——再次拾起
  10. Java中BigDecimal类型的加减乘除及大小比对
  11. 预处理器loader总结
  12. verifycode.php,php验证码|php图片验证码|php image.verifyCode.class.php
  13. Delphi中使用ReportMachine 6.5中汇总行不进行汇总的设置问题
  14. Revit二次开发记录
  15. 渗透测试 - KALI Linux 学习 - kali linux如何启动METASPLOIT服务
  16. Python中的逻辑运算符:‘and‘与‘or‘的用法
  17. fopen用java代码实现_C语言基础(20)-文件操作(fopen,getc,fclose)
  18. 【 Kotlin 脚本编程Kotlin Scripting 】Linux Shell 脚本与Kotlin Scripting
  19. UC搭档云计算:前景广阔
  20. OSChina 周一乱弹 ——老东西!爷爷我!帮你拿!

热门文章

  1. 信号塔是服务器吗,信号塔对于我们的用途
  2. awesome图标库
  3. 多传感器数据融合技术如何应用在自动驾驶领域?
  4. iOS App 主题切换
  5. matlab找特定点,matlab编程取特定点坐标
  6. 【matlab教程】16、曲线上等弧长取点
  7. 【网页设计】基于HTML+CSS+JavaScript学生网上报到系统响应式网站
  8. vue 地图组件(地球模式)
  9. rndis模块 linux,openwrt 19.7 驱动添加rndis模式4G模块
  10. Android-Universal-Image-Loader(UIL)源码解析