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脚本实现查找webshell的方法
Jul 31 Python
Python smallseg分词用法实例分析
May 28 Python
Python缩进和冒号详解
Jun 01 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
在python tkinter中Canvas实现进度条显示的方法
Jun 14 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
在Python中append以及extend返回None的例子
Jul 20 Python
Python3批量创建Crowd用户并分配组
May 20 Python
python函数map()和partial()的知识点总结
May 26 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
Python中第三方库Faker的使用详解
Apr 02 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
使用PHP编写的SVN类
2013/07/18 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
PHP使用函数用法详解
2018/09/30 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
JS实现self的resend
2010/07/22 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
js评分组件使用详解
2017/06/06 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
Win下PyInstaller 安装和使用教程
2019/12/25 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
C#中的验证控件有几种
2014/03/08 面试题
国外的一些J2EE面试题一
2012/10/13 面试题
行政人员岗位职责
2013/12/08 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
创业融资计划书
2014/04/25 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
美术教师求职信范文
2015/03/20 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
围城读书笔记
2015/06/26 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python