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生成IP段的方法
Jul 07 Python
python函数局部变量用法实例分析
Aug 04 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
python实现拓扑排序的基本教程
Mar 11 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
django创建简单的页面响应实例教程
Sep 06 Python
python实现名片管理器的示例代码
Dec 17 Python
Python的形参和实参使用方式
Dec 24 Python
pytorch ImageFolder的覆写实例
Feb 20 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
详解用Python把PDF转为Word方法总结
Apr 27 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
JavaScript Event事件学习第一章 Event介绍
2010/02/07 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
js选择器全面解析
2016/06/27 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
顶丰TOPPIK台湾官网:增发纤维假发,告别秃发困扰
2018/06/13 全球购物
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
2013英文求职信模板范文
2013/11/15 职场文书
优乐美广告词
2014/03/14 职场文书
施工协议书范本
2014/04/22 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
2014年领班工作总结
2014/11/25 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android