-->

  • Learning Construct 2 - Chương 1 - Phần 2



    Bài 8. Hệ thống sự kiện

    Construct 2 không sử dụng ngôn ngữ lập trình truyền thống. Thay vào đó, nó sử dụng 1 phong cách độc nhất đó là event system (hệ thống sự kiện). Tuy nhiên, khá giống với ngôn ngữ lập trình truyền thống, nó làm việc như sau:

    • Thực hiện các lệnh từ trên xuống dưới.

    • Thực hiện các lệnh ở mỗi lần đánh dấu.

    • Có các biến (biến toàn cục và biến địa phương).

    • Nó có 1 tính chất được gọi là hàm, làm việc như các hàm khác ở ngôn ngữ lập trình truyền thống, mà không cần đi vào code.

    Bài 9. Cách đọc một hệ thống sự kiện

    Tôi hy vọng là không làm các bạn sợ hãi vì những giải thích về hệ thống event. Đừng quá lo lắng vì nó khá là dễ. Có 2 thành phần cho 1 hệ thống event: event (sự kiện) và action (hành động). Event là những gì xảy ra trong game, còn action là những gì xảy ra khi event xảy ra. Để hiểu hơn, hãy nhìn vào hình dưới đây, đây là event lấy từ một trong những dự án game của tôi:


    Event đầu tiên, số 12, viên đạn (bullet) va chạm với kẻ thù (on collision with Enemy), điều này có nghĩa là bất kì viên đạn nào chạm vào kẻ thù thì hành động ở phía tay phải sẽ được thực hiện. Trong trường hợp này, nó sẽ trừ health (máu) của enemy (kẻ thù), phá hủy bullet (viên đạn) (tức là viên đạn sẽ biến mất khi chạm vào kẻ thù) và tạo ra 1 object mới cho hiệu ứng phá hủy. Event tiếp theo, số 13, sẽ xảy ra nếu health của enemy  nhỏ hơn hoặc bằng 0, các action (hành động sẽ xảy ra) là phá hủy enemy và thêm 200 và hàm tính điểm (score). Nó dễ mà, phải không ?

    Hãy cùng xem chúng ta tạo object redDamage như thế nào, nó nói on layer Game. Mỗi lần chúng ta tạo 1 object mới thông qua action, chúng ta cũng cần chỉ rõ nó được tạo ở layer nào. Như ở phần trước, chúng ta có thể tìm đến layer bằng tên của nó hoặc là số thứ tự, cả 2 đều được. Tuy nhiên, tôi thường sử dụng tên ,trong trường hợp tôi cần sắp xếp lại tứh bậc của các layer. Nếu chúng ta sử dụng số thứ tự, chúng ta có thể sắp xếp nhầm, điều này có nghĩa là chúng ta sẽ kết thúc việc tạo object ở layer sai.


    Trước đó, có đã nói rằng hệ thống event thực hiện các lệnh từ trên xuống dưới. Tuy nhiên, có 1 event ngoại lệ: a trigger (kích hoạt). A trigger là 1 event mà thay vì thực hiện sau mỗi lần tick (đủ điều kiện thực hiện) thì nó lại đợi 1 vài thứ xảy ra (điều kiện ở vế phía sau) trước khi nó được thực hiện. Những trigger là những event có dấu mũi tên xanh lá cây ở đầu (giống như event  bullet on collision enemy). Do đó, không giống với những event thông thường, trigger event có thể đặt ở bất cứ đâu trong hệ thống event

    Bài 10. Cách viết sự kiện

    Các event được viết trên event sheet. Khi bạn tạo 1 layout mới, bạn có thể chọn để thêm 1 event sheet  vào layout mới này. Nếu bạn chọn thêm event sheet, bạn có thể đổi tên nó. Tuy nhiên, lời khuyên dành cho bạn là nên giữ tên của event sheet giống với layout để làm rõ event sheet nào liên kết với layout nào. Chúng ta chỉ có thể liên kết 1 event sheet với 1 layout từ những thuộc tính của nó (properties), vì vậy, nếu chúng ta thêm nhiều event sheet vào 1 layout, chúng ta phải chứa chúng trong event sheet đó. Chúng ta sẽ trình bày điều này ở Chương 5: Tạo một Platformer Game.

    Để viết 1 event, chỉ cần thực hiện các bước sau:
    1. Nhấn vào thanh event sheet. 
    2. Bạn sẽ thấy thanh event sheet trống rỗng, kích vào Add event hoặc kích chuột phải và chọn Add event.
    Lưu ý, từ bây giờ, tôi sẽ đề cập về những hành động thêm bước mới với những từ như Add event, Add new event hoặc tương tự thế.

    Bạn sẽ nhìn thấy 1 cửa sổ mới cùng những object để tạo một event. Mỗi lần bạn thêm 1 event hay 1 action, C2 luôn luôn chỉ cho bạn những object có thể thêm event hay action vào. Điều này ngăn bạn khỏi việc làm cái gì đó mà nó vốn không thể, ví dụ sửa đổi giá trị của 1 biến cục bộ ngoài phạm vi của nó. Tôi sẽ giải thích ngắn gọn.



    Cho dù bạn đã thêm 1 object, vẫn sẽ luôn có 1 system object để tạo event. Điều này bao hàm 1 danh sách những event mà bạn tạo ngay từ game thay vì từ 1 object. Kích đúp vào nó và bạn sẽ nhìn thấy danh sách event mà bạn có thể tạo với system object. Có rất nhiều event, giải thích từng cái thì sẽ mất rất nhiều thời gian và cũng rất khó hiểu, tôi sẽ giải thích ụ thể khi chúng ta tạo game trong chương tới. Bây giờ, nếu bạn tò mò, thì có 1 lời giải thích của mỗi event ở phần trên cửa sổ dưới đây.

    Tiếp theo, kéo xuống và nhìn vào event Every x seconds. Kích đúp vào và nhập 1.0 giây, nhấn Done. Bạn sẽ thấy bảng này:


    Để thêm một hành động vào sự kiện, ta làm theo những bước sau:
    1. Kích vào Add action mờ mờ kia. 
    2. Chọn object mà bạn muốn tạo action. Bây giờ kích đúp vào system object. 
    3. Kích đúp vào Set layer background color action dưới mục Layers & Layout. 
    4. Đổi 3 số trong rgb thành 100,200,50. 
    5. Kích vào nút Done.

    Bạn sẽ thấy hình sau:




    Hành động này sẽ thay màu của background ở layer 0 thành màu mà ta đặt ở tham số, ở đây là màu xanh lá.




    WAITING FOR LUV
    Bạn có muốn cải thiện khả năng thiết kế đồ họa của mình? Chắc hẳn các bạn cũng biết, nếu các dòng code là linh hồn của một trò chơi, thì đồ họa chính là bộ mặt của trò chơi đó. Đồ họa đẹp, dễ nhìn sẽ khiến trò chơi của bạn tăng tỉ lệ hấp dẫn người xem đến 90%. Hiện tại có hai công cụ hỗ trợ thiết kế đồ họa game tiện nhất mà mình biết, đó là Photoshop và Illustrator. Mình sẽ cố gắng tìm kiếm và chia sẻ các đồ họa game miễn phí cho các bạn tại blog này; tuy nhiên, một trò chơi mà 100% do chính mình tạo ra vẫn hơn là đi cóp nhặt hình ảnh từ nơi khác đúng không nào. Tiện đây, mình có chia sẻ một khóa học thiết kế đồ họa Game 2D cho Mobile. Các bạn có thể tham khảo dưới đây để được giảm 40% học phí nhé.


    Bài 11. Tạo biến (variable)



    Bạn có thể thấy biến địa phương (local variable) và biến toàn cục (global variable) khi bạn thêm action. Một hàm giống như một cái cốc, nhưng thay vì chứa nước, nó chứa các giá trị (value). Có bao gồm 3 loại giá trị: Text, Number, Boolean.

    • Text: chứa giá trị của những chữ, những từ, hoặc một câu. Nó có thể bao gồm cả số, nhưng những số đấy sẽ được coi là 1 phần của từ. 
    • Number: chứa giá trị số và không được có bất kì chữ cái nào, nó không không được coi là cái gì khác ngoài con số. các biểu thức toán học được thực hiện ở đây. 
    • Boolean: chứa 1 trong 2 giá trị true hoặc false. Nó được sử dụng đẻ kiểm tra trạng thái của object (đối tượng) đúng hay sai.
    Để tạo biến toàn cục, kích chuột phải ở event sheet và chọn Add global variable.


    Sau đó, bạn sẽ thấy cửa sổ để thêm biến toàn cục.


    Dưới đây là cách điền vào từng phần:
    • Name: đây là tên của biến, 2 biến không thể có tên giống nhau. 
    • Type:  bao gồm các giá trị  Text, Number, Boolean. Chỉ có biến thực thể mới có giá trị Boolean. Tôi sẽ giải thích biến thực thể ở chương 3. 
    • Initial value: đây là giá trị biến khi tạo lần đầu. Giá trị của loại văn bản ( Text ) phải được đặt trong (“ “).
    • Description: đây là vùng không bắt buộc, chỉ khi tên của biến không mô tả đủ, bạn có thể giải thích thêm ở đây.
    Sau khi nhấp chuột vào OK, bạn đã tạo xong 1 biến mới. Biến này có phạm vi toàn cục, tức là nó có thể truy cập bất cứ đâu trong project; trong khi đó, biến địa phương bị hạn chế phạm vi và chỉ truy cập vào 1 nơi nhất định trong event sheet. Tôi sẽ trình bày sâu hơn về biến địa phương trong cuốn sách này.
    Bạn có thể nhận ra trong hình ảnh trước, ô tích Static không thể tích. Đó là bởi vì chỉ có biến địa phương mới có thể đánh dấu Staitc (tĩnh). Một sự khác biệt giữa biến địa phương và biến toàn cục đó là giá trị của biến địa phương trở lại giá trị ban đầu của nó khi code tiếp theo được thực hiện, trong khi nó biến toàn cầu sẽ không thay đổi cho đến khi có 1 code thay đổi nó. Biến địa phương tĩnh (đã tích Static) giữ giá trị của nó giống như biến toàn cục.
    Tất cả giá trị của biến có thể bị thay đổi từ những event, cả toàn cầu và địa phương, ngoại trừ những biến không đổi (constant variable). Biến không đổi luôn giữ lại giá trị ban đầu của chúng; chúng không thể bị thay đổi. Biến không đổi có thể sử dụng cho 1 biến có giá trị mà bạn không muốn phải viết lại vào lần tới.

    Bài 12. Sử dụng giấy phép (license)

    C2 có 2 bản giấy phép: cá nhân và doanh nghiệp. Nếu bạn sử dụng C2 mà không có giấy phép, tức là bạn đang sử dụng bản free.

    Bản free có những giới hạn sau:
    • Không sử dụng được với mục đích thương mại.
    • Hạn chế 100 event.
    • Hạn chế 4 layer trên một layout.
    • Chỉ có 2 hiệu ứng trên một project.
    • Không  có mục tìm kiếm. 


    Mua giấy phép sẽ loại bỏ những hạn chế trên. Mặc dù C2 không sử dụng cho mục đích thương mại, nhưng vẫn có thể sử dụng cho giáo dục và tổ chức phi lợi nhuận.

    Tổng kết

    Ở chương này, bạn đã được học về những tính năng của C2, dễ sử dụng và tại sao nó hoàn hảo cho những ai không có nền tảng lập trình (giống như sử dụng thành thạo word và paint của microsoft ấy). Bạn đã được học về giao diện của C2 và làm thế nào để tạo những layer mới trong đó. Bạn biết object là gì và tạo nó như thế nào. Chương này giới thiệu cho bạn về hệ thống sự kiện (system event) và cho bạn thấy code nó như thế nào, chương sau sẽ giải thích cụ thể hơn về hệ thống event.

    Bây giờ, bạn đã sẵn sàng để làm game với C2 rồi đấy! Tuy nhiên, trước khi nhảy vào phần này, bạn phải biết làm thế nào để tạo ra 1 game hoàn hảo. Đó là tại sao bạn nên học cách làm thế nào để tạo ra 1 tài liệu thiết kế game hoàn hảo ở Chương 2: Creating Your First Game Design.



    Bản dịch do construct2vn.ga thực hiện
    Ai sao chép hay chia sẻ hãy ghi nguồn và đưa link www.construct2vn.ga vào đầu bài chia sẻ nhé

  • DONATE TINH THẦN CHO BLOG TẠI ĐÂY

    Nếu các bạn thấy blog có ích hãy ủng hộ blog hàng ngày tại đây. Chỉ cần thi thoảng chơi game và tìm bug cho tụi mình là được. Đây là ủng hộ tinh thần, không phải tiền mặt, vật chất và không bắt buộc. Xin chân thành cảm ơn ahihi. Chúc các bạn một ngày zui zẻ.

    TELEPHONE

    02273 7x2 xxx
    02273 xxx 27x

    MOBILE

    0162 x15 xx33