#coding:utf-
from tkinter import *
import random
import time class Ball:
#创建一个球类
def __init__(self, canvas, color):
self.canvas = canvas
self.id = canvas.create_oval(, , , , fill=color)
#返回刚好划小球的id,create_oval创建一个椭圆
self.canvas.move(self.id, , )
#把椭圆移动到画布
starts = [-, -, -, , , ]
random.shuffle(starts)
#随机排列
self.x = starts[]
self.y = -
self.canvas_height = self.canvas.winfo_height()
#获取画布当前高度
self.canvas_width = self.canvas.winfo_width()
#获取画布当前宽度
def draw(self):
self.canvas.move(self.id, self.x, self.y)
#让小球水平和垂直移动
pos = self.canvas.coords(self.id)
#coords返回画布上画好的x和y坐标 #判断小球是否撞到画布顶部或者底部,保证小球反弹回去,不消失
if pos[] <= :
self.y =
if pos[] >= self.canvas_height:
self.y = -
if pos[] <= :
self.x =
if pos[] >= self.canvas_width:
self.x = - tk = Tk()
tk.title("Game") tk.resizable(, )
#窗口大小不可调整
tk.wm_attributes("-topmost", )
#使画布窗口置于所有窗口之前
canvas = Canvas(tk,width=, height=, bd=, highlightthickness=)
#bd和highlighttthickness是为了保证画布没有边框
canvas.pack()
tk.update()
#动画初始化 ballone = Ball(canvas, 'red')
balltwo = Ball(canvas, 'blue') while :
#画布一出现会马上消失,为了防止画布消失,用tkinter一直重画
ballone.draw()
balltwo.draw()
tk.update_idletasks()
tk.update()
time.sleep(0.01)

效果

参考:

https://blog.csdn.net/qq_23948283/article/details/51637406?utm_source=blogxgwz6

python编写弹球游戏的实现代码的更多相关文章

  1. [python] python实现2048游戏,及代码解析。

    我初学python,有不对之处望大家指教.转载请征得同意. 我在网络上也找了一些2048游戏代码的讲解,但都不是特别详细.所以我希望能够尽量详细的讲解.同时,有的地方我也不懂,希望大家能帮助补充.我会 ...

  2. 使用html+css+js实现弹球游戏

    使用html+css+js实现弹球游戏 效果图: 代码如下,复制即可使用: <!doctype html> <head> <style type="text/c ...

  3. Python编写两个数的加减法游戏

    目标: 1.实现两个数的加减法 2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续 1.使用常规函数实现两个数的加减法游戏 代码如下: #!/usr/bin/env python # - ...

  4. 【编程教室】PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  5. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!

    本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...

  6. Python 练习项目1 弹球游戏

    这几天学习了python的基础知识,然后参考了网上的一些资料,完成了一个自己的小游戏,弹球游戏比较简单,但却具备了一些游戏的普遍特征,对于初学者是一个比较合适的锻炼的项目. 下面是效果图: 完整程序: ...

  7. Effective Python 编写高质量Python代码的59个有效方法

    Effective Python 编写高质量Python代码的59个有效方法

  8. 疯狂java实战演义 弹球游戏代码

    package org.crazyit.ball; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; ...

  9. Python编写网页爬虫爬取oj上的代码信息

    OJ升级,代码可能会丢失. 所以要事先备份. 一開始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启示和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 p ...

随机推荐

  1. 将mdf文件copy到docker对应的目录下

    将mdf文件copy到docker对应的目录下: (<Docker-Container ID> 需要整体替换) docker cp /Users/Jay/Works/db/MyPost.m ...

  2. cmd查找端口占用情况

    查找端口占用情况:netstat -ano|findstr 4848 查看使用指定端口的应用程序:tasklist|findstr xxxx,xxxx指的是pid 结束指定进程:taskkill /p ...

  3. 【轻松一刻】Java制作字符动画

    前言 今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横.正当在感叹之际,突然发现在“马克思”文件夹下出现了一个好玩的项目,那就是N年前刚学Java时写的 ...

  4. github 远程仓库名或地址修改,本地如何同步

    1. 背景 远程服务器迁移,服务器IP改变:或者远程仓库名变更,导致本地仓库失效.如何在原有仓库的基础上让本地仓库和新的远程仓库建立关联. 例如: 本地git项目目录为:SingTel/ 本地添加的远 ...

  5. flask的多个url对应同一个视图函数

    # -*- coding: utf-8 -*- from flask import Flask app = Flask(__name__) @app.route('/') def index(): r ...

  6. spring-security2配置精讲(转载)

    本文转载自牛人downpour的帖子: http://www.iteye.com/topic/319965 Spring 论坛上看了不少Spring Security的相关文章.这些文章基本上都还是基 ...

  7. DNSMaper 一款子域名枚举与地图标记工具

    DNSMaper DNSMaper拥有与众多子域名枚举工具相似的功能,诸如域传送漏洞检测,子域名枚举,IP地址获取 文件说明├── dnsmaper.py(核心代码)├── dnsmapper.png ...

  8. 配置由Spring处理json乱码

    <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> < ...

  9. RT-Thread--简介

    RT-Thread 概述 RT-Thread,全称是 Real Time-Thread,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行,但并不是真正的同时运行,而是宏 ...

  10. 数据库连接池,DBUtil的模板,dbcp,c3p0

    数据库连接池,DBUtil的模板,Druid使用(重点) 一.DBUtil模板 public class DBUtilTest { public static Connection connectio ...