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:
- Nhấn vào thanh event sheet.
- 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:
- Kích vào Add action mờ mờ kia.
- Chọn object mà bạn muốn tạo action. Bây giờ kích đúp vào system object.
- Kích đúp vào Set layer background color action dưới mục Layers & Layout.
- Đổi 3 số trong rgb thành 100,200,50.
- 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é
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é