Hướng dẫn sử dụng transition trong Corona

Thảo luận trong 'Tutorials và Thủ thuật lập trình' bắt đầu bởi admin, 3/5/14.

  1. Administrator
    admin
    Nhân viên CoronaViet
    Tham gia ngày:
    16/1/14
    Bài viết:
    300
    Đã được thích:
    99
    Khi làm game, mình thường xuyên sử dụng một thư viện có sẵn trong Corona đó là transition. Nó cung cấp cho chúng ta một số hàm và phương thức di chuyển của một đối tượng hiển thị hoặc một nhóm các đối tượng hiển thị. Các hàm của thư viện này bao gồm:
    - transition.to ()
    - transition.from ()
    - transition.pause ()
    - transition.resume ()
    - transition.cancel ()
    [​IMG]
    transition.to ()
    Một hiệu ứng di chuyển một đối tượng hiển thị. Chúng ta có thể tùy chọn sử dụng nó để di chuyển, xoay, làm mờ dần một đối tượng trong một thời gian nhất định
    Ví dụ sau đây mình sẽ tạo ra một hình vuông 100x100 pixel và đặt tại tọa độ 50,50 trên màn hình và mình sử dụng transition để di chuyển hình vuông đó đến tọa độ 300,500, mình cho mờ dần trong lúc di chuyển cho đến khi hình vuông này đến tọa độ 300,500 thì nó sẽ biến mất và nó sẽ print ra màn hình debug chữ "Hoàn thành!" và khoảng thời gian di chuyển của hình vuông từ tọa độ 50,50 đến 300,500 là 3 giây.

    Mã (Lua):
    local hvuong = display.newRect( 50, 50, 100, 100 )
    local listener1 = function( obj )
        print( "Hoàn thành!")
    end

    -- Transiton.to  hoặc .from để đi ngược lại
    local m_tran_1=transition.to(hvuong,{time=3000,alpha=0,x=300,y=500,onComplete=listener1})
    transition.from ()
    Một hiệu ứng chuyển động ngược lại với hàm transition.to (). Nó di chuyển từ vị trí ta cấu hình đến vị trí hiện tại của nó.

    transition.pause ()
    Hàm này dùng để tạm dừng 1 transition hoặc tạm dừng tất cả các transition trong game của chúng ta
    - Để tạm dừng 1 transition cụ thể ta làm như sau:
    Mã (Lua):
    transition.pause(tran1)
    - Để tạm dừng tất cả các transition trong game của chúng ta, ta làm như sau:
    Mã (Lua):
    transition.pause()
    transition.resume () Hàm này dùng để tiếp tục lại một hoặc tất cả các transition khi nó bị tạm dừng bởi hàm transition.pause.
    - Để tiếp tục lại 1 transition cụ thể ta làm như sau:
    Mã (Lua):
    transition.resume(tran1)
    - Để tiếp tục lại tất cả các transition ta làm như sau:
    Mã (Lua):
    transition.resume()
    transition.cancel ()
    Hàm này dùng để hủy một hoặc tất cả các transition trong game của chúng ta
    - Để hủy một transition ta làm như sau:
    Mã (Lua):
    transition.cancel(tran1)
    - Để hủy bỏ tất cả các transition, ta làm như sau:
    Mã (Lua):
    transition.cancel()
    Một số phương thức thường sử dụng
    Với transition trong Corona, chúng ta có rất nhiều phương thức như:
    transition.blink()
    transition.dissolve()
    transition.fadeIn()
    transition.fadeOut()
    transition.moveBy()
    transition.moveTo()
    transition.scaleBy()
    transition.scaleTo()
    Tuy nhiên khi làm game, hai phương thức mà mình thường sử dụng nhất đó là transition.scaleTo() và transition.blink()

    transition.scaleTo()
    Một hiệu ứng có thể dùng để làm cho đối tượng của ta to ra hoặc thu nhỏ lại. Ví dụ ở đây mình sẽ tạo ra 1 hình vuông và mình sử dụng transition.scaleTo() để phóng to hình vuông đó ra với kích thước gấp 5 lần so với kích thước ban đầu của nó và nó sẽ mờ dần trong khi phóng to. Thời gian nó phóng to là 1 giây
    Mã (Lua):
    local hvuong = display.newRect( 240, 400, 100, 100 )

    transition.scaleTo( hvuong, { xScale=5.0, yScale=5, time=1000, alpha=0 } )
    transition.blink()
    Hàm này dùng để nhấp nháy một đối tượng hiển thị. Ví dụ ở đây mình dùng transition.blink() để làm nhấp nháy 1 hình vuông và thời gian cho mỗi lần nhấp nháy là 1 giây
    Mã (Lua):
    local hvuong = display.newRect( 200, 100, 100, 100 )

    transition.blink( hvuong, { time=1000 } )
    Trên đây mình đã hướng dẫn cho các bạn cách sử dụng transition có sẵn trong thư viện Corona. Chúc bạn thành công!
    Last edited: 5/5/14
  2. New Member
    jvinhit
    Tham gia ngày:
    23/8/15
    Bài viết:
    6
    Đã được thích:
    0
    Thanks :)

Chia sẻ trang này