用于渲染Sprite的原始帧由一个单独的Image对象提供,此Image可以是可变的,也可以是不可变的。如果使用多帧,图像将按照指定的宽度和高度被切割成一系列相同大小的帧。正如下图所示,同一序列的帧可以以不同的排列存储,这取决于游戏开发者是否方便开发。
每一帧都被赋予一个唯一的索引号。左上角的帧被赋予索引号0。余下的帧按照行的顺序索引号依次递增(索引号从第一行开始,接着是第二行,以此类推)。getRawFrameCount()方法返回所有原始帧的总数。
6.3.2 帧序列
Sprite的帧序列定义了帧以什么样的顺序来显示。缺省的帧序列就是所有可用帧的顺序排列,因此,帧序列和对应的帧的索引号是一致的。这表示缺省的帧序列的长度和所有原始帧的总数是相等的。例如,如果一个Sprite有4帧,缺省的帧序列为{0, 1, 2, 3}。
可以使用setFrameSequence(int[] sequence)来为Sprite设置帧序列。当调用此方法时,将会复制sequence数组;因此,随后对参数sequence数组进行的任何更改均不会影响Sprite的帧序列。传入null将使Sprite的帧序列重置为缺省值。
开发者必须在帧序列中手动切换当前帧。可以调用setFrame(int),prevFrame()或者nextFrame()方法来完成。注意,这些方法是针对帧序列操作,而不是对帧的索引操作。如果使用缺省的帧序列,那么帧序列的索引和帧的索引是可互换的。
如果愿意,可以为Sprite定义任意的帧序列。帧序列必须至少包含一个元素,并且每个元素都必须是一个有效的帧的索引号。通过定义新的帧序列,开发者可以方便地以任意想要的顺序来显示Sprite的帧;帧可以重复,忽略,或者以相反的顺序显示,等等。
例如,下图显示了一个特定的序列如何被用于动画显示一个蚊子。帧序列被设计为蚊子振动翅膀3次,然后在下次循环前暂停一会儿。
每次调用nextFrame()方法就会更新显示,动画效果如下:
要创建一个静态的Sprite,可以调用public Sprite(Image image),通过提供的图像创建一个新的Sprite。如果要创建动态的Sprite,就必须使用public Sprite(Image image,int frameWidth, int frameHeight)。
帧的大小由frameWidth和frameHeight指定,所有帧的大小必须相等。可以在图像中水平、竖直或以方格形式排列。源图像的宽度必须是帧宽度的整数倍,高度必须是帧高度的整数倍。如果image的宽度或高度不是frameWidth或frameHeight的整数倍,将会抛出IllegalArgumentException异常。
分享到:
相关推荐
### 韩顺平编写的Java学习笔记概览 #### Java平台分类与运行机制 - **J2SE(Java 2 Platform, Standard Edition)**: 标准版Java开发平台,适用于桌面应用程序开发。 - **J2EE(Java 2 Platform, Enterprise ...
"Java 学习笔记" Java 是一种面向对象的程序语言,具有跨平台的可能性。Java 的特性包括简单、面向对象、网络、解译、坚固、安全、可携和高效能。Java 平台包括 Java SE、Java EE 和 Java ME, Java SE 是 Java ...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
JAVA学习笔记最新ppt版1 JAVA 是一种面向对象的程序语言,具有更高的跨平台可能性。它是 Sun 公司 GreenProject 中撰写 Star7 应用程序的一个程序语言,由 James Gosling 创造。Java 的特性包括简单、面向对象、...
### Java课堂笔记学习 #### 软件定义与软件开发 - **软件**:软件是运行在硬件之上的一组指令集,这些指令集能够完成特定的功能。软件开发过程包括设计和编码两个主要阶段。 #### 编程语言的重要性 - **编程语言...
### Java+JDK+6 学习笔记知识点详解 #### 一、Java 概述 - **起源与发展:** - Java 最初是由 Sun Microsystems 的 Green Project 开发出来的编程语言,最初是为了创建一个名为 Star7 的应用程序。 - 1995 年 5 ...
### Java学习笔记知识点详解 #### Java 平台与开发概述 - **Java平台分类:** - **J2SE(Java SE):** 标准版,适用于桌面应用程序开发。 - **J2EE(Java EE):** 企业版,专为Web应用和服务端应用程序设计。 -...
在“Java学习笔记(必看经典)”中,我们可以期待涵盖以下几个关键知识点: 1. **基础语法**:包括变量声明、数据类型(如基本类型和引用类型)、运算符、流程控制语句(如if条件语句、for循环、while循环和switch...
【JAVA基础学习笔记】 在JAVA基础的学习中,涵盖了多个核心概念和编程技巧。以下是各章节的重点内容: 第一章:首先,我们需要了解JAVA的技术平台,包括Java SE(标准版)、Java EE(企业版)和Java ME(微型版)...
15. **Java SE、Java EE和Java ME**:了解这三种Java平台的不同用途,分别是标准版(SE)用于桌面应用,企业版(EE)用于服务器端应用,微型版(ME)则用于嵌入式设备。 以上只是Java初级学习的部分核心概念,随着...
Java学习笔记概述 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems开发,现在由甲骨文公司维护。它的设计目标是具有简单性、面向对象、健壮性、安全性、可移植性和高性能等特性。本笔记主要围绕Java的...
这只是Java学习笔记的基础部分,随着深入,还会涵盖类、对象、异常处理、集合框架、IO流、网络编程、多线程、设计模式等多个方面。理解并熟练掌握这些知识点,将有助于你全面地理解和运用Java,成为一名合格的Java...
6. **集合框架**:List、Set、Map接口及其实现类(如ArrayList、LinkedList、HashSet、HashMap等)是Java编程中经常用到的数据结构,学习笔记会详细解释其原理和使用方法。 7. **输入输出流**:Java提供了丰富的IO...
Java有三个主要的应用平台:Java Platform, Standard Edition (Java SE),Java Platform, Enterprise Edition (Java EE) 和 Java Platform, Micro Edition (Java ME)。Java SE是所有Java平台的基础,提供了开发和...
【Java学习笔记】 Java是一种广泛使用的编程语言,以其跨平台性、面向对象特性和安全性而闻名。Java的优点在于它的字节码技术使得程序能够在不同操作系统上运行,无需重新编译,这得益于Java虚拟机(JVM)。此外,...
本文档是韩顺平 Java 从入门到精通视频教程的学习笔记整理,共 94 讲,涵盖 Java 基础知识、Java SE、Java EE、Java ME 等方向的内容。 Java 基础知识 1. Java 平台:Java 平台有三个主要版本:J2SE、J2EE、J2ME。...