logging in or signing up Pet Ani Engine Aric85 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 97 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: October 10, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Cupet 动画播放引擎Pet Ani Engine: Cupet 动画播放引擎 Pet Ani Engine 引擎介绍、结构及原理 Engine Introduction,Structure and Propulsion 山贼Cupet介绍(Cupet Introduction): Cupet介绍(Cupet Introduction) Cupet是一个具有多种功能性的宠物饲养休闲娱乐游戏,即同时具有娱乐性及实用性。 娱乐性主要体现在养成上,实用性上则表现为可为用户提供更为绚丽的事件提醒上。如接打电话,收发短信等事件均会由你当前饲养的宠物表现给用户。Cupet设计结构(Main Structure): Cupet设计结构(Main Structure) 整个工程分为两部分,服务端及客户端 服务端包括事件触发器及动画播放引擎。 客户端包括用户管理界面及其他辅助程序 两部分分别都会使用及通过数据模块来得到全局信息,包括宠物状态等。 Trigger 事件触发器 PetAniEngine 动画播放引擎 UI Manager 用户管理界面 Others 其他辅助程序 Data Module 数据模块Pet Ani Engine: Pet Ani Engine 以下主要介绍Pet Ani Engine部分的功能、设计结构及实现原理。Pet Ani Engine介绍(Introduction): Pet Ani Engine介绍(Introduction) Pet Ani Engine Cupet在用户待机状态及事件触发下唯一表现宠物的媒介。 功能 动画组织及数据整理 用户手机待机画面中的动画播放Pet Ani Engine 结构(Structure): Pet Ani Engine 结构(Structure) 引擎结构分为四个部分,分别为绘图引擎,屏幕处理模块,数据处理模块,动画组织模块。为了能将功能性模块抽象,也可以将引擎分为两大部分,支持库及实例操作对象。 Pet Ani Lib ------------------------------------------- Pet Ani Engine ------------------------------------ 绘图引擎 数据处理 模块 动画组织 模块 屏幕处理 模块 引擎运行Pet Ani Engine运转模式(Run Mode): Pet Ani Engine运转模式(Run Mode) 运行模式图 接受指令 启动数据模块 读取必要数据 启动动画组织模块 组织动画 启动绘图引擎 启动屏幕处理引擎 绘制动画序列数据模块(Data Module): 数据模块(Data Module) 该模块包括对动画数据、动画源数据及全局配置信息的存取。 所有相关数据使用ini方式存储,一种简单有效的数据存取方式。 Ini 格式 [Section] Key=value 动画 Animation: 动画 Animation Pet Ani Engine使用的动画是一串有结构的动画关键桢序列,类似于Flash的动画结构 关键桢 Key Frame ------------------------ 动画源 坐标 生存桢数 翻转标志 Alpha混合信息 缩放尺寸 文本讯息 文本显示位置 关键桢 Key Frame 关键桢 Key Frame 关键桢 Key Frame桢的组织 Frame organization: 桢的组织 Frame organization 关键桢是构成动画的基本,相对于动画中实际的桢来说关键桢是一个抽象的,所以播放之前是需要将关键桢序列组织成为一个连续的动画,这部分由动画组织模块Pet Script来完成,组织机制很简单,将当前关键桢与下一关键桢进行计算,根据生存桢数可以得到一个当前关键桢延续至下一关键桢的时间,通过两关键桢的位置可以得到距离,然后计算速度便可得到动画桢序列,这些计算还包括Alpha混合及缩放尺寸的动画变化。动画源 Animation Resource: 动画源 Animation Resource 动画源是组成关键桢的元素,这里选择使用Gif作为动画源,原因很简单,关键桢序列结构过于简单,无法承载复杂的动画表现,Gif动画本身是一个包含若干桢组成的动画序列,这样便弥补的拓展关键桢序列的不足。动画编辑器Pet Script Editor: 动画编辑器Pet Script Editor 该动画编辑器提供可视化的动画编辑及数据整合工作。绘图引擎 JBitmapUtil: 绘图引擎 JBitmapUtil 绘图引擎功能包括 绘制点、线、面 绘制位图 Alpha混合 缩放绘制基础: 绘制基础 绘制基础针对显示屏等输出设备而言的位图设置,即输出设备相对我们来说只是一个向量表,或者可以称之为显存。绘制的过程其实只是在设置这个表格中的值。 Pet Ani Engine依据此绘图基础,将动画序列中的每一个桢的动画依次绘制到屏幕上形成动画。屏幕处理模块: 屏幕处理模块 屏幕处理包括两部分,屏幕获取及屏幕绘制,这是整个引擎最为复杂的部分。 在Symbian 2.0时代,可以使用同一个方法来实现上述两部分的功能。而3.0中,屏幕获取的显存已经不能被用户修改了。屏幕绘制原理: 屏幕绘制原理 首先为了能够能绘制一个镂空的图片到屏幕上,根据以往做游戏的经验,应该是需要绘制一下背景,然后设置图片镂空颜色或者称之为蒙版颜色,最后画图片,至下一桢时我们仍然需要重复该操作。但是当需要直接绘制到屏幕上并且不能与其他程序所绘制的图像产生冲突以及更有效率的时候,则需要另外一种解决方案。 局部重载精灵绘制: 局部重载精灵绘制 这种机制是由使用前一桢屏幕缓存覆盖屏幕修改部分、保存当前屏幕缓存、绘制精灵几个步骤完成,这样既能保证精灵绘制到屏幕上时不会导致屏幕因其他因素修改而绘制错误,并且也提高了绘制效率。多精灵绘制: 多精灵绘制 多精灵绘制是在上述基础上的拓展,将绘制步骤再次分解,将保存屏幕信息和覆盖屏幕缓存进行多次操作后,再绘制诸多精灵,基于效率上的考虑,目前只支持两个精灵。总结及拓展: 总结及拓展 该引擎主要特点是动画组织及绘制方式,根据其原理可将应用于各种平台的屏幕精灵绘制。 缺陷:多数程序并非直接操纵显存,而是使用系统提供(GDI)方式绘制,这就导致在这种程序修改屏幕到显存改变上存在时间差,这个时间差会导致屏幕在保存缓存及使用缓存覆盖屏幕修改部分时绘制错误,即覆盖在屏幕上的缓存不是最新的显存信息。 应用拓展,游戏中的应用,在不需要全屏重新刷新的情况下这种局部刷新有效的提高了绘制效率,而且如果游戏中的绘制均使用直接修改显存的方式绘制,也可以弥补上述缺陷。Thanks! Who’s Next: Thanks! Who’s Next You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
Pet Ani Engine Aric85 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 97 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: October 10, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Cupet 动画播放引擎Pet Ani Engine: Cupet 动画播放引擎 Pet Ani Engine 引擎介绍、结构及原理 Engine Introduction,Structure and Propulsion 山贼Cupet介绍(Cupet Introduction): Cupet介绍(Cupet Introduction) Cupet是一个具有多种功能性的宠物饲养休闲娱乐游戏,即同时具有娱乐性及实用性。 娱乐性主要体现在养成上,实用性上则表现为可为用户提供更为绚丽的事件提醒上。如接打电话,收发短信等事件均会由你当前饲养的宠物表现给用户。Cupet设计结构(Main Structure): Cupet设计结构(Main Structure) 整个工程分为两部分,服务端及客户端 服务端包括事件触发器及动画播放引擎。 客户端包括用户管理界面及其他辅助程序 两部分分别都会使用及通过数据模块来得到全局信息,包括宠物状态等。 Trigger 事件触发器 PetAniEngine 动画播放引擎 UI Manager 用户管理界面 Others 其他辅助程序 Data Module 数据模块Pet Ani Engine: Pet Ani Engine 以下主要介绍Pet Ani Engine部分的功能、设计结构及实现原理。Pet Ani Engine介绍(Introduction): Pet Ani Engine介绍(Introduction) Pet Ani Engine Cupet在用户待机状态及事件触发下唯一表现宠物的媒介。 功能 动画组织及数据整理 用户手机待机画面中的动画播放Pet Ani Engine 结构(Structure): Pet Ani Engine 结构(Structure) 引擎结构分为四个部分,分别为绘图引擎,屏幕处理模块,数据处理模块,动画组织模块。为了能将功能性模块抽象,也可以将引擎分为两大部分,支持库及实例操作对象。 Pet Ani Lib ------------------------------------------- Pet Ani Engine ------------------------------------ 绘图引擎 数据处理 模块 动画组织 模块 屏幕处理 模块 引擎运行Pet Ani Engine运转模式(Run Mode): Pet Ani Engine运转模式(Run Mode) 运行模式图 接受指令 启动数据模块 读取必要数据 启动动画组织模块 组织动画 启动绘图引擎 启动屏幕处理引擎 绘制动画序列数据模块(Data Module): 数据模块(Data Module) 该模块包括对动画数据、动画源数据及全局配置信息的存取。 所有相关数据使用ini方式存储,一种简单有效的数据存取方式。 Ini 格式 [Section] Key=value 动画 Animation: 动画 Animation Pet Ani Engine使用的动画是一串有结构的动画关键桢序列,类似于Flash的动画结构 关键桢 Key Frame ------------------------ 动画源 坐标 生存桢数 翻转标志 Alpha混合信息 缩放尺寸 文本讯息 文本显示位置 关键桢 Key Frame 关键桢 Key Frame 关键桢 Key Frame桢的组织 Frame organization: 桢的组织 Frame organization 关键桢是构成动画的基本,相对于动画中实际的桢来说关键桢是一个抽象的,所以播放之前是需要将关键桢序列组织成为一个连续的动画,这部分由动画组织模块Pet Script来完成,组织机制很简单,将当前关键桢与下一关键桢进行计算,根据生存桢数可以得到一个当前关键桢延续至下一关键桢的时间,通过两关键桢的位置可以得到距离,然后计算速度便可得到动画桢序列,这些计算还包括Alpha混合及缩放尺寸的动画变化。动画源 Animation Resource: 动画源 Animation Resource 动画源是组成关键桢的元素,这里选择使用Gif作为动画源,原因很简单,关键桢序列结构过于简单,无法承载复杂的动画表现,Gif动画本身是一个包含若干桢组成的动画序列,这样便弥补的拓展关键桢序列的不足。动画编辑器Pet Script Editor: 动画编辑器Pet Script Editor 该动画编辑器提供可视化的动画编辑及数据整合工作。绘图引擎 JBitmapUtil: 绘图引擎 JBitmapUtil 绘图引擎功能包括 绘制点、线、面 绘制位图 Alpha混合 缩放绘制基础: 绘制基础 绘制基础针对显示屏等输出设备而言的位图设置,即输出设备相对我们来说只是一个向量表,或者可以称之为显存。绘制的过程其实只是在设置这个表格中的值。 Pet Ani Engine依据此绘图基础,将动画序列中的每一个桢的动画依次绘制到屏幕上形成动画。屏幕处理模块: 屏幕处理模块 屏幕处理包括两部分,屏幕获取及屏幕绘制,这是整个引擎最为复杂的部分。 在Symbian 2.0时代,可以使用同一个方法来实现上述两部分的功能。而3.0中,屏幕获取的显存已经不能被用户修改了。屏幕绘制原理: 屏幕绘制原理 首先为了能够能绘制一个镂空的图片到屏幕上,根据以往做游戏的经验,应该是需要绘制一下背景,然后设置图片镂空颜色或者称之为蒙版颜色,最后画图片,至下一桢时我们仍然需要重复该操作。但是当需要直接绘制到屏幕上并且不能与其他程序所绘制的图像产生冲突以及更有效率的时候,则需要另外一种解决方案。 局部重载精灵绘制: 局部重载精灵绘制 这种机制是由使用前一桢屏幕缓存覆盖屏幕修改部分、保存当前屏幕缓存、绘制精灵几个步骤完成,这样既能保证精灵绘制到屏幕上时不会导致屏幕因其他因素修改而绘制错误,并且也提高了绘制效率。多精灵绘制: 多精灵绘制 多精灵绘制是在上述基础上的拓展,将绘制步骤再次分解,将保存屏幕信息和覆盖屏幕缓存进行多次操作后,再绘制诸多精灵,基于效率上的考虑,目前只支持两个精灵。总结及拓展: 总结及拓展 该引擎主要特点是动画组织及绘制方式,根据其原理可将应用于各种平台的屏幕精灵绘制。 缺陷:多数程序并非直接操纵显存,而是使用系统提供(GDI)方式绘制,这就导致在这种程序修改屏幕到显存改变上存在时间差,这个时间差会导致屏幕在保存缓存及使用缓存覆盖屏幕修改部分时绘制错误,即覆盖在屏幕上的缓存不是最新的显存信息。 应用拓展,游戏中的应用,在不需要全屏重新刷新的情况下这种局部刷新有效的提高了绘制效率,而且如果游戏中的绘制均使用直接修改显存的方式绘制,也可以弥补上述缺陷。Thanks! Who’s Next: Thanks! Who’s Next