我不完全了解如何正确使用画布与动画图像.

请参阅附件中的代码片段,我将动画图标加载到图片中并同时执行以下操作:

(1)add_widget图片

(2)创建一个带有texture = Image纹理的Rectangle画布指令

图像动画

矩形纹理没有

我已经阅读了所有Kivy手册并阅读了Image和Canvas,我认为Image是一个很好的高级类,所有这些图像动画处理和Canvas更像是一个原始的低级绘图画布.

所以这是我的问题 – 在Canvas上处理动画的Kivy正确架构是什么?我看了动画,但这似乎更像矩阵般的动画,如平移,缩放,旋转.

这是我现在正在做的事情:

我有一个带有大地图窗口的游戏,然后是辅助窗口中的一堆游戏用户体验

游戏UX助手窗口我做所有kivy布局等,并使用一般图像,所以我的图标很好地动画

但是在游戏地图中,我使用的是canvas:

使用此范例绘制我的所有游戏对象:

r=Rectangle(texture=some_Image.texture)

map.canvas.add(r)

当世界需要重新绘制时:

1)map.canvas.clear()

2)在新的位置和状态中绘制所有的东西

(为了更快,我应该只追踪肮脏的物体和位置,然后绘制它们,但老实说,即使每次抽奖时核心级别清晰,我也会获得出色的fps)

这当然比创建和销毁数百个小部件类要快得多,重量轻 – 地图画布用于什么 – 对吧?

但问题是我在zip文件中带动画的图标不是动画

问:我认为画布错了吗?我应该为每个游戏对象添加一个图像吗? (并利用所有动画图像支持?)

from kivy.uix.relativelayout import RelativeLayout

from kivy.uix.image import Image

from kivy.app import App

from kivy.graphics import Rectangle

class MainApp(App):

def __init__(self, **kwargs):

super().__init__(**kwargs)

self.root = RelativeLayout()

# use any zip file of an animated image

self.animated_icon = Image(source='factory_icon.zip')

# If I add an Image, the icon animates

self.root.add_widget(self.animated_icon)

# If I add the Image's texture on to a Rectangle instruction, no animation

r = Rectangle(texture=self.animated_icon.texture, size=(100, 100), pos=(100, 100))

self.root.canvas.add(r)

def build(self):

return self.root

if __name__ == '__main__':

MainApp().run()

python kivy canvas_python – Kivy:使用canvas为动画设置动画的正确方法是什么?相关推荐

  1. Silverlight学习笔记三(鼠标点击动态画直线|动态设置Ellipse的Canvas.Top与Canvas.Left|动态设置Stroke属性的方法。)...

    我有可能需要把AutoCAD的部分功能搬到浏览器上,先练习一下画直线的方法.如图: MainPage.xaml代码: 大气象 <UserControl x:Class="DrawLin ...

  2. python做散点图界面_python – 如何为散点图设置动画?

    假设你有一个散点图,scat = ax.scatter(-),那么你可以 >改变立场 scat.set_offsets(array) 其中数组是x和y坐标的N x 2形数组. >改变大小 ...

  3. python分割字符串中文_python 分割中文英文混合字符串的正确方法

    python 里的字符编码不统一导致中英文的处理有不同的结果,下面介绍中文英文混合字符串 split 的方法. 分割词 #!/usr/bin/env python # -*- coding: utf- ...

  4. 【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )

    文章目录 ◯.AnimatedBuilder 引入 一.创建动画控制器 二.创建动画 三.创建动画作用的组件 四.创建 AnimatedBuilder 关联动画与组件 五.动画运行 六.完整代码示例 ...

  5. 【Flutter】Animation 动画 ( AnimatedWidget 动画使用流程 | 创建动画控制器 | 创建动画 | 创建 AnimatedWidget 动画组件 | 动画运行 )

    文章目录 ◯.AnimatedWidget 组件引入 一.创建 AnimatedWidget 动画组件 二.创建动画控制器 三.创建动画 四.动画运行 五.完整代码示例 六.相关资源 Animated ...

  6. 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )

    文章目录 一.创建动画控制器 二.创建动画 三.设置值监听器 四.设置状态监听器 五.布局中使用动画值 六.动画运行 七.完整代码示例 八.相关资源 Flutter 动画基本流程 : ① 创建动画控制 ...

  7. 【Flutter】Animation 动画 ( Flutter 动画的核心类 | Animation | CurvedAnimation | AnimationController | Tween )

    文章目录 一.动画的核心类 Animation 二.动画的核心类 CurvedAnimation 三.动画的核心类 AnimationController 四.动画的核心类 Tween 五.相关资源 ...

  8. 第三章 Python Kivy 学习 -- Kivy官方入门教程Pong Game

    系列文章目录 第一章 Python Kivy 学习 – Kivy介绍及环境安装 第二章 Python Kivy 学习 – Kivy项目开发原理(待编辑) 第三章 Python Kivy 学习 – Ki ...

  9. python编程(Kivy 安装及使用教程)

    Kivy是一个很优秀的,基于Python的GUI库,可以利用Python快速编程的特点,快速的编写windows, linux, mac, android, ios等主流平台的应用程序.同wxPyth ...

最新文章

  1. git常用命令的使用
  2. mysql 查询某字段值全是数字
  3. Android: BaseAdapter 实现分页
  4. python 字符串格式符
  5. mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法
  6. 40行中的持久性KeyValue Server和一个可悲的事实
  7. [scikit-learn 机器学习] 3. K-近邻算法分类和回归
  8. 在c语言中预处理命令行都以井号开头,以井号开头的行和gcc预处理器输出中的'#1“ac”'之类的数字是什么意思?...
  9. sqlserver函数 1209
  10. Osql\sqlcmd工具管理 SQL Server
  11. Asp.net网站如何播放Flv视频
  12. BEAMnrc参数设置_MainInputs(3)
  13. mybatis使用log4j
  14. Android Stdio4.1.1版本使用问题
  15. 淘宝店铺的装修是店铺的门面,如何进行淘宝店铺装修?需要注意的点有哪些?
  16. 阿里小蜜这一年,经历了哪些技术变迁?
  17. 组卷与考试系统_题库添加选择题模块
  18. 后台管理UI集合--你知道哪些
  19. MeshLab 2022.02 源码编译教程
  20. .NET开发十大常用工具软件分享

热门文章

  1. python3怎么安装mysql_Python3下mysqlclient的安装和使用
  2. 数据可视化的图表实现
  3. centos7安装xterm_CentOS 7使用x-manager中Xstart工具报缺少xterm包错误
  4. python的django框架http请求_python django框架(一)
  5. python万年历_python万年历
  6. SpingMVC Model 和ModelAndView,以及从参数的设置和接收
  7. python快速运算符_Python基本运算符
  8. Win32下显示、隐式加载DLL的方法
  9. client中周期性边界_RVE周期性边界条件施加
  10. Abp VNext 项目创建简介