From e2a2956feb6f962cb920c42210a824a47c6dbf64 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 31 Mar 2023 20:45:43 +0800 Subject: [PATCH] 1 --- server/gameserver/mapcollider.h | 2 ++ server/gameserver/mt/MapCollider.cc | 13 ++++++++++++- server/gameserver/mt/MapCollider.h | 6 ++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/server/gameserver/mapcollider.h b/server/gameserver/mapcollider.h index d83a57b6..699c8862 100644 --- a/server/gameserver/mapcollider.h +++ b/server/gameserver/mapcollider.h @@ -29,6 +29,8 @@ namespace mc kCA_Box = 21,//箱子 kCA_Shield = 22,//盾 kCA_WallShield = 23,//能量盾 + + kCA_Surface = 100,//地表 kCA_End }; diff --git a/server/gameserver/mt/MapCollider.cc b/server/gameserver/mt/MapCollider.cc index 9e06cad4..10dcd951 100644 --- a/server/gameserver/mt/MapCollider.cc +++ b/server/gameserver/mt/MapCollider.cc @@ -42,6 +42,7 @@ namespace mt void MapCollider::Load(const std::string& filename) { + #if 0 a8::XObject xobj_root; xobj_root.ReadFromFile(MetaMgr::Instance()->GetResDir() + filename); auto xobj_nodes = xobj_root.At("nodes"); @@ -54,6 +55,7 @@ namespace mt } nodes_[node->name] = node; } + #endif } void MapCollider::LoadTerrain(const std::string& filename) @@ -88,7 +90,7 @@ namespace mt { mc::MeshCollider* mesh = new mc::MeshCollider(); mesh->type = mc::kMeshCollider; - mesh->ca_type = mc::kCA_Other; + mesh->ca_type = mc::kCA_Surface; mesh->mesh.vertices.reserve(verts_pb.vectors().size()); for (auto v : verts_pb.vectors()) { mesh->mesh.vertices.push_back @@ -116,6 +118,15 @@ namespace mt verts_pb.vectors().size(), end_tick - begin_tick }); + SaveToObjFile("1.obj", verts_pb); + } + + void MapCollider::SaveToObjFile(const std::string& filename, const navmesh::vertex& verts_pb) + { + for (auto v : verts_pb.vectors()) { + } + for (auto t : verts_pb.triangles()) { + } } mc::ColliderNode* MapCollider::GetNode(const std::string& name) diff --git a/server/gameserver/mt/MapCollider.h b/server/gameserver/mt/MapCollider.h index d97396b8..ac99b15f 100644 --- a/server/gameserver/mt/MapCollider.h +++ b/server/gameserver/mt/MapCollider.h @@ -2,6 +2,11 @@ #include "mapcollider.h" +namespace navmesh +{ + class vertex; +} + namespace mt { @@ -22,6 +27,7 @@ namespace mt void Load(const std::string& filename); void LoadTerrain(const std::string& filename); + void SaveToObjFile(const std::string& filename, const navmesh::vertex& vert_pb); mc::ColliderNode* GetNode(const std::string& name); std::map& GetNodes() { return nodes_; };