2D深度系统方法 XNA C#

3
我正在创建一个类似于《塞尔达传说:神秘的村庄》的二维顶视角RPG游戏。当玩家被绘制时,我希望更新树的深度,使其在玩家的上方或下方,这应该由玩家的Y坐标高低决定。是否可以以这种方式完成?我能在更新方法中改变层深度吗?
我不确定能否这样做。我在编码方面经验不够丰富。如果有正确的方法即使不使用spriteBatch层深度也可以实现,我将非常感激任何帮助。
我已经发现如何使用层深度。
spriteBatch.Draw();

方法。
我尝试做的事情如下图所示: Woman in Front of Tree Woman Behind Tree 我用以下代码来区分树木和草坪砖块,使用了层深度:
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

Drawn image line with values and meanings


由于您是新手,像http://www.mapeditor.org这样的网站可能会对您有所帮助。 - aybe
谢谢。我会使用这个,但是我必须找到一种通过Visual Studio来完成这个任务的方法,因为这是我的学校要求的。 - Lonchenzo
1
我宁愿走弯路学习,也不想简单粗暴地掌握。 - Lonchenzo
看看我的回答,我猜你会明白的,或者去https://gamedev.stackexchange.com/问问,祝你好运! - aybe
1个回答

1
这是一种实现方法:
将精灵切片并进行基于瓷砖的渲染,从地面到天空逐层渲染。
假设您有一个32*32像素的瓷砖网格,如果您有一棵树,它的大小为32*96像素,则在切片后会变成这样:
A // layer 2
A // layer 1
A // layer 0 (floor)

逻辑:

  • 绘制所有地板0上的瓷砖
  • 绘制所有地板1上的瓷砖
  • 依此类推...

显然,应该正确绘制隐藏玩家的部分(如果玩家在后面)。

(注意:树的最底层瓷砖不应该可行走)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接