python编写弹球游戏的实现代码
#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编写弹球游戏的实现代码的更多相关文章
- [python] python实现2048游戏,及代码解析。
我初学python,有不对之处望大家指教.转载请征得同意. 我在网络上也找了一些2048游戏代码的讲解,但都不是特别详细.所以我希望能够尽量详细的讲解.同时,有的地方我也不懂,希望大家能帮助补充.我会 ...
- 使用html+css+js实现弹球游戏
使用html+css+js实现弹球游戏 效果图: 代码如下,复制即可使用: <!doctype html> <head> <style type="text/c ...
- Python编写两个数的加减法游戏
目标: 1.实现两个数的加减法 2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续 1.使用常规函数实现两个数的加减法游戏 代码如下: #!/usr/bin/env python # - ...
- 【编程教室】PONG - 100行代码写一个弹球游戏
大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...
- 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!
本文主要展示的是通过使用python和PyInstaller来构建恶意软件的一些poc. 利用Python编写Windows恶意代码!自娱自乐!勿用于非法用途!众所周知的,恶意软件如果影响到了他人的生 ...
- Python 练习项目1 弹球游戏
这几天学习了python的基础知识,然后参考了网上的一些资料,完成了一个自己的小游戏,弹球游戏比较简单,但却具备了一些游戏的普遍特征,对于初学者是一个比较合适的锻炼的项目. 下面是效果图: 完整程序: ...
- Effective Python 编写高质量Python代码的59个有效方法
Effective Python 编写高质量Python代码的59个有效方法
- 疯狂java实战演义 弹球游戏代码
package org.crazyit.ball; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; ...
- Python编写网页爬虫爬取oj上的代码信息
OJ升级,代码可能会丢失. 所以要事先备份. 一開始傻傻的复制粘贴, 后来实在不能忍, 得益于大潇的启示和聪神的原始代码, 网页爬虫走起! 已经有段时间没看Python, 这次网页爬虫的原始代码是 p ...
随机推荐
- 搭建SSM环境(淘淘商城)
本文用到的资料: 链接:https://pan.baidu.com/s/1Pk_aI_PRbqRFP9i3o9Xodg 提取码:o4o4 1.1. 数据库 1.1.1. 使用navicat创建数据库连 ...
- Entity Framewrok Migration 重置
转载自:https://weblog.west-wind.com/posts/2016/jan/13/resetting-entity-framework-migrations-to-a-clean- ...
- asp.net类似于js中的setTimeOut()的函数作用?
asp.net类似于js中的setTimeOut()的函数作用? 插入这行即可,定时2秒,再运行下一步: System.Threading.Thread.Sleep(); 加个随机数 Random r ...
- 【原创】大叔经验分享(86)hive和mysql数据互导
hive和mysql数据互导,首先想到的是sqoop,并且可以和调度框架(比如oozie等)配合配置定时任务,还有一种更简单的方式是通过spark-sql: CREATE OR REPLACE TEM ...
- reference website
reference website cplusplus http://www.cplusplus.com/reference/ cppreference https://en.cppreference ...
- 使用shared memory 计算矩阵乘法 (其实并没有加速多少)
#include "cuda_runtime.h" #include "device_launch_parameters.h" #include "d ...
- list通过lambda 表达式去重,筛选
List<User> distinctList = new ArrayList();User user1 = new User();user1.setId("111") ...
- 34. Find First and Last Position of Element in Sorted Array + 二分
题意懒得抄了,大概是:在升序数组中给定整数target,找到第一个和最后一个target的索引,找到返回{index1, index2},否则返回{-1, -1}: 时间复杂度要求:O(logn) 分 ...
- dfs · leetcode-22.产生括号组?
题面 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...
- svm 简单明了的入门级使用教程(转载)
如何使用libsvm进行分类 这帖子就是初步教教刚接触libsvm(svm)的同学如何利用libsvm进行分类预测,关于参数寻优的问题在这里姑且不谈,另有帖子详述. 其实使用libsvm进行分类很 ...