Java等距深度(非钻石)

时间:2015-06-16 04:53:09

标签: java isometric

所以我有一个简短的问题。我目前正在用Java制作一个小游戏,我想尝试将玩家隐藏在屏幕上的假3D物体背后(等轴测图)。不幸的是我无法发布图片(不够代表)。基本上它是一个32乘48的3D模块,通过让它的一半变浅,而另一半变暗,变成3D模糊。玩家的尺寸与街区相同,可以围绕这些街区的地图自由移动。如果玩家在一个区块后面移动,它的底部隐藏在它后面。当它在前面移动时相反,覆盖非玩家区块。现在我在GameMaker Studio中制作了一个示例程序来测试它。为了使它在GM中工作,我为每个精灵创建了一个脚本,该脚本是一行代码:

depth = y * -1

这会导致玩家的底部隐藏'当它移动到它们后面的块后面。我对GM的wiki进行了一些调查,它几乎改变了它的深度。实例。现在我的问题是,我将如何在Java中做这样的事情?

P.S。这是钻石中的。它处于一个直的2D世界中(向前看向下45个物体)。

编辑: 以下是GameMaker版本的一些图片:

Player Outside

Player Inside

2 个答案:

答案 0 :(得分:0)

了解drawing isometric worlds。 阅读Java和isometric开发。

答案 1 :(得分:0)

感谢Kayaman解决问题:

  

如果你首先绘制你的玩家,然后在它的南边的墙上画一个墙,那么墙的上半部分将掩盖玩家的下半部分。所以不,你不需要分别画两半。这当然意味着你需要在地图的同时绘制玩家,所以你不能先绘制地图然后再绘制玩家。

仅供将来使用,java中的图层分层由添加顺序决定。这是我正在寻找的确切答案。 GM代码是GameMaker设置图像添加到屏幕的顺序的方式。

感谢大家的帮助!