![]() |
1
1
找到屏幕上某个给定点上的对象称为拾取。 Here's an XNA link 对于你来说,这应该给你一个例子。我们的想法是从二维点中提取游戏中的三维点,然后使用标准的碰撞检测方法来确定哪个对象占用了这个空间。然后您可以选择以不同的方式呈现该对象。 如果你在选择方法上遇到困难,一个可能足够的方法是将角色渲染一次作为场景的一部分,然后在半阿尔法结束时在所有内容上再次渲染。这样你就可以看到整个角色和墙壁,尽管你看不到这样的墙壁。 |
![]() |
2
3
这是个好计划。您将希望在播放器上加入某种边界体积,这样整个播放器(加上一点额外的)随时可见。然后,只需为边界体积的每个角运行交集算法。 |
![]() |
3
1
一个简单的方法,至少对于原型来说,就是总是画出玩家 之后 你画剩下的场景。这将确保在场景中的任何其他内容之上渲染播放器。粗糙但有效。 |
![]() |
4
1
创建从相机到播放机范围的边界体积,确定哪些对象与该体积相交,然后以所需的其他样式渲染它们? 可能有一些非常聪明的方法可以做到这一点,但这看起来是非常简单的版本,不应该太高的性能命中(你可能正在做碰撞每帧无论如何…) |
![]() |
5
0
我能想到的最简单的一点是,用一个垂直于地面的平面(假设你有一个地面)来模拟所有障碍物,大致假设所有障碍物都是一堵有一定高度的墙。 在某个地方把你的播放器建模为一个点,把你的相机建模为另一个点。连接这两个点的三维线位于一个对你特别有趣的平面上,因为如果这个平面与障碍物高度以下的“障碍物平面”相交,这意味着障碍物阻碍了你对玩家点的看法。 希望有点清楚。要使其成为一种算法,您必须实现一种确定两个平面相交位置的通用方法(以确定障碍物是否足够高以阻挡视图)。 |
![]() |
Ruslan · 如何在单游戏中使用或制作“效果”? 7 年前 |
![]() |
MyNameIsGuzse · 找不到C#静态类 7 年前 |
![]() |
John Tran · 有人能告诉我为什么这样不行吗?C#XNA 8 年前 |
![]() |
PÅemysl Novák · 单博弈-等距图块,大地图上的低FPS 8 年前 |
![]() |
TS1997 · 带有winforms的单游戏 9 年前 |
|
Joe Smith · 旋转固定在精灵上的Vector2 9 年前 |
|
jacksparrow · C#XNA-遍历项目并绘制它们 9 年前 |
![]() |
user2056166 · 在xna上绘制圆段 10 年前 |