display

与显示图像、场景有关的功能


display 模块封装了绝大部分与显示有关的功能,并负责根据 config.lua 中定义的分辨率设定计算屏幕的设计分辨率。


框架初始化后,display 模块提供下列属性:

  • display.sizeInPixels.width,
  • display.sizeInPixels.height 屏幕的像素分辨率
  • display.widthInPixels,
  • display.heightInPixels 屏幕的像素分辨率
  • display.contentScaleFactor 内容缩放因子
  • display.size.width,
  • display.size.height 屏幕的设计分辨率
  • display.width,
  • display.height 屏幕的设计分辨率
  • display.cx,
  • display.cy 屏幕中央的 x 坐标和 y 坐标
  • display.left,
  • display.top,
  • display.right,
  • display.bottom 屏幕四边的坐标
  • display.c_left,
  • display.c_top,
  • display.c_right,
  • display.c_bottom 当父对象在屏幕中央时,屏幕四边的坐标


颜色:

  • display.COLOR_WHITE 白色, cc.c3b(255, 255, 255)
  • display.COLOR_BLACK 黑色, cc.c3b(0, 0, 0)
Functions
display.newScene(name)
创建一个新场景,并返回 Scene 场景对象。
display.newPhysicsScene(name)
创建一个新场景,并返回 Scene 场景对象。
display.wrapSceneWithTransition(scene, transitionType, time, more)
用场景切换过渡效果包装场景对象,并返回场景过渡对象。
display.replaceScene(newScene, transitionType, time, more)
切换到新场景
display.getRunningScene()
返回当前正在运行的场景对象
display.pause()
暂停当前场景
display.resume()
恢复当前暂停的场景
display.newLayer()
创建并返回一个 Layer 层对象
display.newColorLayer(color)
创建一个颜色填充层
display.newNode()
创建并返回一个 Node 对象
display.newClippingRegionNode(rect)
创建并返回一个 ClippingRegionNode 对象。
display.newSprite(filename, x, y, params)
创建并返回一个 Sprite 显示对象。
display.newScale9Sprite(filename, x, y, size, capInsets)
创建并返回一个 Sprite9Scale 显示对象。
display.newTilesSprite(filename, rect)
创建并返回一个平铺的 Sprite 显示对象
display.newTiledBatchNode(filename, plistFile, size, hPadding, vPadding)
create a tiled SpriteBatchNode, the image can not a POT file.
display.newMaskedSprite(__mask, __pic)
Create a masked sprite
display.newFilteredSprite(filename, filters, params)
Create a Filtered Sprite
display.newGraySprite(filename, params)
Create a Gray Sprite by FilteredSprite
display.newDrawNode()
创建并返回一个空的 DrawNode 对象
display.newSolidCircle(radius, params)
创建并返回一个 DrawNode(实心圆)对象。
display.newCircle(radius, params)
创建并返回一个 DrawNode (圆)对象。
display.newRect(rect, params)
创建并返回一个 DrawNode (矩形)对象。
display.newLine(points, params)
创建并返回一个 DrawNode (线性)对象。
display.newPolygon(points, params, drawNode)
创建并返回一个 PolygonShape (多边形)对象。
display.newBMFontLabel(params)
用位图字体创建文本显示对象,并返回 Label 对象。
display.newTTFLabel(params)
使用 TTF 字体创建文字显示对象,并返回 Label 对象。
display.align(target, anchorPoint, x, y)
将指定的显示对象按照特定锚点对齐。
display.addSpriteFrames(plistFilename, image, handler)
将指定的 Sprite Sheets 材质文件及其数据文件载入图像帧缓存。
display.removeSpriteFramesWithFile(plistFilename, imageName)
从内存中卸载 Sprite Sheets 材质和数据文件
display.setTexturePixelFormat(filename, format)
设置材质格式。
display.removeSpriteFrameByImageName(imageName)
从图像帧缓存中删除一个图像。
display.newBatchNode(image, capacity)
从指定的图像文件创建并返回一个批量渲染对象。
display.newSpriteFrame(frameName)
创建并返回一个图像帧对象。
display.newFrames(pattern, begin, length, isReversed)
以特定模式创建一个包含多个图像帧对象的数组。
display.newAnimation(frames, time)
以包含图像帧的数组创建一个动画对象。
display.setAnimationCache(name, animation)
以指定名字缓存创建好的动画对象,以便后续反复使用。
display.getAnimationCache(name)
取得以指定名字缓存的动画对象,如果不存在则返回 nil。
display.removeAnimationCache(name)
删除指定名字缓存的动画对象。
display.removeUnusedSpriteFrames()
从内存中卸载没有使用 Sprite Sheets 材质
display.newProgressTimer(image, progresssType)
创建一个进度条的节点
display.printscreen(node, args)
获取一个节点的纹理内容

Functions

display.newScene()

display.newScene(name)

创建一个新场景,并返回 Scene 场景对象。

指定场景名称方便调试。

Parameters

  • string name 场景名称

Returns

  • Scene 场景对象

@see Scene

display.newPhysicsScene()

display.newPhysicsScene(name)

创建一个新场景,并返回 Scene 场景对象。

指定场景名称方便调试。

Parameters

  • string name 场景名称

Returns

  • Scene 场景对象

@see Scene

display.wrapSceneWithTransition()

display.wrapSceneWithTransition(scene, transitionType, time, more)

用场景切换过渡效果包装场景对象,并返回场景过渡对象。


-- 创建一个新场景 local nextScene = display.newScene("NextScene") -- 包装过渡效果 local transition = display.wrapSceneWithTransition(nextScene, "fade", 0.5) -- 切换到新场景 display.replaceScene(nextScene)

可用的过渡效果有:

  • crossFade 淡出当前场景的同时淡入下一个场景
  • fade 淡出当前场景到指定颜色,默认颜色为 cc.c3b(0, 0, 0),可用 wrapSceneWithTransition() 的最后一个参数指定颜色
  • fadeBL 从左下角开始淡出场景
  • fadeDown 从底部开始淡出场景
  • fadeTR 从右上角开始淡出场景
  • fadeUp 从顶部开始淡出场景
  • flipAngular 当前场景倾斜后翻转成下一个场景,默认从左边开始翻转,可以指定为:
    • cc.TRANSITION_ORIENTATION_LEFT_OVER 从左边开始
    • cc.TRANSITION_ORIENTATION_RIGHT_OVER 从右边开始
    • cc.TRANSITION_ORIENTATION_UP_OVER 从顶部开始
    • cc.TRANSITION_ORIENTATION_DOWN_OVER 从底部开始
  • flipX 水平翻转,默认从左往右翻转,可用的附加参数同上
  • flipY 垂直翻转,默认从上往下翻转,可用的附加参数同上
  • zoomFlipAngular 倾斜翻转的同时放大,可用的附加参数同上
  • zoomFlipX 水平翻转的同时放大,可用的附加参数同上
  • zoomFlipY 垂直翻转的同时放大,可用的附加参数同上
  • jumpZoom 跳跃放大切换场景
  • moveInB 新场景从底部进入,现有场景同时从顶部退出
  • moveInL 新场景从左侧进入,现有场景同时从右侧退出
  • moveInR 新场景从右侧进入,现有场景同时从左侧退出
  • moveInT 新场景从顶部进入,现有场景同时从底部退出
  • pageTurn 翻页效果,如果指定附加参数为 true,则表示从左侧往右翻页
  • rotoZoom 旋转放大切换场景
  • shrinkGrow 收缩交叉切换场景
  • slideInB 新场景从底部进入,直接覆盖现有场景
  • slideInL 新场景从左侧进入,直接覆盖现有场景
  • slideInR 新场景从右侧进入,直接覆盖现有场景
  • slideInT 新场景从顶部进入,直接覆盖现有场景
  • splitCols 分成多列切换入新场景
  • splitRows 分成多行切换入新场景,类似百叶窗
  • turnOffTiles 当前场景分成多个块,逐渐替换为新场景

Parameters

  • Scene scene 场景对象
  • string transitionType 过渡效果名
  • number time 过渡时间
  • string more 过渡效果附加参数

Returns

  • Scene 场景对象

display.replaceScene()

display.replaceScene(newScene, transitionType, time, more)

切换到新场景


-- 使用红色做过渡色 display.replaceScene(nextScene, "fade", 0.5, cc.c3b(255, 0, 0))

Parameters

  • Scene newScene 场景对象
  • string transitionType 过渡效果名
  • number time 过渡时间
  • mixed more 过渡效果附加参数

display.getRunningScene()

display.getRunningScene()

返回当前正在运行的场景对象

Returns

  • Scene 场景对象

display.pause()

display.pause()

暂停当前场景

display.resume()

display.resume()

恢复当前暂停的场景

display.newLayer()

display.newLayer()

创建并返回一个 Layer 层对象

Layer 对象提供了触摸事件、重力感应、Android 按键检测等功能,具体请参考 Layer。

@see Layer

display.newColorLayer()

display.newColorLayer(color)

创建一个颜色填充层

LayerColor 对象使用指定的颜色填充。

Parameters

  • ccColor3B color

Returns

  • LayerColor

@see LayerColor

display.newNode()

display.newNode()

创建并返回一个 Node 对象

Node 对象并不能显示对象,但可以作为其他显示对象的容器(起到群组的作用)。具体请参考 Node 。


local group = display.newNode() -- 创建一个容器 group:addChild(sprite1) -- 添加显示对象到容器中 group:addChild(sprite2) -- 添加显示对象到容器中 -- 移动容器时,其中包含的子对象也会同时移动 transition.moveBy(group, {time = 2.0, x = 100})

Returns

  • Node Node对象

@see Node

display.newClippingRegionNode()

display.newClippingRegionNode(rect)

创建并返回一个 ClippingRegionNode 对象。

创建 ClippingRegionNode 对象时需要指定一个屏幕区域,然后在显示时,所以加入 ClippingRegionNode 对象的内容都会进行剪裁,超出指定区域的内容不会显示。


-- 剪裁区域从屏幕左下角靠内 100 点,到屏幕右上角 local rect = cc.rect(display.left + 100, display.bottom + 100, display.width - 200, display.height - 200) local clipnode = display.newClippingRegionNode(rect) clipnode:addChild(sprite1) clipnode:addChild(sprite2) scene:addChild(clipnode)

注意:ClippingRegionNode 的父对象其坐标必须是 0, 0。

Parameters

  • table rect 指定的区域

Returns

  • ClippingRegionNode ClippingRegionNode对象

display.newSprite()

display.newSprite(filename, x, y, params)

创建并返回一个 Sprite 显示对象。

display.newSprite() 有三种方式创建显示对象:

  • 从图片文件创建
  • 从缓存的图像帧创建
  • 从 SpriteFrame 对象创建

-- 从图片文件创建显示对象 local sprite1 = display.newSprite("hello1.png") -- 从缓存的图像帧创建显示对象 -- 图像帧的名字就是图片文件名,但为了和图片文件名区分,所以此处需要在文件名前添加 “#” 字符 -- 添加 “#” 的规则适用于所有需要区分图像和图像帧的地方 local sprite2 = display.newSprite("#frame0001.png") -- 从 SpriteFrame 对象创建 local frame = display.newFrame("frame0002.png") local sprite3 = display.newSprite(frame)

如果指定了 x,y 参数,那么创建显示对象后会调用对象的 setPosition() 方法设置对象位置。

Parameters

  • mixed 图像名或SpriteFrame对象
  • number x
  • number y
  • table params

Returns

  • Sprite

@see Sprite

display.newScale9Sprite()

display.newScale9Sprite(filename, x, y, size, capInsets)

创建并返回一个 Sprite9Scale 显示对象。

格式:

sprite = display.newScale9Sprite(图像名, [x, y], [size 对象])

Sprite9Scale 就是通常所說的“九宫格”图像。一个矩形图像会被分为 9 部分,然后根据要求拉伸图像,同时保证拉伸后的图像四边不变形。


-- 创建一个 Scale9 图像,并拉伸到 400, 300 点大小 local sprite = display.newScale9Sprite("Box.png", 0, 0, cc.size(400, 300))

Parameters

  • string filename 图像名
  • integer x
  • integer y
  • table size

Returns

  • Sprite9Scale Sprite9Scale显示对象

display.newTilesSprite()

display.newTilesSprite(filename, rect)

创建并返回一个平铺的 Sprite 显示对象

Parameters

  • string filename 图像名

  • cc.rect rect 平铺范围

Returns

  • Sprite

display.newTiledBatchNode()

display.newTiledBatchNode(filename, plistFile, size, hPadding, vPadding)

create a tiled SpriteBatchNode, the image can not a POT file.

Parameters

  • mixed filename As same a the first parameter for display.newSprite
  • string plistFile Texture(plist) image filename, filename must be a part of the texture.
  • size size The tiled node size, use cc.size create it please.
  • integer hPadding Horizontal padding, it will display 1 px gap on moving the node, set padding for fix it.
  • integer vPadding Vertical padding.

Returns

  • SpriteBatchNode

display.newMaskedSprite()

display.newMaskedSprite(__mask, __pic)

Create a masked sprite

Parameters

  • string mask 裁剪形状的图片名
  • string pic 被裁减的图片名

Returns

  • Sprite

display.newFilteredSprite()

display.newFilteredSprite(filename, filters, params)

Create a Filtered Sprite

Parameters

  • mixed filename As same a the first parameter for display.newSprite
  • mixed filters One of the following:

  • A Filter name;

  • More Filter names(in a table);
  • An instance of Filter;
  • Some instances of Filter(in a table);
  • A Array inclueds some instances of Filter.

  • table params A or some parameters for Filter.

Returns

  • An instance of FilteredSprite

display.newGraySprite()

display.newGraySprite(filename, params)

Create a Gray Sprite by FilteredSprite

Parameters

  • mixed filename As same a the first parameter for display.newSprite
  • table params As same as the third parameter for display.newFilteredSprite

Returns

  • An instance of FilteredSprite

display.newDrawNode()

display.newDrawNode()

创建并返回一个空的 DrawNode 对象

Returns

  • DrawNode

@see DrawNode

display.newSolidCircle()

display.newSolidCircle(radius, params)

创建并返回一个 DrawNode(实心圆)对象。


local circle = display.newSolidCircle(10, {x = 150, y = 150, color = cc.c4f(1, 1, 1, 1)}) circle:addTo(scene)

Parameters

  • number radius 实心圆的半径
  • table params 创建圆的参数 x,y为圆点位置 color中圆的颜色

Returns

  • DrawNode

@see DrawNode

display.newCircle()

display.newCircle(radius, params)

创建并返回一个 DrawNode (圆)对象。


--创建一个半径为50, 圆心在(100,100),中间填充为红色,边线为绿色,边线的宽度为2 的圆 local circle = display.newCircle(50, {x = 100, y = 100, fillColor = cc.c4f(1, 0, 0, 1), borderColor = cc.c4f(0, 1, 0, 1), borderWidth = 2})

Parameters

  • number radius
  • table params 有参数,x,y 圆的位置 填充色 fillColor, 边线色 borderColor 及边线宽度 borderWidth

Returns

  • DrawNode

@see DrawNode

display.newRect()

display.newRect(rect, params)

创建并返回一个 DrawNode (矩形)对象。

格式:

shape = display.newRect(rect表, [参数])


-- 创建一个宽度 200,高度 100 的矩形,并且定位于 50, 80 local shape3 = display.newRect(cc.rect(50, 80, 200, 100)) -- 创建一个宽度 100, 高度 100 的矩形,并定位于 40,40 -- 并设置它的中间填充色 fillColor, 边线色 borderColor 及边线宽度 borderWidth local shape4 = display.newRect(cc.rect(100, 100, 40, 40), {fillColor = cc.c4f(1,0,0,1), borderColor = cc.c4f(0,1,0,1), borderWidth = 5})

Parameters

  • table rect table
  • table params 有参数,填充色 fillColor, 边线色 borderColor 及边线宽度 borderWidth

Returns

  • DrawNode

@see ShapeNode

display.newLine()

display.newLine(points, params)

创建并返回一个 DrawNode (线性)对象。

格式:

shape = display.newLine(point表, [参数])


-- 创建一个线宽为2,颜色为红色,从(10,10)到(100,100)的线段 local shape3 = display.newLine({(10, 10), (100,100)}, {borderColor = cc.c4f(1.0, 0.0, 0.0, 1.0), borderWidth = 1})

Parameters

  • table point table
  • table params 有参数,边线色 borderColor 及边线宽度 borderWidth

Returns

  • DrawNode

@see ShapeNode

display.newPolygon()

display.newPolygon(points, params, drawNode)

创建并返回一个 PolygonShape (多边形)对象。


local points = { {10, 10}, -- point 1 {50, 50}, -- point 2 {100, 10}, -- point 3 } local polygon = display.newPolygon(points)

Parameters

  • table points 包含多边形每一个点坐标的表格对象
  • number scale 缩放比例

Returns

  • DrawNode DrawNode

@see DrawNode

display.newBMFontLabel()

display.newBMFontLabel(params)

用位图字体创建文本显示对象,并返回 Label 对象。

BMFont 通常用于显示英文内容,因为英文字母加数字和常用符号也不多,生成的 BMFont 文件较小。如果是中文,应该用 TTFLabel。

可用参数:

  • text: 要显示的文本
  • font: 字体文件名
  • align: 文字的水平对齐方式(可选)
  • maxLineWidth: 最大行宽(可选)
  • offsetX: 图像的X偏移量(可选)
  • offsetY: 图像的Y偏移量(可选)
  • x, y: 坐标(可选)

local label = display.newBMFontLabel({ text = "Hello", font = "UIFont.fnt", })

Parameters

  • table params 参数表格对象

Returns

  • Label Label对象

display.newTTFLabel()

display.newTTFLabel(params)

使用 TTF 字体创建文字显示对象,并返回 Label 对象。

可用参数:

  • text: 要显示的文本
  • font: 字体名,如果是非系统自带的 TTF 字体,那么指定为字体文件名
  • size: 文字尺寸,因为是 TTF 字体,所以可以任意指定尺寸
  • color: 文字颜色(可选),用 cc.c3b() 指定,默认为白色
  • align: 文字的水平对齐方式(可选)
  • valign: 文字的垂直对齐方式(可选),仅在指定了 dimensions 参数时有效
  • dimensions: 文字显示对象的尺寸(可选),使用 cc.size() 指定
  • x, y: 坐标(可选)

align 和 valign 参数可用的值:

  • cc.TEXT_ALIGNMENT_LEFT 左对齐
  • cc.TEXT_ALIGNMENT_CENTER 水平居中对齐
  • cc.TEXT_ALIGNMENT_RIGHT 右对齐
  • cc.VERTICAL_TEXT_ALIGNMENT_TOP 垂直顶部对齐
  • cc.VERTICAL_TEXT_ALIGNMENT_CENTER 垂直居中对齐
  • cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM 垂直底部对齐

-- 创建一个居中对齐的文字显示对象 local label = display.newTTFLabel({ text = "Hello, World", font = "Marker Felt", size = 64, align = cc.TEXT_ALIGNMENT_CENTER -- 文字内部居中对齐 }) -- 左对齐,并且多行文字顶部对齐 local label = display.newTTFLabel({ text = "Hello, World\n您好,世界", font = "Arial", size = 64, color = cc.c3b(255, 0, 0), -- 使用纯红色 align = cc.TEXT_ALIGNMENT_LEFT, valign = cc.VERTICAL_TEXT_ALIGNMENT_TOP, dimensions = cc.size(400, 200) })

Parameters

  • table params 参数表格对象

Returns

  • UILabel UILabel对象

display.align()

display.align(target, anchorPoint, x, y)

将指定的显示对象按照特定锚点对齐。

格式:

display.align(显示对象, 锚点位置, [x, y])

显示对象锚点位置:

  • display.CENTER 图像中央
  • display.LEFT_TOP,
  • display.TOP_LEFT 图像左上角
  • display.CENTER_TOP,
  • display.TOP_CENTER 图像顶部的中间
  • display.RIGHT_TOP,
  • display.TOP_RIGHT 图像顶部的中间
  • display.CENTER_LEFT,
  • display.LEFT_CENTER 图像左边的中间
  • display.CENTER_RIGHT,
  • display.RIGHT_CENTER 图像右边的中间
  • display.BOTTOM_LEFT,
  • display.LEFT_BOTTOM 图像左边的底部
  • display.BOTTOM_RIGHT,
  • display.RIGHT_BOTTOM 图像右边的底部
  • display.BOTTOM_CENTER,
  • display.CENTER_BOTTOM 图像中间的底部

-- 将图像按左上角对齐,并放置在屏幕左上角 display.align(sprite, display.LEFT_TOP, 0, 0)

Parameters

  • Sprite target 显示对象
  • integer anchorPoint 锚点位置
  • integer x
  • integer y

display.addSpriteFrames()

display.addSpriteFrames(plistFilename, image, handler)

将指定的 Sprite Sheets 材质文件及其数据文件载入图像帧缓存。

格式:

display.addSpriteFrames(数据文件名, 材质文件名)


-- 同步加载纹理 display.addSpriteFrames("Sprites.plist", "Sprites.png") -- 异步加载纹理 local cb = function(plist, image) -- do something end display.addSpriteFrames("Sprites.plist", "Sprites.png", cb)

Sprite Sheets 通俗一点解释就是包含多张图片的集合。Sprite Sheets 材质文件由多张图片组成,而数据文件则记录了图片在材质文件中的位置等信息。

Parameters

  • string plistFilename 数据文件名
  • string image 材质文件名

@see Sprite Sheets

display.removeSpriteFramesWithFile()

display.removeSpriteFramesWithFile(plistFilename, imageName)

从内存中卸载 Sprite Sheets 材质和数据文件

Parameters

  • string plistFilename 数据文件名
  • string image 材质文件名

display.setTexturePixelFormat()

display.setTexturePixelFormat(filename, format)

设置材质格式。

为了节约内存,我们会使用一些颜色品质较低的材质格式,例如针对背景图使用 cc.TEXTURE2_D_PIXEL_FORMAT_RG_B565 格式。

display.setTexturePixelFormat() 可以指定材质文件的材质格式,这样在加载材质文件时就会使用指定的格式。

Parameters

  • string filename 材质文件名
  • integer format 材质格式

@see Texture Pixel Format

display.removeSpriteFrameByImageName()

display.removeSpriteFrameByImageName(imageName)

从图像帧缓存中删除一个图像。

有时候,某些图像仅在特定场景中使用,例如背景图。那么在场景退出时,就可以用 display.removeSpriteFrameByImageName() 从缓存里删除不再使用的图像数据。

此外,Scene 提供了 markAutoCleanupImage() 接口,可以指定场景退出时需要自动清理的图像,推荐使用。

Parameters

  • string imageName 图像文件名

display.newBatchNode()

display.newBatchNode(image, capacity)

从指定的图像文件创建并返回一个批量渲染对象。


local imageName = "Sprites.png" display.addSpriteFrames("Sprites.plist", imageName) -- 载入图像到帧缓存 -- 下面的代码绘制 100 个图像只用了 1 次 OpenGL draw call local batch = display.newBatch(imageName) for i = 1, 100 do local sprite = display.newSprite("#Sprite0001.png") batch:addChild(sprite) end -- 下面的代码绘制 100 个图像则要使用 100 次 OpenGL draw call local group = display.newNode() for i = 1, 100 do local sprite = display.newSprite("#Sprite0001.png") group:addChild(sprite) end

Parameters

  • string image 图像文件名
  • integer capacity

Returns

  • SpriteBatchNode

@see Batch Node

display.newSpriteFrame()

display.newSpriteFrame(frameName)

创建并返回一个图像帧对象。


display.addSpriteFrames("Sprites.plist", "Sprites.png") -- 创建一个 Sprite local sprite = display.newSprite("#Yes.png") -- 创建一个图像帧 local frameNo = display.newSpriteFrame("No.png") -- 在需要时,修改 Sprite 的显示内容 sprite:setSpriteFrame(frameNo)

Parameters

  • string 图像帧名称

Returns

  • SpriteFrameCache

display.newFrames()

display.newFrames(pattern, begin, length, isReversed)

以特定模式创建一个包含多个图像帧对象的数组。


-- 创建一个数组,包含 Walk0001.png 到 Walk0008.png 的 8 个图像帧对象 local frames = display.newFrames("Walk%04d.png", 1, 8) -- 创建一个数组,包含 Walk0008.png 到 Walk0001.png 的 8 个图像帧对象 local frames = display.newFrames("Walk%04d.png", 1, 8, true)

Parameters

  • string pattern 模式字符串
  • integer begin 起始索引
  • integer length 长度
  • boolean isReversed 是否是递减索引

Returns

  • table 图像帧数组

display.newAnimation()

display.newAnimation(frames, time)

以包含图像帧的数组创建一个动画对象。


local frames = display.newFrames("Walk%04d.png", 1, 8) local animation = display.newAnimation(frames, 0.5 / 8) -- 0.5 秒播放 8 桢 sprite:playAnimationOnce(animation) -- 播放一次动画

Parameters

  • table frames 图像帧的数组
  • number time 每一桢动画之间的间隔时间

Returns

  • Animation Animation对象

display.setAnimationCache()

display.setAnimationCache(name, animation)

以指定名字缓存创建好的动画对象,以便后续反复使用。


local frames = display.newFrames("Walk%04d.png", 1, 8) local animation = display.newAnimation(frames, 0.5 / 8) -- 0.5 秒播放 8 桢 display.setAnimationCache("Walk", animation) -- 在需要使用 Walk 动画的地方 sprite:playAnimationOnce(display.getAnimationCache("Walk")) -- 播放一次动画

Parameters

  • string name 名字
  • Animation animation 动画对象

display.getAnimationCache()

display.getAnimationCache(name)

取得以指定名字缓存的动画对象,如果不存在则返回 nil。

Parameters

  • string name

Returns

  • Animation

display.removeAnimationCache()

display.removeAnimationCache(name)

删除指定名字缓存的动画对象。

Parameters

  • string name

display.removeUnusedSpriteFrames()

display.removeUnusedSpriteFrames()

从内存中卸载没有使用 Sprite Sheets 材质

display.newProgressTimer()

display.newProgressTimer(image, progresssType)

创建一个进度条的节点

进度条类型有:

  • display.PROGRESS_TIMER_BAR 环形
  • display.PROGRESS_TIMER_RADIAL

Parameters

-

Returns

-

display.printscreen()

display.printscreen(node, args)

获取一个节点的纹理内容

display.printscreen() 提供:

  • 保存节点的纹理到磁盘文件
  • 以节点的纹理创建一个精灵并返回

注意:node 的 content size 必须大于 (0, 0). 否则会收到错误信息: LUA ERROR: ASSERT FAILED ON LUA EXECUTE: Invalid size


-- 截屏并保存 display.printscreen(node, {file="save.png"}) -- 使用截屏纹理创建一个精灵并返回 local sp = display.printscreen(node, {})

-- Get a screenshot of a Node -- @author zrong(zengrong.net) -- Creation: 2014-04-10

Parameters

  • node A node to print.
  • args

Returns

  • An instance of Sprite or FilteredSprite.
update: 2014-09-19 16:07:27, generated by luadocx 1.3