我正在使用python使游戏类似于Minecraft。我有一个世界,用户可以四处走动,环顾四周,但是我不知道如何做到这一点,因此他们可以打破并放置障碍物。
我需要知道如何从世界上块的3d数组(blocks
,格式:[[[a,b,c],[d,e,f],[g,h,i]],[[j,k,l],[m,n,o],[p,q,r]],[[s,t,u],[v,w,x],[y,z,0]]]
),位置({{1} },x
,y
)和头部旋转(z
,xrot
)。
我也只需要在距它们一定距离的位置上大概5个街区即可。我试图为某行找到一种功能,并对其进行了某种形式的跟踪,但是这种方法没有奏效,我在互联网上四处张望,找不到所需的东西。
我需要能够根据他们所看到的侧面来确定他们将打破哪个块,或者一个新的块将进入哪里。
我不需要知道如何遍历3D网格,也不需要每个多维数据集仅进行一次迭代,我需要能够弄清楚他们在看哪个块以及他们在看哪张脸。我使用数学知识编写了此代码,但由于某种原因,它无法像80%的时间那样工作,但有时它能够弄清楚我正在查看哪个多维数据集(请注意,该多维数据集的0,0,0在中间的底部)
yrot
答案 0 :(得分:0)
您可以在播放器周围进行接触,并使用从播放器面部“突出”的半径。
半径r是用户可以看到并仍然能够影响它的最大距离。
使用三角形可以检测半径的末端是否在块内,等等。