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安装使用命令行交互模块pexpect的基础教程
May 12 Python
深入理解Python变量与常量
Jun 02 Python
python+django快速实现文件上传
Oct 24 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
Python socket网络编程TCP/IP服务器与客户端通信
Jan 05 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
在Python 不同级目录之间模块的调用方法
Jan 19 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
Apr 17 Python
Python生成一个迭代器的实操方法
Jun 18 Python
python实现爬取百度图片的方法示例
Jul 06 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
JavaScript的一些小技巧分享
2021/01/06 Javascript
Python生成随机数的方法
2014/01/14 Python
python获取本机外网ip的方法
2015/04/15 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
关于python2 csv写入空白行的问题
2018/06/22 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
详解python中递归函数
2019/04/16 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
广告学毕业生求职信
2014/01/30 职场文书
学生社团文化节开幕式主持词
2014/03/28 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
2014年党的群众路线活动个人整改措施
2014/10/28 职场文书
小学生差生评语
2014/12/29 职场文书
辞职信怎么写
2015/02/27 职场文书
幼儿教师辞职信
2015/02/27 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书