Chủ Nhật, 8 tháng 4, 2018

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 clickvà 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 reloadingvà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 Immovablethà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 canFiretrở 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 destroyedvà 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 Comparisonthà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 Densitythà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 goalBallsprite. Đầu tiên, thêm hành vi Physicstớ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 Groundtrong 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 conethà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é

Không có nhận xét nào:

Đăng nhận xét