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使用正则表达式检测密码强度源码分享
Jun 11 Python
python多进程操作实例
Nov 21 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
appium+python adb常用命令分享
Mar 06 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
Python基于gevent实现高并发代码实例
May 15 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
Django数据统计功能count()的使用
Nov 30 Python
Django集成MongoDB实现过程解析
Dec 01 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 #Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
python 利用 PIL 将数组值转成图片的实现
python实现网络五子棋
python实现简易名片管理系统
Apr 11 #Python
python 自动化偷懒的四个实用操作
python Tkinter的简单入门教程
You might like
用PHP制作静态网站的模板框架
2006/10/09 PHP
php 生成文字png图片的代码
2011/04/17 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
初识PHP中的Swoole
2016/04/05 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
php实现session共享的实例方法
2019/09/19 PHP
arguments对象
2006/11/20 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Django工程的分层结构详解
2019/07/18 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
python 录制系统声音的示例
2020/12/21 Python
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
会计系中文个人求职信
2013/12/24 职场文书
2014年中学生检讨书大全
2014/10/09 职场文书
大一新生检讨书
2014/10/29 职场文书
运动会表扬稿
2015/01/16 职场文书
稽核岗位职责
2015/02/10 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers