python实现简单反弹球游戏

 更新时间:2021年04月12日 11:18:19   作者:匿名用户__  
这篇文章主要为大家详细介绍了python实现简单反弹球游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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判断List中是否包含某个元素

    Python判断List中是否包含某个元素

    在Python中,判断一个列表(List)是否包含某个特定元素是常见的任务之一,本文就来介绍一下多种判断List成员包含性的方法,并提供丰富的示例代码,以帮助大家更好地理解和运用这些技术
    2023-12-12
  • python爬虫之利用selenium+opencv识别滑动验证并模拟登陆知乎功能

    python爬虫之利用selenium+opencv识别滑动验证并模拟登陆知乎功能

    本文给大家介绍python爬虫之利用selenium+opencv识别滑动验证并模拟登陆知乎功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • 一篇文章教你用python画动态爱心表白

    一篇文章教你用python画动态爱心表白

    这篇文章主要给大家介绍了关于如何用python画动态爱心表白的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    这篇文章主要介绍了pytorch中的nn.Sequential(*net[3: 5])是啥意思,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • anaconda jupyter不能导入安装的lightgbm解决方案

    anaconda jupyter不能导入安装的lightgbm解决方案

    这篇文章主要介绍了anaconda jupyter不能导入安装的lightgbm解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 利用python3 的pygame模块实现塔防游戏

    利用python3 的pygame模块实现塔防游戏

    这篇文章主要介绍了利用python3 的pygame模块实现塔防游戏,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Python pandas的describe函数参数示例详解

    Python pandas的describe函数参数示例详解

    describe()函数是pandas 中一个十分实用的工具,用于快速获取数据集的描述性统计信息,本文详细介绍了该函数的各种参数及其用法,包括控制输出的百分位数、列类型以及是否将日期时间列视为数值型列等,感兴趣的朋友一起看看吧
    2018-04-04
  • Python如何使用Eel和HTML开发桌面应用

    Python如何使用Eel和HTML开发桌面应用

    这篇文章主要介绍了Python使用Eel和HTML开发桌面应用问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 只需要100行Python代码就可以实现的贪吃蛇小游戏

    只需要100行Python代码就可以实现的贪吃蛇小游戏

    贪吃蛇小游戏相信80、90后小时候肯定都玩过,那么你知道如果通过Python来实现吗?今天就来教大家,文中有非常详细的代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • python str字符串转uuid实例

    python str字符串转uuid实例

    这篇文章主要介绍了python str字符串转uuid实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论