Bài 8. Thiết lập con đường cho kẻ địch
Bây giờ, chúng ta cần thêm sự sản sinh của quả bóng xanh – là những
sprite kẻ địch của chúng ta, và để làm thế chúng ta cần thêm hành vi Pathfinding. Pathfinding thiết lập con đường từ 1 khu vực đến khu vực khác.
Chúng ta sẽ sử dụng chức năng Pathfinding
của C2 để khiến quả bóng di chuyển từ đường bắt đầu đến kết thúc. Thêm hành vi Pathfinding cho quả bóng xanh:
Một khi bạn làm xong điều này, quay trở lại event sheet và thêm sự kiện On start of layout:
Sau đó, thêm một hành động. Lựa chọn đối tượng BallGreen và lựa chọn Find
path. Để thiết lập con đường, bạn phải thiết lập cái này đầu tiên. Bạn có
thể thiết lập con đường tới vị trí của đối tượng, đầu vào như chạm và chuột hoặc
các vị trí xác định.
Chúng ta cần phải xác định nơi chúng ta muốn con đường tới. Bởi vì ta muốn
quả bóng xanh đi hết con đường, chúng ta cần điền End. X và End. Y, như
hình dưới. kết thúc con đường là một khối màu hồng mà ta đã thiết lập trước đó.
Vì vậy trong trường hợp này, Pathfinding
là tìm vị trí của một đối tượng.
Khi bạn đã có hành động Find path,
bạn nên thêm một sự kiện khác. Lựa chọn BallBreen
và sau đó lựa chọn On path found. Một
khi một con đường được tìm thấy, chúng ta có thể thực thi hành động.
Thêm một hành động và lựa chọn BallGreen,
và sau đó lựa chọn Move along path.
Cái này sẽ di chuyển quả bóng theo con đường mà nó nhìn thấy.
Test thử game. Bạn có lẽ sẽ nhận ra rằng quả bóng không quan tâm đến bức tường. Để chỉnh sửa nó, chúng ta cần làm 2 điều. Đầu tiên kích vào đồ hoạ PlaceTurret và thêm hành vi Solid:
Sau đó, chúng ta thêm một sự kiện khác. Chúng ta phải thêm một hành động
khác trên sự kiện On start of layout.
Thêm quả bóng xanh, sau đó thêm hành động Add
obstacle. Điều này sẽ thêm trở ngại cho Pathfinding.
Chúng ta muốn đặt đối tượng PlaceTurret
như một trở ngại (Obstacle):
Sự kiện của bạn sẽ giống như thế này:
Test thử game và bạn sẽ thấy quả bóng không thể di chuyển theo con đường mà
bạn muốn. Tôi đã thay đổi thiết lập của quả bóng như sau:
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 9. Thiết lập cơn sóng kẻ địch
Chúng ta cần thiết lập số lượng quả bóng xanh để sản sinh. Khi chúng ta ấn
nút WaveButton, một làn sóng kẻ địch
mới sẽ bắt đầu. Hãy đi tiếp và thêm một biến toàn cầu bởi kích chuột phải vào
event sheet và thêm một biến toàn cầu. Hãy gọi nó là WaveCount và thiết lập Intial
value thành 3:
Tạo một biến khác được gọi là ballCount.
Thiết lập Initial value thành 0. waveCount sẽ đếm có tổng bao nhiêu quả
bóng xanh sẽ được sinh ra trong một đợt sóng, và ballCount sẽ đếm có bao nhiêu quả bóng trên màn hình. Chúng ta cần
cả 2 biến này để khiến nó hoạt động. nói chung là, bạn muốn thử và sử dụng ít số
lượng biến nhất có thể - nhưng thường thì số lượng ít nhất có thể vẫn nhiều. Ngay cả trong một số game nhỏ mà tôi đã từng thấy, số lượng biến lên tới 200.
Khi bạn đã tạo biến toàn cầu này, hãy sử dụng nó. Thêm một sự kiện tới
quả bóng xanh và lựa chọn sự kiện On
created:
Một khi bạn có những thiết lập này trong event sheet, kích vào Add action để thêm hành động. Trong trường
hợp này, chúng ta sẽ thêm 1 vào ballCount.
Điều hướng System / Add to và thay đổi
các thiết lập:
Chúng ta cần làm vậy để đếm có bao nhiêu quả bóng trên màn hình. Ngay
khi đối tượng được tạo, chúng ta thêm 1 tới ballCount.
Hãy thêm một sự kiện khác. Sự kiện này sẽ là sự kiện Compare variable:
Chúng ta có thể sử dụng sự kiện Compare
variable để so sánh các biến. Chúng ta có thể so sánh các số với các biến
khác. Chúng ta sẽ so sánh biến toàn cầu isWave
với 1. Điều này có nghĩa là khi đợt sóng xảy ra, như khi trò chơi đã bắt đầu,
các kẻ thù sinh ra.
Kích vào isWave = 1 và nhấn C. Việc này sẽ thêm một điều kiện khác.
Điều này có nghĩa là để cho các hành động dưới đây diễn ra, cả 2 điều kiện này
phải true. Lựa chọn System và Compare variable. Chúng ta sẽ so sánh ballCount nhổ hơn hoặc bằng waveCount.
Rong mục value, lựa chọn waveCount:
Lựa chọn isWave lần nữa và nhấn
C. nó sẽ thêm một điều kiện khác.
Trong trường hợp này, chúng ta sẽ thêm điều kiện Every X seconds:
Event sheet của bạn sẽ trông như thế này:
Bây giờ, chúng ta phải thêm một hành động khác. Hành động này sẽ dành
cho sprite Start. Lựa chọn Spawn another object từ các tuỳ chọn sẵn
có trong cửa sổ Add action:
Chúng ta sẽ sản sinh đối tượng BallGreen.
Chúng ta cũng sẽ thiết lập giá trị Layer
thành 1 với thiết lập Image point
thành 1. Chúng ta cần đối tượng sản sinh ở đầu layer. Tuy chúng ta chưa thảo luận
về các điểm ảnh, nhưng chúng ta sẽ thiết lập 1 cái.
Một khi bạn có cái này ở event sheet, trở lại layout và nháy đúp chuột
vào sprite Start. Chúng ta cần thêm
điểm ảnh khác. Hình ảnh này có một điểm ảnh mặc định được gọi là Origin. Bất kì điểm ảnh nào sau Origin được gọi là imagePoint. Kích vào hộp thoại Image
points và kích vào biểu tượng dấu cộng:
Làm vậy sẽ tự động thêm một điểm ảnh. Chú ý ImagePoint có biểu tượng khác Origin.
Điểm ảnh không phải là gốc; nó đơn giản là một nơi ta có thể gắn vào trên sprite.
Đặt điểm ảnh bên ngoài nơi bạn muốn quả bóng xanh được sinh ra. Điều này thật sự
tiện dụng bởi vì nó sẽ rất khó làm trong các công cụ khác. Bạn sẽ có một cửa sổ
hình ảnh như sau:
Bây giờ chúng ta gần như đã sẵn sàng. Trở lại event sheet và tìm ballGreen và tìm hành động Find path to. Lựa chọn nó và nhấn
Ctrl+C để sao chép hành động. Tìm sự kiện On
created của đối tượng BallGreen
và dán hành động. Trong trường hợp này, trật tự không là vấn đề. Nói chung, thứ tự
của hành động là quan trọng; nếu bạn làm một trò chơi và thấy trò chơi của bạn
không hoạt động đúng, hãy xem logic của hành động và xem liệu có ý nghĩa hay không.
Chúng ta hầu như đã kết thúc xong. Cái chúng ta cần làm bây giờ là thêm
2 sự kiện Compare variable. Hãy so
sánh liệu isWave bằng 1 và ballCount bằng 0 hay không. Điều tiếp theo
ta cần phải làm là thêm một hành động. Hành động này sẽ thiết lập giá trị của isWave thành 0. Cách mà cái này hoạt động
là một khi tất cả các quả bóng được sinh ra, chúng ta cần tắt “cái máy đẻ”.
Chúng ta làm điều này bằng cách thiết lập isWave
trở về 0.
Tiếp theo, hãy đi tới sự kiện Projectile
on collision with green ball và thêm hành động. Thêm một hành động System và chọn Subtract from:
Chúng ta sẽ trừ đi từ ballCount.
Chúng ta sẽ thiết lập giá trị của biến thành 1. Khi viên đạn phá huỷ quả bóng,
nó sẽ trừ số lượng quả bóng mà ta có trên màn hình.
Tổng kết
Trong chương này, chúng ta đã học cách làm game thủ thành. Nó cũng không quá khó nhỉ ^^, các bạn chỉ cần đầu tư thêm vào phần đồ hoạ là “mát nịt”. Đây là thể loại game rất được ưa chuộng và phổ biến, cũng có rất nhiều biến
thể của nó, điển hình là Plant and
Zombie. Hãy thử suy nghĩ xem bạn có thể tạo ra được một biến thể mới không nhé
<3 .="" o:p="">3>
Trong chương tiếp theo, chúng ta sẽ học làm một puzzle game (game tri tuệ).
Về cơ bản thì thể loại này cũng không quá khó làm. Đi thôi !!!
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é