引用
描述:
'As3游戏数据结构’是一个包含了许多常见的用于Flash游戏的编程和应用开发的数据结构包。我做该项目的起因是因为我想要一个统一库来用于我的游戏。
Collections
几乎所有的类都实现了Collection 接口,它定义了以下几种方法:
contains(obj:*), 检测元素是否存在.clear(), 清空所有的元素.
getIterator(), 获得一个包含所有元素的Iterator对象
toArray(), 获得一个包含所有元素的Array对象
使用 Iterators
每一个实现了Collection 接口的类都能通过getIterator()方法来获得一个iterator 对象,一但你有一个iterator对象,你就能通过以下等例子来存取数据。
var myItr:Iterator = getIterator();
var value:*;
//read all values
while (myItr.hasNext())
{
value = myItr.next();
}
//write new value
myItr.start();
while (myItr.hasNext())
{
myItr.data = "newValue";
next();
}
//the same with a for loop
for (myItr.start(); myItr.hasNext(); myItr.next())
{
value = myItr.data;
}
请记住,iterator是基本一个迭代器,一些类还提供更复杂的处理,比如链表或树。这是必要的,因为你可以用在更多的迭代方向(来回,背部,上,下.. ) 。(ps。游戏中的人物控制)。你获得那些iterator不成功或者调用一个特殊的方法。(这句不懂怎么翻译)
var listItr:ListIterator = myLinkedList.getIterator() as ListIterator;
var listItr:ListIterator = myLinkedList.getListIterator();
数据结构:(这里没有翻译,但是给出了各个类的大概意思,资料来源于网络)
多维数组
该库包含一个二维数组和三维数组类,他们都是执行单一线性阵列,而不是嵌套的数组。这是最快的方法在Flash模拟多维数组和优于嵌套数组方法,因为多个阵列查找是比较慢的一个查找加上一个简单的算术表达式(这你也可以经常precompute在外环).该类最常用于2d或者3d地图。
队列
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。
(1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(即不允许"加塞"),每次离开的成员总是队列头上的(不允许中途离队),即当前"最老的"成员离队。
栈
栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Last In First Out)的线性表,简称为LIFO表。栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。
树
树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。 树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。 树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。
二叉树
二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。
二叉排序树和哈希表
二叉排序树和哈希表用于查找元素,其内部结构不同,通过不同的实现使其查找应用不相同。
单链表
链接方式存储的线性表简称为链表(Linked List)。 链表的具体存储表示为: ① 用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link)) 注意: 链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。
链表的结点结构 ┌──┬──┐ │data│next│ └──┴──┘ data域--存放结点值的数据域 next域--存放结点的直接后继的地址(位置)的指针域(链域) 注意: ①链表通过每个结点的链域将线性表的n个结点按其逻辑顺序链接在一起的。 ②每个结点只有一个链域的链表称为单链表(Single Linked List)。
堆和堆队列
堆:堆是一个特殊的二叉树,它的每一个节点都比子节点大。
堆队列:一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。优先级队列不允许使用 null 元素。依靠自然顺序的优先级队列还不允许插入不可比较的对象。
图
图(Graph)是一种复杂的非线性结构。
位向量
位向量是按位存储的向量.
分享到:
相关推荐
掌握这些数据结构对于开发AS3应用至关重要,无论是游戏、动画还是交互式内容,都需要根据实际需求选择合适的数据结构以优化性能和代码结构。通过阅读提供的中文注释,学习者可以更好地理解和应用这些概念。
在游戏设计中,数据结构是至关重要的组成部分,它关乎到...总之,理解并熟练运用各种数据结构是提升AS游戏设计水平的关键。在实践中不断探索和优化,结合实际需求选择合适的数据结构,是每个专业游戏开发者必备的技能。
AS3扫雷游戏是一款基于ActionScript 3.0(AS3)编程语言开发的经典小游戏,旨在帮助初学者理解和掌握AS3的基本语法、事件处理、显示对象以及游戏逻辑。以下是关于AS3扫雷游戏的一些关键知识点: 1. **ActionScript ...
AS3的`DisplayObject`类体系结构和`Sprite`、`MovieClip`类可用于创建这些元素。 4. **数据存储**:物品信息(如ID、类型、数量)需要存储。AS3中的`Object`或自定义类可以用来表示物品属性,而`Array`或`Vector`...
《严蔚敏数据结构》是计算机科学领域经典的数据结构教材,而此处提到的"严蔚敏数据结构asf视频的音频解码"则涉及到多媒体处理和计算机编程中的一个重要概念——音视频编码与解码。 ASF(Advanced Systems Format)...
10. **数据结构与算法**:可能涉及到数组、链表等数据结构的使用,以及搜索、排序等基础算法。 11. **调试技巧**:学会使用Flash的内置调试工具,如Trace语句和ActionScript编译器错误。 通过这些游戏实例,学习者...
3. **数组和数据结构**:游戏中的棋盘状态通常用二维数组表示,方块位置和状态存储在其中。 4. **算法实现**:交换和匹配操作涉及查找相邻元素并检测是否匹配的算法,如深度优先搜索或广度优先搜索。 5. **动画效果*...
8. **保存和加载进度**:为了让玩家能够保存游戏进度并稍后继续,我们可以使用本地存储(Local Shared Objects)或XML文件来持久化游戏数据。 9. **UI设计**:创建用户界面(UI)以显示得分、提示、菜单和设置。AS3...
2. 数据结构:游戏板的实现,可能是二维数组或其他数据结构。 3. 事件处理:如何监听和响应用户输入。 4. 动画和图形:如何使用DisplayObject和Stage创建动态效果。 5. 状态管理:游戏如何跟踪当前状态,如游戏进行...
5. **数据存储和读取**:游戏可能需要保存和加载用户的进度或高分,AS3提供了一些方法来实现本地数据存储。 6. **音频处理**:游戏可能包含背景音乐和音效,AS3有内置的Sound和SoundChannel类来处理音频播放。 7. ...
本文将详细解析使用Flash AS3实现的游戏寻路系统,并围绕标题“flash as3 游戏寻路系统”,描述中的“swf和原文件fla”以及标签“flash as3 动画 游戏 寻路”展开讨论。 Flash AS3是一种广泛应用于创建互动内容的...
1. **面向对象编程**:AS3支持类和对象,因此游戏的各个元素如青蛙、虫子、得分系统等都可能被设计为独立的类。每个类都有其特定的功能和属性,例如青蛙类可能包含移动方法、跳跃行为;虫子类则包含生成、移动和消失...
8. **数据结构和算法**:游戏可能涉及各种数据结构(如数组、链表)和算法(如搜索、排序),以优化游戏逻辑和性能。 9. **状态管理**:游戏通常有多个状态(如开始、游戏进行、结束),AS3可以通过状态机模式来...
本文详细介绍了AS3中类的基本概念、结构以及如何使用包、成员变量/常量、构造函数、继承与覆盖等关键特性。掌握这些基础知识对于编写高质量的AS3程序至关重要。希望本文能帮助读者更好地理解和运用AS3面向对象编程的...
AS3提供了诸如缓存位图、数据结构优化等方法来提升性能。 10. **调试与测试**:开发过程中,使用AS3的调试工具可以追踪代码执行、检查变量状态,帮助开发者找出并修复问题。 通过学习和分析这个AS3贪吃蛇游戏项目...
这个过程中可能涉及序列化和反序列化,以将数据结构转换为在网络上传输的字节流。 4. **源码分析** 这个压缩包可能包含以下组件: - AS3客户端代码:用于处理用户输入,生成并发送请求,接收和解析服务器响应。 ...
在开发过程中,我们可能还会用到ActionScript的其他功能,如数据结构(如Array和Vector)、XML或JSON用于存储游戏数据,以及使用Tween类来实现平滑的动画过渡。 最后,压缩包中的“TQ”可能是游戏的源代码文件或...
ActionScript3中的Vector类则可以高效地处理大量数据,例如存储鸟和猪的位置信息。 游戏的核心部分包括以下几个组件: 1. **用户界面(UI)**:使用AS3创建游戏界面,包括发射按钮、得分显示、小鸟选择界面等。...