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中is和id的用法
Apr 03 Python
Python使用爬虫猜密码
Feb 19 Python
Python实现图片转字符画的示例代码
Aug 21 Python
简单实现python聊天程序
Apr 01 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
python读csv文件时指定行为表头或无表头的方法
Jun 26 Python
python 杀死自身进程的实现方法
Jul 01 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
python接口自动化如何封装获取常量的类
Dec 24 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
python实现学生信息管理系统源码
Feb 22 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
德生S2000电路分析
2021/03/02 无线电
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
优化 JavaScript 代码的方法小结
2009/07/16 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
JavaScript之排序函数_动力节点Java学院整理
2017/06/30 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
IRO美国官网:法国服装品牌
2018/03/06 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
大学军训感言1500字
2014/03/09 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
初中生毕业评语
2014/12/29 职场文书
工程款申请报告
2015/05/15 职场文书
工作经历证明范本
2015/06/15 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
python套接字socket通信
2022/04/01 Python
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript