二维深度系统方法 XNA C#
2D Depth System Method XNA C#
我正在制作一款类似于塞尔达传说的 2D 自上而下 RPG 游戏:link 回到过去。
绘制玩家时,我想更新树的深度,以便当玩家 Y 位置高于或低于树木 Y 位置时,树在玩家上方和下方,我想树是在上面还是下面不应该由玩家的 Y 位置决定,是更低还是更高。有可能以这种方式做到这一点吗?我可以在更新方法中更改图层深度吗?
我不确定你能做到。我在编码时不是很有经验。如果即使不使用 spriteBatch 层深度也有正确的方法来执行此操作,我将不胜感激。
我发现了如何在
中使用图层深度
spriteBatch.Draw();
方法。
我正在尝试做的事情如下图所示
我用来将树木与草地砖分开的代码使用如下层深度:
spriteBatch.Begin(SpriteSortMode.FrontToBack, blendState = null, samplerState = null, DepthStencilState.DepthRead);
spriteBatch.Draw(tree, treePos, null, null, Vector2.Zero, 0, null, Color.White, SpriteEffects.None, 0.6f);
spriteBatch.End();
的平铺绘制方法
tile
设置了浮点值
0.5f
方法如下:
切片您的精灵并进行 tile-based 渲染,从地面到天空。
假设你有一个 32*32 像素的瓷砖网格,如果你有一棵 32*96 像素的树,那么切片时它会像:
A // layer 2
A // layer 1
A // layer 0 (floor)
逻辑:
- 绘制第 0 层的所有方块
- 绘制第 1 层的所有方块
- 等...
那么显然应该隐藏玩家的部分将被正确绘制(之前,如果玩家在后面)。
(注意树的最低格不应该是walk-able)
我正在制作一款类似于塞尔达传说的 2D 自上而下 RPG 游戏:link 回到过去。
绘制玩家时,我想更新树的深度,以便当玩家 Y 位置高于或低于树木 Y 位置时,树在玩家上方和下方,我想树是在上面还是下面不应该由玩家的 Y 位置决定,是更低还是更高。有可能以这种方式做到这一点吗?我可以在更新方法中更改图层深度吗?
我不确定你能做到。我在编码时不是很有经验。如果即使不使用 spriteBatch 层深度也有正确的方法来执行此操作,我将不胜感激。
我发现了如何在
中使用图层深度spriteBatch.Draw();
方法。
我正在尝试做的事情如下图所示
我用来将树木与草地砖分开的代码使用如下层深度:
spriteBatch.Begin(SpriteSortMode.FrontToBack, blendState = null, samplerState = null, DepthStencilState.DepthRead);
spriteBatch.Draw(tree, treePos, null, null, Vector2.Zero, 0, null, Color.White, SpriteEffects.None, 0.6f);
spriteBatch.End();
的平铺绘制方法
tile
设置了浮点值
0.5f
方法如下:
切片您的精灵并进行 tile-based 渲染,从地面到天空。
假设你有一个 32*32 像素的瓷砖网格,如果你有一棵 32*96 像素的树,那么切片时它会像:
A // layer 2
A // layer 1
A // layer 0 (floor)
逻辑:
- 绘制第 0 层的所有方块
- 绘制第 1 层的所有方块
- 等...
那么显然应该隐藏玩家的部分将被正确绘制(之前,如果玩家在后面)。
(注意树的最低格不应该是walk-able)