![]() |
1
3
你的问题不清楚,但我会使用不同的方法,这取决于你的游戏是2D还是3D。 对于2D游戏来说,最好使用像素作为坐标。这样你就可以使用整数来存储它们,让事情变得简单明了。通过将单元的坐标除以平铺大小,可以很容易地确定单元所在的平铺。
不管你使用什么系统,帮你自己一个忙,把从位置到瓷砖编号的转换放进去 一 在代码中放置。如果你到处乱扔/100和*100仅仅因为你现在的瓷砖大小是100,它最终会回来咬你。仅仅用一个称为TILE_SIZE的常量替换“100”可能也不是最好的方法,因为完全有可能在将来的某个地方,您会希望为两个坐标系使用不同的原点。 一旦你的单位可以在一块瓷砖内移动,你的寻路问题就会变得更加复杂。即使你所有的单位都是相同的大小,当相邻的瓷砖无法通行时,你可能需要确保它们不会太靠近边缘。我建议您将所有路径保持在平铺空间中,并对路径进行后期处理,以平滑所有不必要的45度转弯。 |
![]() |
2
1
您还可以指定具有特定整数大小的磁贴。假设每个瓷砖是100x100。这样你就可以使用整数而不是浮点数。查找您/玩家所在的磁贴同样不重要,而且仍然是基于整数的。 |
![]() |
3
1
最简单的方法是使用浮点坐标,然后四舍五入到最接近的整数,得到平方。
要获得正方形内的像素位置,只需将坐标的分数部分乘以平铺大小,然后四舍五入到最接近的整数:(假设为100x100平铺)
|
![]() |
4
0
当他们想从磁贴A移动到磁贴B时,开始沿磁贴的方向移动播放器。当他们在一个合理的距离内从瓷砖的中心,你可以切换瓷砖的球员是在游戏逻辑方面。
玩家开始从磁贴A移动到磁贴B。如果对磁贴A造成伤害,大多数(如果不是所有的话)依赖于磁贴的游戏逻辑(如影响范围武器伤害)仍然会影响玩家。当玩家到达磁贴A和磁贴B中心的中间时,将玩家的实际磁贴位置切换到磁贴B。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |