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 list操作用法总结
Nov 10 Python
python实现rsa加密实例详解
Jul 19 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
Python装饰器原理与用法分析
Apr 30 Python
python3将视频流保存为本地视频文件
Jun 20 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
python Django的web开发实例(入门)
Jul 31 Python
Python shutil模块用法实例分析
Oct 02 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
python map比for循环快在哪
Sep 21 Python
Python词云的正确实现方法实例
May 08 Python
Python借助with语句实现代码段只执行有限次
Mar 23 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
常用PHP封装分页工具类
2017/01/14 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
javascript实现贪吃蛇小练习
2020/07/05 Javascript
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
详解python中eval函数的作用
2019/10/22 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
pytorch forward两个参数实例
2020/01/17 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
python中xlutils库用法浅析
2020/12/29 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
Levi’s西班牙官方网站:李维斯,著名的牛仔裤品牌
2020/08/20 全球购物
自我评价优秀范文分享
2013/11/30 职场文书
医药代表个人的求职信分享
2013/12/08 职场文书
志愿者服务感言
2014/02/27 职场文书
英文求职信范文
2014/05/23 职场文书
调研座谈会发言材料
2014/08/23 职场文书
高三英语复习计划
2015/01/19 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
学生检讨书怎么写
2015/05/07 职场文书
2015年手术室工作总结
2015/05/11 职场文书
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL