Câc thănh phần trong sơ đồ

Một phần của tài liệu Nghiên cứu và xây dựng thử nghiệm với 3d engine (Trang 98 - 102)

CHƯƠNG VI I: HỆ THỐNG VẬT LÝ 7.1 hệ thống vật lý

7.7. câc thănh phần trong sơ đồ

lớp MycontactReport được kế thừa từ lớp NxUserContacReport đđy lă lớp của NovodeX cung cấp để người dùng có thể bắt vă xử lý câc sự kiện khi có va chạm giữa câc actor trong hệ thống vật lý. Trong lớp

MyContacReport ta sẽ căi đỉ hăn ảo onContactNotify để xử lý va chạm cho câc đối tượgn ( trừ câc nhđn vật).

lớp ControllerHitReport:

lớp MyContactReort được kế thừa từ lớp NxUserContactReport đđy lă lớp của NovodeX cung cấp để người dùng có thể bắt vă xử lý câc sự kiện khi có va chạm giữa câc actor trong hệ thống vật lý. Trong lớp

MyContactReport ta sẽ căi đỉ hăm ảo ônCntactNotify để xử lý va chạm cho câc đối tượng ( trừ câc nhđn vật).

lớp Controller HitReport được kế thừa từ lớp

NxUserControllerHitRport đđy lă một lớp cũng do NovodeX cung cấp để xử lý câc sự kiện va chạm khi nhđn vật của chúng ta va chạm phải một vật cản trong môi trường. chúng ta sẽ xử lý cho từng nhđn vật riíng biết như thiết lập lực tâc động lín vật vị va chạm, xử lý AI đơn giản.

lớp CphysicsSystem:

đđy lă lớp quản lý toăn bộ hệ thống vật lý. Trong Game sẽ có duy nhất một đối tượng thuộc lớp CphysicsSystem cho phĩp ta khởi tạo hệ thống, huỷ hệ thống, khởi tạo câc thuộc tính chung cho câc đối tuợng vật lý, xử lý va chạm.

câc loại va chạm mă đối hệ thống vật lý xđy dựng có thể xử lý:

Ta sẽ xử lý va chạm co câc hộp, hình cầu, hình capsule (hình trụ có 2 đầu lă 2 bân cầu), câc mặt lồi được dùng cho câc mesh tĩnh vă động có số tượng tam giâc cầu thănh<256, vă cho câc mesh tĩnh lớn. hệ thống vật lý cũng đồng thời quản lý 3 nhóm va chạm:

với GROUP_NON_CONLLIDABLE lă nhóm câc actor hoăn toăn không thực hiện va chạm với câc đối tượng khâc hoặc hông cần xửlý va chạm cho chúng GROUP_COLLIDABLE_NON_PUSHABLE lă nó có va chạm nhưng ta không thể di chuyển chúng được, vă loại cuối cùng lă GROUP_COLLIDABLE_PUSHABLE cho phĩp ta xử lý va chạm vă tâc động lực để di chuyển chúng

một chức năng quan trọng của lớp CphysicsSystem lă cho phĩp ta tạo ra câc vật liệu tương ứng với câc bề mặt của câc vật có trong Gane. hệ thống còn cho phĩp tạo lập tốt câc hình bao bọc dựa trín thuộc tính của câc đối tượng trong Game.

Lớp CobjectPhysicController:

Như trong sơ đồ ta thấy mỗi một đối tượng CmapObject sẽ chứa một đối tượng thuộc lớp CobjectPhysicController. đối tượng năy sẽ quản lý vật lý cho đối tuợng trong Game. Sau khi đê khởi tạo đối tượng trong Game ra sẽ toong qua đối tưọng năy để tạo nín một đối tượng bao bọc tưoơg ứng để xử lý vật lý. Sau khi hệ thống vật lý xử lý xong ta cũng dựa văo đối tượng năy để thiết lập biến đổi cho đối tượng trong Game.

Như vậy, lớp CobjectPhysicController phải có khả năng khởi tạo tất cả câc đối tượng bao bọc tĩnh vă động cho cả măn Game (trừ nhđn vật) vă truy cập văo câc thuộc tính về vị trí, goc quay, trọng lượng cho câc đối tượng vật lý. Ta có thể xem lớp năy lă một giao tiếp bao bọc đẻ xử lý vật lý cho câc đối tượng trong Game

lớp CcharacterPhysicController:

lớp CcharacterPhysicController cũng có chúc năng tương tự như lớp CobjectphysicController cũng có chức năng tương tụ như lớp

CobjectPhysicController nhưng được âp dụng cho một đối tượng đặc biệt cho phĩp người lập trình có thể điều khiển trực tiếp đó lă nhđn vật mỗi đối tượng thuộc một lớp Cactor cũng sẽ chứa duy nhất một đối tượng thuộc lớp CcharacterPhysicController để điều khiểu nhđn vật, quản lý nhđn vật lă một tính năng nổi bật của NovodeX được cung cấp khả năng quản lý nhđn vật. nhờ việc xđy dựng lớp CcharacterPhysicController ta sẽ sử dụng được chức năng năy đơn giản hơn vă hiệu quả hơn.

với sự trợ giúp của hệ thống vật lý chúng ta sẽ tạo được nhưng nhđn vật di chuyển vă tương tâc tốt với môi trường. câc tính năng quan trọng điều khiển nhđn vật mă NovodeX cung cấp gồm:

cung cấp chức năng cho phĩp kiểm tra vă do chuyển nhđn vật theo yíu cầu trong măn Game mă vẫn cho phĩp nhđn vật tương tâc với môi trường xưng quanh.

Cho phĩp thực hiện câc chức năng trí tuệ nhđn tạo (AI) đơn giản cho nhđn vật.

Di chuyển nhđn vật trượt trín nền, dọc theo câc bức tường hoặc vật cản, vă đặc biệt cho phĩp nhđn vật leo lín những bậc thang với cao của câc bậc thang có thể thiết lập trước.

Thông bâo vă cho phĩp xử lý tương tâc của đối tượng với môi trường như lục tâc động lín đối tượng như thế năo khi có va chạm xảy ra thông qua hăm xử lý sự kiện khi có va chạm.

kết hợp lớp tia chiếu để nhđn vật có thể nhắm bắn đạn.

vị trí vă kích thước ban đầu của nhđn vật. hình sau minh hoạ câc bao bọc nhđn vật bằng khối hình hộp:

Như hình vẽ, ta sẽ dùng một hình hộp để bao quanh đối tượng. khi cần thực hiện di chuyển nhđn vật ta sẽ thực hiện di chuyển hình hộp bao quanh bằng hăm move do NovodeX cung cấp. thực chất khi ta gọi hăm move để di chuyển hình hộp điều khiển thì NôcdeX sẽ thực hiện kiểm tra xem nhđn vật có thể di chuyển hình hộp thủ năy đến vị trí cần đến. sau quâ trình kiểm tra như vậy, NovodeX sẽ xâc định được vị trí cũng như vận tốc di chuyển tiếp theo của khối hộp vă sẽ thực hiện di chuyển thật sự.

Sau khi điều khiển hình hộp điều khiển di chuyển ta sẽ lấy về vị trí vă góc quay mới để thiết lập cho đối tượng.

7.8. Tóm tắt

Engine vật lý ngăy căng lă một thănh phần quan trọng trong xđy dựng Game. vật lý đê tạo ra bộ mặt mới cho Game, lăm cho Game thím sống động vă chđn thực. với vai trò quan trọng của vật lý như vậy, chúng tôi đê tìm hiều vă sử dụng Engine vật lý NovodeX trong Game của mình. nhờ có hệ thống vật lý mă quâ trình Engine vật lý NovodeX trong Game của mình.

KẾT LUẬN

nhờ có hệ thống vật lý mă quâ trình xđy sựng Game giảm bớt nhiều công sức vă tăng tính hiệu qủa bởi vì câc việc kiểm tra va chạm đê được NovodeX xđy dựng vă tối ưu trín phần cứng.

Ngoăi việc quản lý vật lý cho câc đối tưọng tĩnh vă động trong Game, hệ thống vật lý xđy dựng dựa trín NovodeX 2.2 cho phĩp điều khiển nhđn vật rất thuận tiện vă dựa văo đó xđy dựng đựoc câc AI đơn giản cho nhđn vật. với việc kết hợp với tia chiếu do NovodeX cung cấp, chúng ta điều khiển tốt nhđn vật trong mối tương tâc với câc đối tượng khâc trong môi trường vă có thể nhắm vă bắn đạn chính xâc.

Một phần của tài liệu Nghiên cứu và xây dựng thử nghiệm với 3d engine (Trang 98 - 102)

Tải bản đầy đủ (DOC)

(104 trang)
w