-->

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



    Bài 5. Thêm các physic

    Physics là sự mô phỏng các hiện tượng vật lý trong game sao cho giống với ngoài đời thực. Sự mô phỏng này có thể giống nhiều hay ít tùy thuộc vào ý tưởng game, và quyết định của lập trình viên.

    Các physic cơ bản bạn dễ nhận thấy là: Hình ảnh, Âm thanh, gia tốc rơi, chuyển động 1 vật, Va chạm nhau...

    Test game và bạn thấy viên đạn pháo ko hoạt động giống như một viên đạn pháo thực sự. chúng ta cần thêm một vài physic cho nó. Kích vào khẩu pháo và thêm hành vi Physics cho nó:


    1. Cung cấp lực tại một góc

    Chạy thử game.

    Bạn sẽ nhận ra quả bóng chỉ rơi xuống. bây giờ chúng ta đã thêm các physic, chúng ta cần thêm một lực tới quả bóng để khiến nó bắn giống như viên đạn thực sự. Thêm một hành động tới sự kiện Mouse click. Hành động này sẽ là Apply force at angle:




    Thiết lập lực thành 200. Con số càng lớn thì viên đạn đi càng xa. Đối với góc, điền cannon.Angle như màn hình sau. Điều này sẽ đảm bảo rằng viên đạn được bắn cùng đường với khẩu pháo.


    2. Thiết lập khẩu pháo bắn từng quả một


    Nếu bạn chạy game, bạn sẽ nhận ra rằng chúng ta có thể bắn nhiều đạn pháo như chúng ta muốn. Chúng ta nên hạn chế những viên đạn pháo để khiến chúng chỉ bắn từng quả một. để làm điều này, chúng ta cần thêm một biến toàn cầu. Đặt tên nó là canFire và thiết lập Initial value thành 0:


    Kích vào sự kiện On any click và nhấn C để thêm điều kiện khác. Điều hướng System/Compare variable. Thiết lập biến canFire bằng 0 (sử dụng điều kiện Equal to). 



    Một khi bạn đã hoàn thành xong, thêm một hành động System tới sự kiện Mouse - On any click để thiết lập canFire thành 1. Điều này khiến khẩu pháo bắn từng viên một. Nếu bạn test game bây giờ, bạn sẽ chỉ bắn được một viên đạn. Chúng ta sẽ thêm tính năng reloading vào lúc này. Event sheet của bạn hiện tại sẽ như sau:



    3. Thiết lập điểm nhìn để theo dõi đạn pháo


    Bạn sẽ nhận ra điểm nhìn và camera ko theo dõi viên đạn. Nháy đúp chuột vào viên đạn và thêm một hành vi ScrollTo:


    Đồng thời, thêm hành vi Destroy outside layout:


    4. Tạo một immovable ground 


    Khi bạn test thử trò chơi, bạn sẽ thấy camera thực sự đi theo quả bom. Tuy nhiên, có một vấn đề - không có mặt đất, và viên đạn sẽ rơi xuống bên dưới màn hình (thì ra bất động sản là ý này, vùng đất cố định). Chính vì vậy, hãy tạo một mặt đất. Thêm một sprite mới và thay đổi kích cỡ nó thành 1500 x 250. Đặt nó vào background layer. Hãy tô cho nó màu xanh nước biển:




    Thêm một hành vi Physics tới background sprite. Thiết lập Immovable thành YesPrevent rotation thành Yes. Nó sẽ khiến sprite này không thể di chuyển:




    Một khi bạn làm xong điều này, đặt sprite ở gần bên dưới màn hình và thiết lập Opacity thành 0 để nó trong suốt.


    5. Nạp lại khẩu pháo

    Chúng ta cần thiết lập canFire trở lại 0 để khẩu pháo có thể tải lại và bắn viên đạn khác. Thêm một sự kiện On destroyed tới cannonBall sprite:


    Tạo một sự kiện On destroyed và thiết lập canFire thành 0 bởi thêm một System thiết lập giá trị của biến:


    Sau đó, ta cần trở lại chỗ khẩu pháo để phát bắn tiếp theo được khai hoả từ đây. Để làm điều này, chúng ta thiết lập hành động Scroll to object cho System:


    Đối tượng cho sự kiện này sẽ là cannon:


    Sự kiện của bạn sẽ trông như màn hình sau. Test thử game. Bạn sẽ nhận ra khi viên đạn rơi xuống màn hình, nó sẽ bị phá huỷ. Khi điều này xảy ra, camera sẽ cuộn trở lại khẩu pháo và bạn có thể bắn lại.




    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 6. Thêm các khối

    Bây gờ, chúng ta cần thêm các khối vào trò chơi. Kích vào block sprite và thêm hành vi Physics.




    Đặt khối ở phía trước viện đạn và test nó bởi khai hoả khẩu pháo:


    1. Phá hủy viên đạn tại điểm dừng


    Viên đạn chỉ ngồi trên màn hình và không di chuyển. Chúng ta nên thêm một số logic để phá huỷ nó sau khi nó trúng một khối. Thêm một sự kiện Compare velocity tới cannonBall sprite:




    Vận tốc mà ta muốn so sánh đó là Overall velocity, và chúng ta sẽ thiết lập Comparison thành ≤ Less or equal với giá trị 0.1. Lí do chúng ta không muốn thiết lập giá trị thanh 0 là bởi vì có thể đối tượng của chúng ta vẫn có một khối lượng nhỏ vận tốc (ví dụ là 0.00001); nhưng bởi vì nó không đúng với giá trị 0, sự kiện sẽ không được kích hoạt.




    Khi viên đạn đi tới điểm dừng, chúng tra muốn phá huỷ nó. Thêm hành động Destroy object tới sự kiện:


    2. Trì hoãn việc phá hủy viên đạn


    Chạy trò chơi. Khi viên đạn dừng, nó được đặt lại rất đột ngột. Để trò chơi xử lí dễ dàng hơn, chúng ta sẽ thêm hành động Wait:


    Hãy đợi một vài giây; chúng ta sẽ thiết lập giá trị của Seconds thành 2.5 giây:


    Chúng ta cũng cần di chuyển hành động theo thứ tự của các hành động. Làm nổi bật và kéo nó lên đầu. hãy nhớ rằng hành động được đọc theo dòng, điều này có nghĩa là hành động đầu tiên sẽ xảy ra trước. Trong trường hợp này nó sẽ đợi 2.5 giây rồi phá huỷ đối tượng. Hãy test thử game:


    Bài 7. Thiết kế cấp độ của ta

    Bây giờ hãy thêm một vài thiết kế. đi tới khu vực bên phải của layout và thêm một vài khối. Như bạn thấy ở màn hình sau, chúng tôi đã đặt chúng với một lỗ hổng giữa các khối. Chúng sẽ rơi xuống, nhưng thỉnh thoảng nếu bạn bắt đầu một trò chơi với một đối tượng qá gần đối tượng khác, việc phát hiện va chạm có thể trục trặc.



    1. Thay đổi tỉ trọng của các khối


    Hãy thử game. Bạn sẽ nhận ra viên đạn pháo sẽ không va chạm mạnh với các khối. Lựa chọn chúng và thay đổi Density thành 0,2 hoặc bạn có thể thay đổi thành bất cứ giá trị nào bạn muốn.


    2. Thêm quả bóng mục tiêu


    Bây giờ, chúng ta cần thêm goalBall sprite. Đầu tiên, thêm hành vi Physics tới goalBall sprite:


    3. Phá hủy goalBall sprite


    Tiếp theo, thêm nhiều quả bóng tới cấp độ và sau đó thêm một sự kiện tới goalBall sprite:


    Khi goalBall sprite chạm vào mặt đất, chúng ta sẽ phá huỷ nó, cũng như thêm một vài tính năng.


    Thêm hành động On collision with another object kiểm tra xem liệu goalBall sprite có va chạm với đối tượng Ground trong suốt hay ko. 




    Khi goalBall sprie chạm vào đối tượng Ground, thêm một hành động phá huỷ quả bóng:


    Một khi bạn làm xong điều này, sao chép hành động bởi lựa chọn sự kiện và nhấn Crtl C và Ctrl V để dán.


    Sau đó, thay đổi Ground thành cannonBall. Điều này sẽ phá huỷ goalBall khi viên đạn trúng nó.



    4. Thêm Particles


    Hãy thêm một vài bộ phận nhỏ để trò chơi trông thú vị hơn. Quay trở lại layout, kích vào Insert New Object, thêm Particles:


    Khi bạn thêm một bộ phát hành particle, bạn thêm một đối tượng sản sinh ra rất nhiều hình ảnh hai chiều. Chúng được sử dụng cho những thứ như vụ nổ, động cơ, hoặc bất cứ thứ gì trông loè loẹt. Nháy đúp chuột vào Particles và thêm một đồ hoạ.


    Di chuyển particle tới màn hình và test thử game. CHúng ta muốn có thêm một vụ nổ hơn cách mà các bộ phận này được thiết lập.



    5. Điều chỉnh cài đặt particle


    Tôi gợi ý thay đổi Spray cone thành 360, Speed randomizer thành 20Size randomizer thành 20. Đồng thời, hãy chắc chắn rằng bạn đã thay đổi Type thành One-shot. Điều này sẽ khiến các bộ phận nhỏ xuất hiện một lần.


    6. Thêm particle khi goalBall bị phá hủy


    Quay trở lại event sheet và thêm một hành động tới On collision with ground của goalBall sprite. Thêm một tham số (parameter) Spawn another object tới goalBall. Hãy đảm bảo rằng nó được sản sinh ở layer 1. 



    Sao chép và dán hành động này tới đối tượng va chạm khác: On collision wwith cannonBall. Sau đó, sao chép đối tượng va chạm, nhưng thay đổi nó để nó được kích hoạt khi goalBall và chạm với sprite goalBall khác. 




    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