Bài 4: Tìm hiểu về Scene2d.ui và skin

Thảo luận trong 'Lập trình LibGDX' bắt đầu bởi Nem, 13/3/13.

  1. Nem

    Nem Moderator

    Lượt xem: 12,919
    Bài 4: Tìm hiểu về Scene2d.ui và skin

    Một số link tham khảo:
    http://libgdx.l33tlabs.org/docs/api/com/...frame.html
    http://code.google.com/p/libgdx/wiki/scene2dui
    http://code.google.com/p/libgdx/wiki/Skin
    http://code.google.com/p/libgdx/wiki/SpriteAnimation

    Yêu cầu demo:
    1 đối tượng đứng trên màn hình.
    4 button sáng trái, phải, lên xuống.
    Khi ấn button thì đối tượng di chuyển, có chuyển động animation.
    1 combobox sổ xuống để chọn tốc độ di chuyển nhanh chậm.
    1 flick scroll panel để lưu hướng của đối tượng trong quá trình di chuyển.
    Các text trong scroll panel có kích thước to nhỏ khác nhau, tức là ta sẽ sử dụng nhiều style khác nhau của text trong skin.
    Sử dụng scene2d.ui và skin để tạo button, flickscroll panel, combobox, label.
    Sử dụng animation để tạo animation cho nhân vật.
    Chude4

    Phân tích bài toán:
    Yêu cầu demo:
    1 đối tượng đứng trên màn hình.
    4 button sáng trái, phải, lên xuống.
    Khi ấn button thì đối tượng di chuyển, có chuyển động animation.
    1 combobox sổ xuống để chọn tốc độ di chuyển nhanh chậm.
    1 flick scroll panel để lưu hướng của đối tượng trong quá trình di chuyển.
    Các text trong scroll panel có kích thước to nhỏ khác nhau, tức là ta sẽ sử dụng nhiều style khác nhau của text trong skin.
    Sử dụng scene2d.ui và skin để tạo button, flickscroll panel, combobox, label.
    Sử dụng animation để tạo animation cho nhân vật.




    Như vậy ta sẽ có ngay 5 đối tượng cần phải xây dựng.
    1. "Text trong scroll" có 4 trạng thái up, down, left, right
    => hằng số nội dung ứng với 4 trạng thái trên gồm 4 chuỗi "Đi lên", "Đi xuống","Sang trái","Sang phải"
    => hằng số tên font ứng với 4 trạng thái trên gồm 4 font.
    ufont: font cho chữ "Đi lên" - face="Arial" size=48, màu Trắng
    dfont: font cho chữ "Đi xuống" - face="Tahoma" size=52, màu xanh lá cây
    lfont: font cho chữ "Sang trái" - face="Times New Roman" size=56, màu xanh biển
    rfont: font cho chữ "Sang phải" - face="Verdana" size=46, màu đỏ
    => 1 hành động khởi tạo đối tượng với 1 trong 4 trạng thái trên.

    2. "scroll panel" chứa các items là đối tượng "text trong scroll"
    => 1 hành động thêm "Text trong scroll"

    3. "combobox" cho phép chọn 1 trong 2 sự chọn lựa "vừa" và "nhanh"
    => hằng số nội dụng ứng với 2 chọn lựa
    => một sự kiện "thay đổi chọn lựa" cho phép bên ngoài bắt lấy và ứng xử theo chọn lựa được chọn.

    4. "button" có 4 loại up, down, left, right
    => một biến số cho biết "who am i" chứa 1 trong 4 giá trị ứng với 4 loại
    => hai sự kiện "nhấn" và "nhả" cho phép bên ngoài bắt lấy và ứng xử theo sự kiện

    5. "Nhân vật" đi lên, đi xuống, sang trái, sang phải với tốc độ vừa hoặc nhanh
    => một biến số cho biết đang quay mặt theo hướng nào chứa 1 trong 4 giá trị ứng với 4 hướng
    => một biến số cho biết đang đứng hay không chứa giá trị true/false
    => một biến số chứa tốc độ đi chứa 1 trong 2 giá trị - tạm đặt vừa = (100px/s) và nhanh = (300px/s)
    => một biến số chứa tốc độ khung hình chứa 1 trong 2 giá trị - tạm đặt vừa = 2 frame /s và nhanh = 4 frame/s

    => một hành động đổi tốc độ
    sẽ được gọi khi sự kiện "thay đổi chọn lựa" trong combobox xảy ra.

    => một hành động đổi hướng
    sẽ được gọi khi sự kiện "nhấn" trong button xảy ra

    => hành động "đứng" hay "không đứng"
    sẽ được gọi khi sự kiện "nhấn"-"không đứng và "Nhả"-"đứng" trong button xảy ra.

    => một hành động walking
    Trong đó tủy theo biến số "quay mặt theo hướng nào" sẽ gọi 1 trong 5 hành động walkUp, walkDown, walkLeft, walkRight và Standing.
    minthu thích bài này.
  2. HaiHack

    HaiHack Member

    Bài này là tìm hiểu, vậy bao giờ có hướng dẫn đây?
    thanks!
  3. Nem

    Nem Moderator

    chờ mình chút nhé, dạo này công việc đang lu bù
    chắc trong tuần này sẽ tiếp tục bạn nhé
  4. Nem

    Nem Moderator

    chờ mình chút nhé, dạo này công việc đang lu bù
    chắc trong tuần này sẽ tiếp tục bạn nhé
  5. trungdv90

    trungdv90 New Member

    Cho cái source để mình đọc bạn ơi !!
  6. NguyenQuangVuong

    NguyenQuangVuong New Member

    Mod bỏ rơi box này rồi

Chia sẻ trang này