天天看點

Corona圖形特效-着色和漸變

在Corona SDK-621中添加了一對關于圖形的顔色特效:着色和色調漸變!

1.着色

Corona圖形特效-着色和漸變

現在你可以通過調用setFillColor()方法來給圖像對象着色。你傳進來的顔色就像是一個固定的對象,在Corona中我們把它解釋為着色。參數的個數決定如何解析這些數字。如果你傳進了1個或2個那決定的就是灰階,如果是3個或4個那決定的是顔色:

image:setFillColor( gray )

image:setFillColor( gray, alpha )

image:setFillColor( red, green, blue )

image:setFillColor( red, green, blue, alpha )

這裡有一個簡單的例子,以HelloWorld作為例子來說明如何使用它。4次加載world.jpg。第一次是正常的,後面3次使用了不同的着色:

local w,h = display.contentWidth*0.5, display.contentHeight*0.5

local halfW,halfH = 0.5*w, 0.5*h

local background = display.newImageRect( "world.jpg", w,h )

background:translate( halfW, halfH )

local dw = w + halfW

local dh = h + halfH

local background = display.newImageRect( "world.jpg", w,h )

background:setFillColor( 255, 255, 0 )

background:translate( dw, halfH )

local background = display.newImageRect( "world.jpg", w,h )

background:setFillColor( 255, 255, 0 )

background:translate( halfW, dh )

local background = display.newImageRect( "world.jpg", w,h )

background:setFillColor( 255, 0, 255 )

background:translate( dw, dh )

2.色調漸變

Corona圖形特效-着色和漸變

現在你可以使用graphics.newGradient()為文本對象和固定的長方形(也就是純粹的rects,而不是圓形的rects)。通過調用graphics.newGradient()你建立一個新的色調對象。你可以通過text:setTextColor()和rect:setFillColor()來調用這個對象。

下面的代碼示範了一個垂直方向的色調漸變,從黃色漸變到(幾乎是)一條白色:

local myText = 

    display.newText( "Hello, World!", 0, 0, native.systemFont, 40 )

myText.x = display.contentWidth * 0.5

myText.y = display.contentWidth * 0.25

local g = graphics.newGradient( { 255, 255, 0 }, { 200 }, "down" )

myText:setTextColor( g )

http://www.buildapp.net/post/142.htm