IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> python canvas动画 -> 正文阅读

[游戏开发]python canvas动画

专业视觉设计师,5年b端产品经理职业生涯,最近痴迷于编程,追求全栈工程师,厚积薄发。励志一个月玩转python GUI。记录下自学过程,纯属单纯的喜欢编程,与大家分享。
先来个简单的canvas动画:桌面弹力球
在这里插入图片描述
源码:
import tkinter
import random
root=tkinter.Tk()
root.title(“envent”)
root.geometry(“400x300+10+10”)
hb=tkinter.Canvas(root,width=400,height=300,bg="#189fff")
hb.pack()
oval = hb.create_oval(0, 0,16,16, fill=“red”,outline="")
pzzt=[0,1,1]#状态(0,1,2,3)如下,随机移动x,随机移动y
def callback(canvas=hb,canvas_w=400,canvas_h=300,r=10,state=pzzt):
zb = canvas.bbox(oval) #获取小球坐标
#—条件-----------------------
if zb[2]>=canvas_w or (zb[2]==canvas_w and zb[3]==r):#撞击右边-修改状态向左 or 撞击NE ;修改状态,向SW
state[0]=1
state[1] = random.randint(1,2)
state[2] = random.randint(1,2)
elif zb[0]<=0 or (zb[0]==0 and zb[2]==canvas_h-r):#撞击左边-修改状态向右 or 撞击SW ;修改状态,向NE
state[0]=0
state[1] = random.randint(1,3)
state[2] = random.randint(3,6)
elif zb[1]<=0 or (zb[0]==0 and zb[1]==0):#撞击上边-修改状态向下 or 撞击NW ;修改状态,向SE
state[0] = 2
state[1] = random.randint(3,6)
state[2] = random.randint(1,3)
elif zb[3]>=canvas_h or (zb[2]==canvas_w and zb[3]==canvas_h):#撞击下边-修改状态向上 or 撞击SE ;修改状态,向NW
state[0] = 3
state[1] = random.randint(1,5)
state[2] = random.randint(10,20)
# —运动-----------------------
if state[0]==0:
canvas.move(oval,state[1],-state[2]) #向右、向上、或指向NE —正负
elif state[0]==1:
canvas.move(oval,-state[1],state[2]) #向左、向下、向SW —负正
elif state[0]==2:
canvas.move(oval,state[1],state[2]) #向下、向右、指向SE —正正
elif state[0]==3:
canvas.move(oval,-state[1],-state[2]) #向上、向左、指向NW —负负
canvas.after(30,callback)
callback()
root.mainloop()

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:59:26  更:2021-09-22 15:00:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 4:44:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码