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

Game Studio


Hướng dẫn tạo Icons, Top Shelf images và Launch images cho tvOS với Corona SDK

Trong hướng dẫn này, chúng ta sẽ cùng tìm hiểu cách để bao gồm các icons, launch images và Top Shelf images cho ứng dụng tvOS mà không cần phải “động chạm” gì đến Corona Enterprise hoặc Xcode. Hiện tại, các icons của tvOS gồm có nhiều lớp (layer), và tvOS sẽ thay đổi từng lớp trong các lớp này để tạo ra một hiệu ứng parallax. Ngoài ra, tvOS cần một “Top Shelf” image để hiển thị khi ứng dụng của bạn đang ở hàng đầu tiên trên home screen của người dùng. Rất may là Corona đã thực hiện hầu hết các công việc cho bạn bằng cách tạo ra các tập tin thích hợp trong lúc build, dựa trên các assets mà bạn có và các chỉ định của bạn.
 
Những bổ sung trong trong build settings của TvOS
 
Để hỗ trợ tvOS, Coronalabs đã giới thiệu một block code mới cho tập tin build.settings. Các ứng dụng được xây dựng cho tvOS cần phải có bảng tvos mới, còn các ứng dụng được xây dựng cho iOS thì vẫn tiếp tục sử dụng các block code cho iphone.
settings =
{
tvos =
{
-- tvOS settings/preferences here
},
}
App icons
Bạn cần phải cung cấp hai icons: lớn và nhỏ. Icons nhỏ là 400 × 240, và lớn là 1280x768. Tên file không thực sự quan trọng, nhưng bạn phải xác định chúng tương ứng với bảng “small” và bảng “large” nằm trong bảng “icon” (xem bên dưới). Ngoài ra, như đã nói ở trên, icons của tvOS là "đa lớp", vì vậy bạn nên liệt kê chúng theo thứ tự từ trên xuống dưới trong mỗi bảng:
 
    tvos =
    {
        icon =
        {
            small =
            {
                "Icon-tvOS-Small-Top.png",
                "Icon-tvOS-Small-Middle.png",
                "Icon-tvOS-Small-Bottom.png",
            },
            large =
            {
                "Icon-tvOS-Large-Top.png",
                "Icon-tvOS-Large-Middle.png",
                "Icon-tvOS-Large-Bottom.png",
            }
        },
    },
 
Lưu ý một vài điểm quan trọng khác liên quan đến các icon của các ứng dụng tvOS:
  • Lớp "cơ bản" ở dưới (bottom) không được là hình ảnh có bất kỳ khu vực/pixel nào trong suốt.
  • Các lớp còn lại có thể chứa các khu vực/pixel trong suốt để tạo được sự đẹp mắt.
  • Hình ảnh của bạn có thể phức tạp như bạn muốn, điều này liên quan đến số lượng lớp bạn đưa vào. Ví dụ trên sử dụng 3 lớp: trên, giữa và dưới.
  
Top Shelf images và launch images
 
Ngoài các icons, tvOS yêu cầu một "Top Shelf" images. Hình ảnh này sẽ xuất hiện ở phía trên cùng của tvOS home screen khi ứng dụng được lựa chọn và nằm ở hàng trên cùng của 5 ứng dụng. Không giống như các icons đa lớp, đây là một hình ảnh tĩnh với kích thước là 1920 × 720 pixel và nó không được có bất kỳ khu vực/pixel nào trong suốt – hoặc file .png có một kênh alpha. Nếu có, Apple sẽ reject ứng dụng.
 
Bạn cũng có thể đưa một launch images để nó xuất hiện một thời gian ngắn khi ứng dụng của bạn đang load. Ảnh này phải là một file .png có kích thước 1920 × 1080 và nó cũng không được có bất kỳ khu vực/pixel trong suốt nào cả. Cũng lưu ý rằng Apple đã nhấn mạnh rất rõ về các yêu cầu đối với các tập tin này, bạn có thể xem thêm trong hướng dẫn của họ.
 
Tương tự như các icons ứng dụng, cả 2 tập tin này phải được quy định trong bảng tvos, nhưng bên ngoài bảng icon. Corona SDK sẽ biên dịch và đóng gói những hình ảnh này khi bạn build cho tvOS.
 
    tvos =
    {
        icon =
        {
            -- Icons here (see above)
        },

        -- Top Shelf image; a 1920x720 image file
        topShelfImage = "Icon-tvOS-TopShelf.png",

        -- Launch image; a 1920x1080 image file
        launchImage = "Icon-tvOS-Launch.png",
    },
Game controllers
 
Ngoài TV Apple Remote, Coronalabs còn có game controller framework để hỗ trợ cho các tay cầm. Với các daily build trước 2105.2782, bạn phải cung cấp controllers mà bạn muốn hỗ trợ: Apple TV Remote ("MicroGamepad"), gamepad loại nhỏ ("Gamepad"), và một controller đầy đủ ("AdvancedGamepad") như sau:
 
    tvos =
    {
        plist = {
            GCSupportedGameControllers = {
                { ProfileName = "ExtendedGamepad" },
                { ProfileName = "Gamepad" },
                { ProfileName = "MicroGamepad" },
            },
            GCSupportsControllerUserInteraction = true,
        }
    },
 
Bắt đầu với daily build 2015.2783 trở về sau, bạn có thể bỏ qua bước này bởi Coronalabs đã mặc định thiết lập nó giúp cho bạn.
 
Định hướng cho ứng dụng
 
Corona SDK sẽ bỏ qua các thiết lập định hướng cho tvOS - chỉ hỗ trợ "landscapeRight và nó được thực hiện theo mặc định. Nói cách khác, các ứng dụng tvOS luôn định hướng dạng landscape và bạn không thể thay đổi nó.
 
Idle Timer
 
Ứng dụng tvOS của bạn nên vô hiệu hóa screen idle timer thông qua system.setIdleTimeout()
 
Widget Focus
 
Corona widgets không hỗ trợ focus. Để tương tác với các widgets trên Apple TV, bạn sẽ cần phải viết mã tùy chỉnh để xử lý focus. Xem project mẫu PewPew để biết cách kiểm soát các widgets khi chúng nhận được focus và các game controller events thay đổi focus như thế nào.
 
Native Display Objects
 
Các hàm native object sau đây được hỗ trợ và không giống như các widgets, các đối tượng tự này được động hỗ trợ cho cả hai tương tác focus và controller: