-->

  • Construct 2 Game Development by Example - Chương 6 - Phần 3






    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 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 SystemCompare 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="">


    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é

  • 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