类型 GroupObject(组对象) Object(对象) SnapshotObject(快照对象) 库 display.* 修订 版本 2024.3703 关键词 canvas(画布) 另请参阅 display.newSnapshot() snapshot:invalidate()
此组是一个特殊的屏幕外组,允许您在快照的纹理上绘制,而无需重新绘制 snapshot.group 中的对象。
snapshot.canvas
通常,快照失效会导致在将快照组的子对象渲染到纹理之前清除纹理。
相反,当画布失效时,它们会渲染到纹理上,而不会先清除纹理。
要使画布失效,只需将 "canvas"
参数传递给 snapshot:invalidate(),如下例所示。
默认情况下,当画布失效时,画布的子对象会在下一个渲染过程中被*追加*到 快照组 中。此时,画布将为空。
您可以通过将 canvasMode 设置为 "discard"
来更改此设置,以便*丢弃*画布的子对象。
画布的属性将被忽略,并且不会影响渲染结果。
相反,出于渲染目的,将使用 snapshot.group 的属性。
例如,位置(或旋转、缩放、alpha 等)等属性将取自快照的组属性,而不是画布属性。
此外,对 snapshot.canvas
的更改将在绘制画布对象之前重置为 snapshot.group 的相应值。
画布组的行为与普通的 组 一样,除了以下几点:
removeSelf()
。local w,h = display.contentWidth,display.contentHeight local snapshot = display.newSnapshot( w, h ) local brush = display.newImage( "brush.png" ) snapshot.canvas:insert( brush ) snapshot:invalidate( "canvas" )