Cách thức tổ chức tốt nhất cho dự án (Project) của bạn

Thảo luận trong 'Tutorials và Thủ thuật lập trình' bắt đầu bởi Khúc Vương, 22/4/14.

  1. Administrator
    Khúc Vương
    Nhân viên CoronaViet
    Tham gia ngày:
    17/1/14
    Bài viết:
    492
    Đã được thích:
    130
    Có lẽ khi mới làm quen với Corona bạn chưa có 1 khái niệm nào ưu việt cho việc tổ chức project của mình. Khi project của bạn quá lớn, ngày càng nhiều tài nguyên được thêm vào chẳng hạn như các file âm thanh, hình ảnh, video, modules Lua, vv… nó có thể phức tạp trong quá trình phát triển project của bạn sau này. Hướng dẫn này mình không nói là hoàn hảo về kỹ thuật tổ chức project trong Corona SDK, nhưng nó sẽ giới thiệu cho bạn một lợi ích mà bạn có thể tinh chỉnh ở nội dung chính cho phù hợp với nhu cầu của bạn một cách hoàn hảo nhất.

    [​IMG]

    Cấu trúc project
    Giữ mọi thứ đơn giản là cách tốt nhất để đảm bảo project của bạn vẫn có tổ chức và cố gắng duy trì nó. Kỹ thuật tổ chức mình chia sẽ là đủ cho hầu hết các project vì nó rất dễ làm, dễ hiểu, và dễ dàng để mở rộng (khi project của bạn trở nên lớn hơn).

    Những tiền đề cơ bản bạn nên làm theo khi tổ chức thư mục project của bạn là đặt các tập tin giống nhau riêng biệt với các loại khác. Dưới đây là ví dụ một hệ thống phân cấp project của mình:

    • Project_Folder/ (top-level)
      • images/ (folder)
      • audio/ (folder)
      • videos/ (folder)
      • data/ (folder)
      • scripts/ (folder)
      • main.lua
      • config.lua
      • build.settings
      • Default.png
      • Default2x.png
      • Icon.png
      • Icon2x.png
    Trong cấu trúc thư mục trên, điều duy nhất là thư mục cấp cao nhất - main.lua - và các tập tin khác được yêu cầu để được ở cấp cao nhất (như config.lua, build.settings, vv ).

    Các thư mục được liệt kê ở trên cùng:

    images - tập tin hình ảnh với phần mở rộng là png hay jpg...

    audio - tập tin âm thanh (caf, mp3, ogg, vv...)

    videos - các tập tin video (.. avi, mp4, vv)

    data - tập tin dữ liệu chỉ đọc được sử dụng bởi ứng dụng của bạn. Chúng có thể được định dạng bất kỳ, nhưng thông thường nó chứa các tập tin như JSON và xml...

    scripts - các tập tin Lua khác (ngoài main.lua).

    Ví dụ rằng bạn muốn sử dụng util.lua trong dự án của bạn. Thông thường, bạn muốn đặt nó vào cấp trên thư mục dự án của bạn (cùng một vị trí như main.lua) và bạn muốn yêu cầu nó như thế này:

    Mã (Lua):
    local util = require( "util" )
    Tuy nhiên, nếu bạn đã đặt util.lua vào thư mục “scripts”, dòng code trên sẽ không làm việc. Thay vào đó bạn sẽ cần phải xác định thư mục bằng cách sử dụng tên thư mục theo sau là một dấu chấm và sau đó là tên của module, ví dụ:
    Mã (Lua):
    local util = require( "scripts.util" )
    Bạn cũng sẽ phải chú ý về cấu trúc thư mục khi tải hình ảnh, bạn sẽ phải sử dụng một dấu gạch chéo "/" thay vì một dấu chấm (.). Dưới đây là một ví dụ về cách tải một hình ảnh từ thư mục của hình ảnh:
    Mã (Lua):
    local obj = display.newImage( "images/corona.png" )
    Mở rộng project
    Khi project của bạn thêm nhiều hình ảnh, màn chơi, và các tập tin khác, ngay cả khi bạn các thư mục con như trên thì vẫn có thể nhận thấy được chúng khá lộn xộn! Nếu điều đó xảy ra, bạn có thể thêm các thư mục con theo quy ước như đã đề cập. Đây là những gì mà một trò chơi với một vài level của mình:



      • Project_Folder/ (top-level)
        • images/ (folder)
          • level-001/ (folder)
          • level-002/ (folder)
          • level-003/ (folder)
        • audio/ (folder)
          • level-001/ (folder)
          • level-002/ (folder)
          • level-003/ (folder)
        • videos/ (folder)
          • level-001/ (folder)
          • level-002/ (folder)
          • level-003/ (folder)
        • data/ (folder)
          • level-001/ (folder)
          • level-002/ (folder)
          • level-003/ (folder)
        • scripts/ (folder)
          • level-001/ (folder)
          • level-002/ (folder)
          • level-003/ (folder)
        • main.lua
        • config.lua
        • build.settings
        • Default.png
        • Default2x.png
        • Icon.png
        • Icon2x.png
    Điều khác nhau duy nhất là trong cấu trúc trên các thư mục hình ảnh, âm thanh, video, và script bây giờ có thư mục con của riêng nó và có thuộc tính tương ứng với các level cụ thể. Cách này có thể có ích cho một trò chơi >10 level , nó sẽ làm cho mọi việc có tổ chức hơn và dễ sửa hơn trong thời gian dài.

    Hãy tưởng tượng có một trò chơi với 50 cấp độ (điều này là hoàn toàn bình thường) và bạn đặt tất cả các tài nguyên trong 1 thư mục , đó thật sự là một cơn ác mộng với dân lập trình :).

    Vì vậy, khi bạn sử dụng các kỹ thuật được mô tả trong hướng dẫn này sẽ rất có lợi cho bạn.

    Chúc bạn thành công! ;)
    Last edited: 18/9/14
  2. Member
    Lanh
    Tham gia ngày:
    11/4/14
    Bài viết:
    49
    Đã được thích:
    10
    Đơn giản và hiệu quả. cảm ơn ad

Chia sẻ trang này