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多线程http下载实现示例
Dec 30 Python
Python使用爬虫猜密码
Feb 19 Python
Python正则表达式完全指南
May 25 Python
关于python的list相关知识(推荐)
Aug 30 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
使用pip安装python库的多种方式
Jul 31 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
Python图片的横坐标汉字实例
Dec 04 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
WHOIS类的修改版
2006/10/09 PHP
php将日期格式转换成xx天前的格式
2015/04/16 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
javascript类型转换示例
2014/04/29 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
python模块restful使用方法实例
2013/12/10 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
Python文件路径名的操作方法
2019/10/30 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
python破解同事的压缩包密码
2020/10/14 Python
加拿大最大的箱包及旅游配件零售商:Bentley Leathers
2017/07/19 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
幼儿师范毕业生自荐信
2013/11/09 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
护理专业求职信
2014/06/15 职场文书
初中英语教学随笔
2015/08/15 职场文书
python实现简单聊天功能
2021/07/07 Python