Game Studio
Liên kế mạng xã hội

Game Studio


Hướng dẫn chuyển màu đối tượng trong Corona

1. Thiết lập Màu cho đối tượng

Bây giờ bạn có thể thiết lập màu sắc cho các đối tượng hình ảnh hoặc text bằng cách gọi hàm setFillColor(). Số lượng các tham số xác định sẽ quyết định màu của đối tượng hình ảnh hoặc text. Ta có các loại tham số sau:
object:setFillColor( gray )
object:setFillColor( gray, alpha )
object:setFillColor( red, green, blue )
object:setFillColor( red, green, blue, alpha )

Dưới đây là một ví dụ đơn giản để minh họa cách sử dụng nó. Với 4 ảnh Icon-76@2x.png. Hình ảnh đầu tiên là hình ảnh bình thường, 3 ảnh tiếp theo lần lượt là các thiết lập màu so với ảnh gốc:

Mã (Lua):

local w,h = display.contentWidth*0.5, display.contentHeight*0.5
local halfW,halfH = 0.5*w, 0.5*h
local background = display.newImageRect( "Icon-76@2x.png", w,h )
background:translate( halfW, halfH )

local dw = w + halfW
local dh = h + halfH

local background = display.newImageRect( "Icon-76@2x.png", w,h )
background:setFillColor( 255, 255, 0 )
background:translate( dw, halfH )

local background = display.newImageRect( "Icon-76@2x.png", w,h )
background:setFillColor( 255, 255, 0 )
background:translate( halfW, dh )

local background = display.newImageRect( "Icon-76@2x.png", w,h )
background:setFillColor( 255, 0, 255 )
background:translate( dw, dh )
 

Và đây là kết quả:
[​IMG]
2. Gradient đối tượng

Bạn có thể sử dụng hàm graphics.newGradient () cho các đối tượng văn bản và hình chữ nhật cố định để tạo ra một đối tượng màu sắc mới. Cú pháp như sau:

graphics.newGradient( color1, color2 [, direction] )

Gradient bắt đầu chuyển từ color1 đến color2. Cả hai color1 và color2 là mảng. các định dạng cho cả 2 color có thể là các cách sau: { gray } { gray, alpha } { red, green, blue } { red, green, blue, alpha } với giá trị nằm trong khoảng từ 0 đến 255.
Direction có thể là up, down, left, right : màu sẽ chuyển từ color1 sang color2 ứng theo các direction đó.

Đoạn code sau đây cho thấy một sắc thái chuyển từ màu vàng sang một màu trắng của chử Hello, World!

Mã (Lua):
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 )

Kết quả:
[​IMG]
Lưu ý là bạn chỉ có thể sử dụng hàm này trong Corona bản Pro hoặc cao cấp hơn.

Nguồn: Coronaviet.com