python实现简单反弹球游戏


Posted in Python onApril 12, 2021

python简单游戏-反弹球,供大家参考,具体内容如下

tkinter实现,直接贴上代码

from tkinter import*
import time
import random

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,245,100)
        starts = [-3,-2,-1,1,2,3]
        random.shuffle(starts)
        self.x = starts[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 = 4
        if pos[3] >= self.canvas_height:
            self.hit_bottom=True
        if self.hit_paddle(pos)==True:
            self.y=-4
        if pos[0] <= 0:
            self.x = 4
        if pos[2] >= self.canvas_width:
            self.x = -4

class Paddle:
    def __init__(self,canvas,color):
        self.canvas = canvas
        self.id = canvas.create_rectangle(0,0,100,10,fill=color)
        self.canvas.move(self.id,200,400)
        self.x=0
        self.canvas_width = self.canvas.winfo_width()
        canvas.bind_all('<KeyPress-Left>',self.turn_left)
        canvas.bind_all('<KeyPress-Right>',self.turn_right)
        self.hit_bottom = False

    def draw(self):
        self.canvas.move(self.id,self.x,0)
        pos = self.canvas.coords(self.id)
        if pos[0] <= 0:
            self.x = 0
        elif pos[2] >= self.canvas_width:
            self.x = 0

    def turn_left(self,evt):
        self.x=-7

    def turn_right(self,evt):
        self.x=7 
        
tk = Tk()
tk.title("反弹吧!球球")
#tk.resizable(0,0)
tk.wm_attributes("-topmost",1)
canvas = Canvas(tk,width=650,height=600,bd=0,highlightthickness=0)
canvas.pack()
tk.update()

paddle=Paddle(canvas,'blue')
ball = Ball(canvas,paddle,'red')

while 1:
    if ball.hit_bottom==False:
        ball.draw()
        paddle.draw()
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)

效果:

python实现简单反弹球游戏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读写文件操作示例程序
Dec 02 Python
Python最基本的输入输出详解
Apr 25 Python
python中字符串类型json操作的注意事项
May 02 Python
python机器学习实战之最近邻kNN分类器
Dec 20 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
python实现周期方波信号频谱图
Jul 21 Python
Python实现注册、登录小程序功能
Sep 21 Python
pandas分区间,算频率的实例
Jul 04 Python
Python中turtle库的使用实例
Sep 09 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
python 实现汉诺塔游戏
Nov 28 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
PHP使用Redis实现Session共享的实现示例
2019/05/12 PHP
代码精简的可以实现元素圆角的js函数
2007/07/21 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
java、javascript实现附件下载示例
2014/08/14 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
js自定义回调函数
2015/12/13 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
跟老齐学Python之重回函数
2014/10/10 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
ORACLE十问
2015/04/20 面试题
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
八一建军节活动方案
2014/02/10 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android