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 文件和输入输出小结
Oct 09 Python
在Python中使用PIL模块处理图像的教程
Apr 29 Python
Python中的自省(反射)详解
Jun 02 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
Python 使用类写装饰器的小技巧
Sep 30 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
python openpyxl使用方法详解
Jul 18 Python
Python中的引用和拷贝实例解析
Nov 14 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
浅谈python锁与死锁问题
Aug 14 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
简单采集了yahoo的一些数据
2007/02/14 PHP
PHP配置文件中最常用四个ini函数
2007/03/19 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别
2016/05/31 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
python实现贪吃蛇小游戏
2020/03/21 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
python3实现简单飞机大战
2020/11/29 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
北京申奥口号
2014/06/19 职场文书
创优争先心得体会
2014/09/11 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
水电工岗位职责
2015/02/14 职场文书
指导教师推荐意见
2015/06/05 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server