在 directx 应用程序中,找到已知位置的 z(地形)
我的英语知识不足以讲述我的问题。我第二次使用 stackoverflow。
我正在挂接一个 directx 应用程序,我可以在屏幕上写一些东西并从屏幕和其他东西获取输入。
这个游戏有一个地形,还有很多玩家。我可以直接编辑玩家位置(x、z、y)。但是当我编辑x和z坐标时,玩家正在飞行:)因为我不知道如何计算y坐标(地形高度),所以我无法计算它。
玩家坐标为 700, 5.41, 600
当游戏将其编辑为 800 和 700 时,
,当我将其编辑为 800 和 700 时,游戏将 y 更改为 6.50,y 坐标仍然
是 5.41 6.50 坐标,地形高度为 (800, 700), 5.41 是 700,600 地形高度。
有没有办法获得特定坐标的地形高度?
更谢谢你了。
My english knowlage is not good enought to tell my problems. and i am using stackoverflow second time.
i am hooking a directx application, i just can wrote something to screen and get input from screen and other things.
This game has a terrain, and a lot of players. I can directly edit the player location (x, z, y). But when i edit x and z coordinate, the player is flying :) because i don't know how to calculate the y coordinate (terrain height), i can't calculate it.
Player coordinate is 700, 5.41, 600
when game edit it to 800 and 700, game makes y to 6.50
when i edit it to 800 and 700, the y coordinate still 5.41
6.50 is coordinate, height of terrain of (800, 700), 5.41 is 700,600 terrain height.
Is there a any way to get height of the terrain for speficed coordinate?
Thank you much more.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我找到了。
谢谢大家。
游戏正在使用 N3Terrain :)
{
整数 ix,iz;
ix = ((int)x) / TILE_SIZE;
iz = ((int)z) / TILE_SIZE;
}
I found it.
Thanks to everyone.
The game is using N3Terrain :)
{
int ix, iz;
ix = ((int)x) / TILE_SIZE;
iz = ((int)z) / TILE_SIZE;
}
我使用的一款引擎允许您投射光线并确定它们与物体的相交。我通过从上方向下投射光线来找到“地面”,并找到与地形的交叉点。
One engine I used allowed you to cast rays and determine their intersection with objects. I found the "ground" by casting a ray from above aimed down and found the intersection with the terrain.
它适用于 Knight Online。它是 CN3Terrain::GetHeight(float x, float z) 的包装。
It works on Knight OnLine. its a wrapper to CN3Terrain::GetHeight(float x, float z).