DirectX xnacollision
DirectX xnacollision
本文关键字:xnacollision DirectX 更新时间:2023-10-16
我一直在用directX和C++与2010年的版本玩xnacollision,但我一直收到这个错误。
Error 1 error LNK2019: unresolved external symbol "int __cdecl XNA::IntersectSphereSphere(struct XNA::Sphere const *,struct XNA::Sphere const *)" (?IntersectSphereSphere@XNA@@YAHPBUSphere@1@0@Z) referenced in function "public: virtual void __thiscall PhysicsApp::UpdateScene(float)" (?UpdateScene@PhysicsApp@@UAEXM@Z) C:UsersAndrewDesktopPhysics 20 Percent ProjectPhysicsDemo.obj PhysicsDemo
当我做这个
XNA::Sphere sphere1, sphere2;
sphere1.Radius = 1.0f;
sphere1.Center = XMFLOAT3(0.0f, 0.0f, 0.0f);
sphere2.Radius = 1.0f;
sphere2.Radius = XMFLOAT3(2.0f, 0.0f, 0.0f);
int collision = XNA::IntersectSphereSphere(&sphere1, &sphere2);
我已经包含了xnacollision.h
#include
处理头文件并不是让这些事情发挥作用所需要做的唯一事情。您还必须链接到相应的.lib文件,这正是链接器所抱怨的。您需要检查您的链接器设置,并确保您的搜索路径是正确的,并且已经处理了必要的外部依赖关系。
XNACollion不仅仅是一个标头。它既是一个头文件,也是一个cpp文件,作为Direct3D 9 Collision示例的一部分在旧版DirectX SDK中提供。它不是传统D3DX11库的一部分。
在Windows8.xSDK中,DirectXMath包含来自XNACollision.h/.cpp的冲突类型,作为DirectXCollision.h
的标准include标头的一部分(它都是内联的,因此没有.cpp文件或.lib)。有一个使用它的冲突示例的更新版本。
请参阅DirectXMath简介。
既然您使用的是D3DX11和XNAMath,那么很明显您使用的就是传统的DirectX SDK。请注意,这两种方法都已弃用。请参阅MSDN和没有D3DX的生活。
相关文章:
- 如何在directx/c++中进行平移/缩放操作
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- Directx 11 - CompileFromFile() is not compiling
- 字节数组初始化会导致 DirectX 崩溃
- 在 DirectX 11 中从 GPU 读回顶点缓冲区(并获取顶点)
- 是否可以使用 DirectX 3D 11 绘制由三角形组成的圆?
- Directx 12 :在两个进程之间共享图形内存
- DirectX 11 如何处理来自 GPU 上的 sharedHandle 的图像
- > 64k C++的 DirectX 大型机型
- Linking DirectX
- C++ Visual Studio 错误:名称后跟'::'必须是类或命名空间名称 (DirectX 11)
- DirectX 11 - 点光源阴影
- DirectX 12 和 C++ CLI :无法使用IID_PPV_ARGS
- DirectX 11 -- Hello Triangle 未呈现 -- 原因:运行时库C++多线程
- DirectX 11 引擎在第三次代码改进后没有突然运行,我不知道为什么
- 如何防止 DirectX C++程序的拉伸/缩放
- 什么是 DirectX 9 中的数据流?
- DirectX 9 在重置调用之间保留状态
- 无法使用 Visual Studio 启动 DirectX 11 可执行文件,生成工作正常
- DirectX xnacollision