Cách Tạo Trí Tuệ Nhân Tạo Cho Một Slime Kẻ Thù | hyperPad Documentation

Loading...

Logo

IMG_0139.TRIM.GIF

Ghi chú: Một tệp dự án hoàn chỉnh cho hướng dẫn này có thể được tìm thấy ở cuối bài viết này.

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ tạo trí tuệ nhân tạo (AI) cho một slime kẻ thù thuyết phục trong một trò chơi kiểu nền tảng. Chúng ta sẽ đề cập đến một số tính năng và hành vi nâng cao hơn trong hyperPad, vì vậy hướng dẫn này giả định rằng bạn đã có một số kiến thức cơ bản về biên tập viên hyperPad. Nếu bạn nghĩ rằng bạn cần làm quen hơn với việc tạo một trò chơi từ đầu, bạn có thể xem qua Hướng dẫn đầy đủ - Tạo một trò chơi nền tảng trước.

Để làm cho slime trông "thông minh", nó nên làm nhiều hơn là chỉ di chuyển qua lại, và nên có chút nhận thức về môi trường xung quanh.

Nghe thú vị đấy! Nhưng trước khi bắt đầu, chúng ta nên chi tiết cách mà slime kẻ thù nên hành xử:

  • Thay vì đi bộ, slime sẽ nhảy sang trái hoặc phải để di chuyển.
  • Slime sẽ nhảy về phía người chơi.
  • Nếu người chơi ở quá xa, slime sẽ không di chuyển (ngủ).
  • Slime sẽ làm giảm máu của người chơi khi tiếp xúc.
  • Slime sẽ bị đánh bại nếu người chơi nhảy lên trên nó.

Bây giờ mà chúng ta biết mình muốn làm gì, hãy bắt đầu nào!

Phần 1: Thiết lập dự án

Trong hướng dẫn này, chúng ta sẽ bắt đầu một dự án mới từ đầu để giữ mọi thứ đơn giản. Tạo một dự án mới và đặt thành "Góc nhìn bên", bạn có thể để các cài đặt khác ở giá trị mặc định của chúng.

Với dự án mới của bạn đã được tạo, hãy đến Thư viện Tài sản và lấy "Gói khởi đầu nền tảng" bởi hyperPad trong cửa hàng tài sản. (Nó miễn phí!)

a7JUWwiO.jpg

Photo_2019-06-26__1_15_13_PM.png

Bây giờ mà chúng ta đã có một số tài sản để làm việc, hãy tiến hành và đặt một số khối đất và tạo thế giới của bạn. Nếu bạn chưa ở đó, hãy đến Thư viện Tài sản và chạm vào "Tải xuống", sau đó "Gói khởi đầu nền tảng".

Trong hình dưới đây, một số khối đất (trong thư mục "Thế giới cỏ") đã được đặt và một nền (trong thư mục "Nền") đã được thiết lập.

Photo_2019-06-26__1_16_22_PM.png

Bây giờ mà chúng ta đã có một cảnh đẹp để làm việc, hãy thêm các đối tượng Người chơi và Slime. Đi đến Thư viện Tài sản và mở thư mục Tải xuống của bạn, sau đó mở thư mục "Gói Khởi Đầu Nền Tảng" nếu chúng chưa mở.

Chúng ta sẽ sử dụng "Người ngoài hành tinh màu xanh" làm người chơi, vì vậy hãy chạm vào tài sản người ngoài hành tinh màu xanh để xem tất cả các chu kỳ hoạt hình của nó. Theo mặc định, chúng ta muốn người chơi đứng im, vì vậy hãy chạm vào hoạt hình "Đứng" và đặt nó vào cảnh.

Trong cùng thư mục trong Thư viện Tài sản, cũng có một nhân vật hoạt hình "Slime Hồng". Hoàn hảo để chúng ta sử dụng làm kẻ thù slime! Chạm vào tài sản slime và chọn hoạt hình "Di chuyển" và đặt một slime lên cảnh cùng với nhân vật người chơi của bạn.

Photo_2019-06-26__1_17_03_PM.png

Đến giờ, thật tốt! Chúng ta đã có đối tượng người chơi và đối tượng slime, sẵn sàng cho chúng ta sử dụng. Nhưng nếu chúng ta chơi dự án của mình ngay bây giờ, chúng ta sẽ không thể tương tác với trò chơi chút nào. Vì vậy, chúng ta sẽ phải tạo một số logic để mang lại sức sống cho trò chơi của mình.

Phần 2: Điều khiển Người chơi

Trước khi chúng ta có thể bắt tay vào việc làm cho slime kẻ thù có chút sức sống, trước tiên chúng ta nên có một số điều khiển cho người ngoài hành tinh màu xanh.

Chạm vào người ngoài hành tinh màu xanh và thiết lập chế độ vật lý của nó từ Tường thành Vật lý, điều này sẽ cho phép người chơi di chuyển tự do. Sau đó, hãy chạm vào nút "Hành vi" để mở trình biên tập hành vi cho nhân vật người chơi của chúng ta để chúng ta có thể thêm một số điều khiển.

IMG_0054.JPG

Trong trình biên tập hành vi cho nhân vật người chơi của chúng ta, bạn nên thấy một hành vi Chơi Hoạt Hình cô độc. Chúng ta có thể để hành vi đó như vậy, nhưng chúng ta có thể thêm một số bạn bè cho nó.

Dưới phần Tương tác, đặt ở đâu đó một hành vi Điều khiển Joystick cũng như một Nhảy với Nút hành vi. Với những hành vi này, người chơi của chúng ta giờ đây đã sẵn sàng để kiểm soát. Nhưng, nó thiếu một số hoạt hình.

Chạm vào hành vi Điều khiển Joystick và thiết lập "Hoạt Hình Joystick Trái" thành chu kỳ hoạt hình "Đi bộ" trong tài sản Người ngoài hành tinh màu xanh. Làm điều tương tự với "Hoạt Hình Joystick Phải".

Photo_2019-06-26__1_18_28_PM.png

Bây giờ nhân vật người chơi của chúng ta sẽ đi bộ, nhưng vẫn không hoạt hình khi nhảy.

Chạm vào hành vi Nhảy với Nút và thay đổi cả "Hoạt Hình Rơi" và "Hoạt Hình Nhảy" thành chu kỳ hoạt hình "Nhảy".

Photo_2019-06-26__1_18_56_PM.png

Nếu chúng ta chơi trò chơi ngay bây giờ, chúng ta có thể di chuyển và nhảy! Bước tiếp theo, chúng ta có thể bắt tay vào công việc với slime kẻ thù của chúng ta.

Photo_2019-06-26__1_19_50_PM.png

Phần 3: Chuyển động của Slime

Như chúng ta đã đề cập trong phần giới thiệu của hướng dẫn này, chúng ta muốn slime nhảy về phía người chơi. Để làm điều này, slime của chúng ta cần biết vị trí của người chơi trong thế giới. Chính vì vậy, chúng ta nên thêm một Thẻ vào nhân vật người chơi, để các hành vi của chúng ta có thể truy xuất nhân vật người chơi trong bất kỳ cảnh nào.

Chạm vào nhân vật người chơi và chọn tab Thẻ ở dưới cùng của cửa sổ thuộc tính. Gõ "Người chơi" vào ô văn bản ở trên cùng của menu thẻ và nhấn nút thêm (+) bên cạnh nó. Bây giờ nhân vật người chơi của chúng ta đã được gán thẻ "Người chơi".

Photo_2019-06-26__1_23_06_PM.png

Tương tự như những gì chúng ta đã làm với nhân vật người chơi, hãy chạm vào slime và thay đổi chế độ vật lý của nó từ Tường thành Vật lý. Sau đó, hãy chạm vào nút Hành vi để mở trình biên tập hành vi của slime.

IMG_0058.JPG

Trong trình biên tập hành vi, hãy vào phần Tùy chỉnh và kéo một hành vi Bộ đếm thời gian vào trình biên tập.

Chạm vào hành vi Bộ đếm thời gian và thiết lập khoảng thời gian của nó thành 2 giây.

Photo_2019-06-26__4_21_59_PM.png

Đây sẽ là khởi đầu cho logic của trí tuệ nhân tạo slime của chúng ta.

Ý tưởng ở đây là mỗi 2 giây, slime sẽ "suy nghĩ" về điều gì cần làm tiếp theo, chẳng hạn như: Liệu slime có nên nhảy không? Nếu quyết định nhảy, thì nên nhảy theo hướng nào?

Tiếp theo, hãy chuyển đến phần Biến đổi và đặt một hành vi Lấy Vị trí vào trình biên tập. Chạm vào nó và thiết lập mục tiêu của nó thành thẻ "Người chơi" mà chúng ta đã tạo trước đó bằng cách chạm vào tab Thẻ ở dưới cùng của cửa sổ thuộc tính và chọn "Người chơi". Bây giờ hãy kết nối Bộ đếm thời gian với hành vi Lấy Vị trí.

Photo_2019-06-26__4_22_22_PM.png

Giờ chúng ta đã biết vị trí của người chơi trong thế giới! Để xác định xem người chơi ở bên trái hay bên phải của slime, chúng ta cũng cần biết slime ở đâu trong thế giới nữa.

Kéo một hành vi Lấy Vị trí khác vào trình biên tập. Theo mặc định, hành vi đã nhắm đến slime của chúng ta, vì vậy chúng ta không cần làm gì khác ngoài việc kết nối nó với nhánh logic của chúng ta. Hãy kết nối Lấy Vị trí cho người chơi với Lấy Vị trí cho slime.

Photo_2019-06-26__4_22_40_PM.png

Tùy chọn: Để làm cho mọi thứ dễ hiểu hơn, tôi đã đổi tên các hành vi Lấy Vị trí của mình để chỉ rõ điều gì mà chúng đang theo dõi: "Lấy Vị trí Người chơi" và "Lấy Vị trí Slime". Đây là tùy chọn, nhưng nếu bạn cũng muốn thay đổi tên hành vi, bạn có thể làm điều đó bằng cách chạm vào hành vi và chạm vào tên của nó ở phần đầu của cửa sổ thuộc tính.

Đến giờ, những gì chúng ta có là cứ 2 giây, slime sẽ lấy vị trí của người chơi và vị trí của chính nó. Bây giờ mà chúng ta đã có thông tin đó, chúng ta có thể xác định xem slime nên nhảy sang trái hay sang phải.

Dưới tab Logic, hãy kéo và kết nối một hành vi Nếu. Trong thuộc tính của nó, đặt giá trị đầu tiên thành giá trị x của Lấy Vị trí đầu tiên (thẻ "Người chơi") bằng cách kéo giá trị đầu ra của hành vi vào trường trong thuộc tính của Nếu. Đối với giá trị thứ hai, hãy đặt nó thành giá trị x của Lấy Vị trí thứ hai (slime). Cuối cùng, thiết lập điều kiện của hành vi Nếu thành "Nhỏ hơn" (<).

Ghi chú: Một vị trí x của đối tượng là giá trị đại diện cho vị trí của đối tượng trong thế giới trên trục x của nó. (Trái và phải)

IMG_0061.JPG

Vậy, tất cả điều này có ý nghĩa gì? Hành vi Nếu sẽ kiểm tra xem vị trí x của người chơi có nhỏ hơn vị trí x của slime hay không. Nếu điều trên đúng, hành vi tiếp theo sẽ được thực thi. Điều này có nghĩa là nếu người chơi ở bên trái hơn slime, thì việc thực thi hành vi sẽ tiếp tục.

Rồi, bây giờ chúng ta đã thiết lập logic để slime nhảy sang trái, vậy hãy để slime thực hiện chính xác điều đó!

Dưới phần Vật lý, hãy kéo và kết nối một hành vi Áp Dụng Lực vào hành vi Nếu. Trong thuộc tính của nó, hãy đặt Lực thành: x = -0.5, y = 1. Sau đó, đặt hệ số thành một số lớn, 200 sẽ đủ.

Photo_2019-06-26__1_28_06_PM.png

Những gì chúng ta có bây giờ là nếu slime phát hiện thấy người chơi ở xa hơn bên trái hơn chính nó, nó sẽ nhảy lên (y = 1 × 200) và một chút sang trái (x = -0.5 × 200).

Thử nghiệm nhé! Chơi trò chơi và kiểm tra để xem mọi thứ hoạt động tốt. Điều bạn nên thấy là slime nhảy sang trái mỗi 2 giây, miễn là người chơi ở bên trái nó. Nếu bạn di chuyển người chơi vào bên phải slime, nó sẽ ngừng nhảy cho đến khi bạn di chuyển về bên trái của nó một lần nữa.

Photo_2019-06-26__1_28_50_PM.png

Ghi chú: Nếu slime của bạn không di chuyển, hãy kiểm tra các bước trước đó để đảm bảo rằng bạn không bỏ lỡ điều gì. Hãy chắc chắn rằng các hành vi được kết nối đúng cách, và chế độ vật lý của slime được thiết lập thành Vật lý (có thể di chuyển) thay vì Tường (không thể di chuyển). Ngoài ra, sớm muộn gì chúng ta sẽ khắc phục vấn đề mà slime đôi khi lật nghiêng hoặc lộn ngược.

Tiến bộ rất tốt cho đến giờ! Nếu slime của bạn đang nhảy lên như mong đợi, thì chúng ta đã sẵn sàng để tiếp tục. Hãy hoàn tất hành vi di chuyển của nó bằng cách cho phép slime nhảy sang phải nữa.

Quay lại trình biên tập hành vi slime, nhân đôi hành vi Nếu. Kéo và đẻ hành vi Nếu mới sang bên phải của hành vi Nếu ban đầu. Điều này sẽ biến nó thành hành vi "Nếu Khác".

Nhân đôi hành vi Áp Dụng Lực nữa, và kết nối nó với hành vi Nếu Khác mới.

Trong thuộc tính của Else If, hãy thay đổi điều kiện từ "Nhỏ hơn" (<) thành "Lớn hơn" (>). Điều này sẽ có tác động ngược lại của hành vi If đầu tiên. Nếu hành vi If đầu tiên không đúng, nó sẽ kiểm tra xem liệu hành vi Else If có đúng hay không. Có nghĩa là, nếu người chơi không ở bên trái slime, nó sẽ kiểm tra xem người chơi có ở bên phải slime hay không, và sẽ tiếp tục thực hiện các hành vi được kết nối với Else If.

Bây giờ bạn nên có một nhánh hành vi trông giống như thế này:

Photo_2019-06-26__1_30_01_PM.png

Trong hành vi Áp Dụng Lực thứ hai (dưới hành vi Nếu Khác), hãy thay đổi thuộc tính của nó để lực là x = 0.5, thay vì x = -0.5. Giờ đây, thay vì nhảy sang trái, slime sẽ nhảy sang phải.

Photo_2019-06-26__1_30_05_PM.png

Chơi dự án và thử lại! Bây giờ bạn nên thấy slime nhảy về hướng người chơi. Tuyệt vời!

Một điều mà bạn có thể đã nhận thấy trong quá trình thử nghiệm, là nếu bạn va chạm với slime, nó đôi khi có thể ngã nghiêng hoặc bị lộn ngược. Chúng ta muốn slime giữ thẳng, vì vậy hãy sửa điều đó một cách nhanh chóng.

Quay lại trình biên tập hành vi slime, hãy chuyển đến phần hành vi Biến đổi và kéo một hành vi Khóa Vòng Quay vào trình biên tập. Không cần kết nối nó với một hành vi khác, chúng ta muốn nó khóa vòng quay ngay khi slime được tạo ra nên bạn có thể để nó như vậy. Khi bạn đã làm xong, hãy thử trò chơi lại. Lần này bạn sẽ rất khó để cố gắng làm cho slime nghiêng.

Photo_2019-06-26__1_32_26_PM.png

Bạn cũng có thể nhận thấy rằng hoạt hình của slime đang chạy quá nhanh. Nếu điều này xảy ra, hãy chạm vào hành vi Chơi Hoạt Hình trong trình biên tập hành vi của slime và thay đổi Khung mỗi giây thành một số nhỏ hơn. 6 khung mỗi giây trông có vẻ tốt.

Photo_2019-06-26__1_38_22_PM.png

Tuyệt vời! Bây giờ slime của chúng ta không chỉ di chuyển một cách ổn định, mà còn trông rất đẹp nữa. Về cơ bản, logic di chuyển của slime đã hoàn thành.

Tuy nhiên, chúng ta cũng muốn slime chỉ nhảy nếu người chơi ở gần. Điều đó có nghĩa là nếu chúng ta xây dựng một thế giới lớn hơn, slime ở xa sẽ không ngay lập tức cố gắng nhảy về phía người chơi và tấn công họ. Trong phần tiếp theo, chúng ta sẽ xem xét việc thêm một điều kiện nữa để chặn logic nhảy nếu người chơi quá xa.

Phần 4: Slime đứng yên

Trong phần này, chúng ta sẽ thực hiện một số hành vi cho slime để nó đứng yên (tức là không di chuyển) khi người chơi ở quá xa.

Để đạt được điều này, chúng ta cần tìm một cách để đo khoảng cách từ slime đến người chơi. Thật tiện lợi, có các hành vi có sẵn để làm điều đó! Hãy bắt tay vào việc.

Mở trình biên tập hành vi cho slime và kéo xuống một hành vi Tính Khoảng Cách từ phần Logic. Trong thuộc tính hành vi của nó, đối tượng đầu tiên đã được thiết lập là slime của chúng ta. Đối với đối tượng thứ hai, hãy chuyển đến menu Thẻ và chọn thẻ "Người chơi".

Photo_2019-06-26__1_48_54_PM.png

Hành vi này, khi được thực thi, sẽ tính toán khoảng cách bằng mét từ slime đến người chơi. Sử dụng thông tin đó, chúng ta có thể xem liệu người chơi có quá xa hay không bằng cách kiểm tra xem nó có vượt quá một khoảng cách nhất định.

Đặt một hành vi Nếu khác từ phần Logic và kết nối nó dưới hành vi Tính Khoảng Cách. Trong các thuộc tính của hành vi Nếu, đặt giá trị đầu tiên thành giá trị đầu ra của Tính Khoảng Cách. Đặt điều kiện thành "Nhỏ hơn" và giá trị thứ hai thành 15.

Bây giờ những gì chúng ta có là một cách để kiểm tra xem người chơi có quá xa hay không bằng cách xem xét liệu khoảng cách giữa slime và người chơi có nhỏ hơn 15 (mét). Nếu điều kiện đó không đúng, thì người chơi ở quá xa và hành vi Nếu sẽ không thực thi hành vi tiếp theo.

IMG_0085.JPG

Bây giờ mà chúng ta đã có điều kiện mới sẵn sàng để sử dụng, hãy ngắt kết nối Lấy Vị trí (slime) và hành vi Nếu cũ từ phần trước của hướng dẫn và làm một chút chỗ cho điều kiện mới của chúng ta. Bạn có thể ngắt kết nối các hành vi bằng cách chạm và giữ các kết nối giữa các hành vi.

Với điều kiện khoảng cách mới được thiết lập, hãy kết nối Lấy Vị trí (slime) với hành vi Tính Khoảng Cách sau đó kết nối hành vi mới Nếu với hành vi If cũ. Bạn bây giờ nên có thứ gì đó trông giống như thế này:

Photo_2019-06-26__1_50_57_PM.png

Nó đang bắt đầu trông khá phức tạp rồi, nhưng ý tưởng tương đối đơn giản. Bây giờ chúng ta có là trước khi chúng ta kiểm tra xem slime nên nhảy hướng nào, chúng ta trước tiên kiểm tra xem khoảng cách giữa slime và người chơi có nhỏ hơn 15 (mét) hay không.

Nếu người chơi gần hơn 15 mét, thì nó sẽ tiếp tục kiểm tra xem chúng ta nên nhảy hướng nào, như thường lệ. Nếu người chơi cách quá 15 mét, chúng ta không tiếp tục và logic sẽ dừng lại ở đó cho đến lần sau slime "suy nghĩ" lại (2 giây sau).

Thử chơi game! Nếu bạn lại gần slime, nó sẽ bắt đầu nhảy về phía bạn, nhưng nếu bạn di chuyển quá xa nó sẽ ngừng di chuyển và chờ cho đến khi bạn lại gần nó lần nữa.

Slime của chúng ta đang bắt đầu trông đáng sợ rồi, nhưng nó vẫn thiếu cách để gây tổn thương cho người chơi. Trong phần tiếp theo của hướng dẫn này, chúng ta sẽ cho người chơi một thanh máu và thực hiện một số logic để gây tổn thương cho người chơi.

Phần 5: Tấn công Người chơi

Như đã được đề cập trong phần giới thiệu, chúng ta sẽ thực hiện các cuộc tấn công của slime bằng cách làm cho slime gây thiệt hại cho người chơi khi nó chạm vào người chơi. Để bắt đầu việc thực hiện cách để slime tấn công người chơi, trước tiên chúng ta cần cho người chơi một chút máu.

Trong trình biên tập chính, chọn thẻ Giao diện Cảnh và tạo một đối tượng mới với nút Đối tượng Đặc biệt. Chạm vào "Thanh Máu" để tạo một thanh máu cho người chơi của chúng ta.

IMG_0120.JPG

Vì nó được đặt trên lớp Giao diện Cảnh, nếu chúng ta chọn mở rộng thế giới của mình và để màn hình theo dõi người chơi, nó sẽ giữ ở cùng một vị trí trên màn hình.

Bạn có thể đặt nó ở bất kỳ đâu theo cách bạn thấy phù hợp trên màn hình. Tôi đã đặt mine ở giữa màn hình gần dưới cùng.

Photo_2019-06-26__1_39_49_PM.png

Khi bạn đã hoàn tất việc tìm một vị trí tốt cho thanh máu của mình, chúng ta có thể bắt tay vào thực hiện cách để loại bỏ máu từ thanh máu. Trở lại lớp chính nơi slime của bạn và mở lại trình biên tập hành vi của nó.

Trong một chỗ trống đẹp trong các hành vi của slime, hãy kéo một hành vi Va chạm từ phần Đối tượng. Trong thuộc tính của nó, thiết lập đối tượng thứ hai thành thẻ "Người chơi".

Photo_2019-06-26__1_38_54_PM.png

Dưới phần hành vi Tùy chỉnh, hãy kéo một hành vi Phát tin nhắn và kết nối nó dưới hành vi Va chạm. Trong thuộc tính hành vi Phát tin nhắn, đặt Khóa Sự Kiện thành "người chơi bị đánh", và đặt giá trị thành -10.

Nhớ: Khóa sự kiện phân biệt chữ hoa và chữ thường! Để đơn giản, hướng dẫn này sẽ sử dụng chữ thường cho các khóa sự kiện. Nếu bạn chọn sử dụng chữ hoa, hãy nhớ các chữ cái nào là chữ hoa để sử dụng sau này.

Photo_2019-06-26__1_41_06_PM.png

Bây giờ chúng ta có một cách để phát hiện khi nào người chơi nên mất máu. Khi người chơi va chạm với slime, một thông điệp cho sự kiện "người chơi bị đánh" sẽ được phát sóng với giá trị -10. Chúng ta sẽ sử dụng -10 để thông báo cho thanh máu "thêm" -10 máu, và vì giá trị là âm, nó sẽ loại bỏ 10 máu.

Chúng ta vẫn cần thêm logic vào thanh máu, vì vậy hãy làm điều đó ngay bây giờ. Thoát khỏi trình biên tập hành vi của slime, sau đó trong trình biên tập chính chạm vào lớp Giao diện Cảnh sau đó chạm vào thanh máu. Mở trình biên tập hành vi cho thanh máu.

Trong trình biên tập hành vi của thanh máu, hãy kéo một hành vi Nhận Tin Nhắn từ phần Tùy chỉnh. Trong thuộc tính của nó, thiết lập Khóa Sự Kiện là "người chơi bị đánh". (Nhớ là nó phân biệt chữ hoa chữ thường!)

Photo_2019-06-26__1_40_12_PM.png

Hành vi này sẽ là bộ lắng nghe của chúng ta cho tin nhắn "người chơi bị đánh" gửi khi nào người chơi va chạm với slime. Khi hành vi này phát hiện một thông điệp phát sóng cho "người chơi bị đánh" ở bất kỳ đâu trong trò chơi, nó sẽ thực thi.

Giờ thì thêm một hành vi Thêm vào Thanh máu dưới phần UI và kết nối nó với hành vi Nhận Tin Nhắn.

Trong thuộc tính Thêm vào Thanh máu, kéo giá trị đầu ra từ Nhận Tin Nhắn vào ô "Giá trị để thêm". Giá trị đó sẽ là giá trị -10 mà chúng ta đã thiết lập trước đó trong hành vi Phát tin nhắn trên slime. Bằng cách này, nếu chúng ta chọn làm cho những kẻ thù khác gây thiệt hại khác nhau, tất cả những gì chúng ta cần làm là thay đổi giá trị trên thông báo phát thành bất cứ giá trị nào khác mà chúng ta muốn và thanh máu cũng sẽ sử dụng giá trị đó!

Đảm bảo rằng "Sự Kiện Khi Đầy" tắt và "Sự Kiện Khi Rỗng" bật. Điều này có nghĩa là nếu thanh máu đạt 0 máu, nó sẽ thực hiện hành vi tiếp theo.

IMG_0080.JPG

Dưới phần Cảnh hành vi, hãy kéo một hành vi Tải Overlay và kết nối nó với hành vi Thêm vào Thanh máu.

Trong cài đặt Tải Overlay, thay đổi overlay đã chọn thành overlay "Game Over" mà tự động tạo cho bạn khi bạn tạo một dự án mới.

Photo_2019-06-26__1_42_30_PM.png

Chơi trò chơi và thử nghiệm! Bây giờ, bất cứ khi nào bạn tiếp xúc với slime, nó sẽ làm cạn thanh máu của bạn. Khi thanh máu đạt 0, thì trò chơi kết thúc.

Photo_2019-06-26__1_42_58_PM.png

Thật tuyệt! Bây giờ chúng ta có một cách để gây thiệt hại cho người chơi và khiến họ thua.

Có điều gì đó cảm giác hơi không ổn, tuy nhiên. Chúng ta không cung cấp nhiều phản hồi cho người chơi về việc họ đã bị tấn công ngoài việc loại bỏ máu từ thanh máu.

Chúng ta có thể sửa điều này bằng cách đẩy người chơi và slime ra xa nhau, làm cho việc tiếp xúc rất rõ ràng rằng họ đã chạm vào, cũng như giữ cho người chơi không bị tổn hại quá nhanh khi va chạm với slime một cách nhanh chóng.

Đi đến trình biên tập hành vi cho slime (có thể cần chọn lớp Chính trước), và kéo một hành vi Đẩy Đối Tượng vào dưới phần Vật lý. Kết nối nó dưới hành vi Phát tin nhắn từ trước và mở thuộc tính của nó.

Trong thuộc tính, hãy thay đổi đối tượng thứ hai thành thẻ "Người chơi" bằng cách mở tab Thẻ và chọn "Người chơi". Thay đổi giá trị Lực thành 200, Hệ số Đối Tượng A thành 0.25 và Hệ số Đối Tượng B thành 1.

Photo_2019-06-26__1_45_59_PM.png

Giờ đây, khi người chơi va chạm với slime, nó sẽ đẩy người chơi ra xa khỏi slime với lực 200 (1 × 200 lực) và slime sẽ bị đẩy ra xa khỏi người chơi với lực 50 (0.25 × 200 lực).

Trò chơi của chúng ta đang bắt đầu có cảm giác khá tốt bây giờ! Chỉ còn vấn đề là slime thì không thể bị đánh bại và người chơi thì không có cách nào để đánh bại nó. Trong phần tiếp theo, chúng ta sẽ thực hiện cách để người chơi có thể chống lại.

Phần 6: Đánh bại slime

Để cho phép người chơi tấn công slime bằng cách nhảy lên phía trên nó, chúng ta sẽ phải thay đổi cách chúng ta xử lý va chạm bằng cách để slime bỏ qua phần dưới của người chơi (đôi chân của người chơi) khi gây thiệt hại.

Mở trình biên tập hành vi cho slime và chạm vào hành vi Va chạm mà chúng ta đã tạo trong phần trước của hướng dẫn. Tắt tùy chọn "Ở Dưới", điều này sẽ bỏ qua va chạm nếu slime va chạm với phần dưới của hộp va chạm của người chơi.

Photo_2019-06-26__1_54_25_PM.png

Bây giờ, slime của chúng ta sẽ không làm tổn thương người chơi nếu người chơi nhảy lên nó. Thay vào đó, chúng ta muốn thực hiện logic khác khi điều đó xảy ra.

Với sự kiện Va chạm được chọn, hãy nhân đôi nó và đảo ngược tất cả các tùy chọn trong hành vi Va chạm mới để chỉ chọn sự kiện "Ở Dưới".

Photo_2019-06-26__1_54_42_PM.png

Điều này sẽ phục vụ như là điểm vào cho chúng ta khi người chơi nhảy lên phía trên slime.

Tiếp theo, kéo và kết nối một hành vi Hủy Đối Tượng từ phần Đối tượng. Nó nên được thiết lập để hủy đối tượng slime mặc định.

Photo_2019-06-26__1_54_53_PM.png

Bây giờ khi chúng ta chơi trò chơi, nhảy lên phía trên slime sẽ hủy nó. Nhưng một lần nữa, như đã xảy ra khi bị đánh bởi slime trước đó, điều đó không cảm thấy thỏa mãn lắm.

Giống như chúng ta đã làm ở phần trước của hướng dẫn, hãy thêm một hành vi Đẩy Đối Tượng khác. Nhân đôi hành vi Đẩy Đối Tượng cũ từ logic gây thiệt hại và kết nối nó dưới hành vi Hủy Đối Tượng. Thuộc tính từ hành vi Đẩy Đối Tượng cũ có thể giữ nguyên.

IMG_0121.JPG

Bây giờ khi chúng ta chơi trò chơi, có một cú bật hài lòng khi nhảy lên phía trên slime.

IMG_0130.TRIM.GIF

Kết luận & Bài tập

Và đó là tất cả! Chúng ta đã kiểm tra tất cả các mục đã được đề cập trong phần giới thiệu:

  • Thay vì đi bộ, slime sẽ nhảy trái hoặc phải để di chuyển. Đã hoàn thành!
  • Slime sẽ nhảy về phía người chơi. Đã hoàn thành!
  • Nếu người chơi quá xa, slime sẽ không di chuyển (đứng yên). Đã hoàn thành!
  • Slime sẽ lấy đi máu của người chơi khi tiếp xúc. Đã hoàn thành!
  • Slime sẽ bị đánh bại nếu người chơi nhảy lên trên nó. Đã hoàn thành!

Nếu bạn đã đọc được đến đây, bạn nên hiểu cách để tạo cho kẻ thù của mình một chút trí thông minh và để chúng suy nghĩ và quyết định một cách độc lập. Làm tốt lắm!

Tuy nhiên, luôn luôn có nhiều điều hơn mà có thể thực hiện. Là một bài tập, hãy thử làm những điều sau tự mình:

  1. Chơi một hoạt hình "bị đánh/chết" khi slime bị nhảy lên từ người chơi.
  2. Chơi một hoạt hình "bị đánh" cho người chơi khi slime tấn công người chơi.
  3. Thêm sự ngẫu nhiên vào khoảng cách mà slime sẽ nhảy mỗi lần.

Một tệp dự án hoàn chỉnh cho hướng dẫn này có thể được tìm thấy ở đây: Tải Dự án Hướng dẫn