2013-04-21 33 views
7

Tôi đang viết một công cụ trò chơi giống như Final Fantasy, với nền 2D và các mô hình 3D với Irrlicht. Để tính toán va chạm với các đối tượng trong nền tôi sử dụng một lưới vô hình như thế này:Va chạm Irrlicht với một lưới vô hình

enter image description here

Tôi đã thử với mã này nhưng khi người chơi đạt được lợi thế cạnh của lưới nó rơi xuống:

TriangleSelector sel = device.SceneManager.CreateTriangleSelector(Program.field.currentScene.walkmeshLoaded, null); 
CollisionResponseSceneNodeAnimator coll = device.SceneManager.CreateCollisionResponseAnimator(sel, playerNode); 
playerNode.AddAnimator(coll); 
coll.Drop(); 
sel.Drop(); 

Trả lời

1

Tôi chưa sử dụng hệ thống bạn đang sử dụng nhưng đã hai ngày để tôi đoán được tôi sẽ chụp trong bóng tối. Nếu tôi đọc chính xác nó có vẻ như bạn đang sử dụng một hệ thống được xác định trước và một lưới bên trong nó. Khi đối tượng người chơi đi đến cạnh của lưới, nó rơi ra khỏi lưới, đúng không?

Điều gì có vẻ như đang xảy ra là động cơ bạn đang sử dụng có trọng lực sắp xếp và lưới đó ở trên mức dưới cùng nếu có. Hãy suy nghĩ của lưới như một cây cầu; nếu bạn đi ra khỏi mép bạn rơi ra. Những gì bạn có thể muốn làm là thiết lập các bức tường dọc theo mép của lưới để ngăn người chơi rơi khỏi cầu hoặc, nếu động cơ cho phép, thiết lập va chạm trên lưới ngăn người chơi đi qua mép. Sau đó sẽ là một ý tưởng tốt hơn bởi vì tôi cho rằng bạn sẽ muốn kẻ thù và NPC theo những con đường và bức tường giống nhau đó chỉ là phát hiện va chạm (và có thể cản trở những thứ như kẻ thù bay).

Tôi biết đây không phải là câu trả lời chính xác, nhưng tôi hy vọng điều này sẽ có một vài ý tưởng. Có lẽ tôi là cách tắt nhưng đây là những gì tôi đang nghĩ là đang xảy ra từ các thông tin được cung cấp.

Các vấn đề liên quan