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的内存泄漏及gc模块的使用分析
Jul 16 Python
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
调试Python程序代码的几种方法总结
Apr 28 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
Python之pymysql的使用小结
Jul 01 Python
python 实现多维数组(array)排序
Feb 28 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
高考考python编程是真的吗
Jul 20 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
python字符串拼接+和join的区别详解
Dec 03 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
Feb 01 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
Yii2中事务的使用实例代码详解
2016/09/07 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python直接访问私有属性的简单方法
2016/07/25 Python
Python程序中设置HTTP代理
2016/11/06 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
python 中random模块的常用方法总结
2017/07/08 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
MySQL面试题目集锦
2016/04/14 面试题
《桃林那间小木屋》教学反思
2014/05/01 职场文书
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技