[英]2D Depth System Method XNA C#
我正在創建一個 2D 自上而下的 RPG 游戲,比如塞爾達傳說:過去的鏈接。
當玩家被繪制時,我想更新樹的深度,以便當玩家 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
這是一種方法:
切片您的精靈並進行基於圖塊的渲染,從地面開始到天空。
假設你有一個 32*32 像素的平鋪網格,如果你有一棵 32*96 像素的樹,那么當它被切片時,它會是這樣的:
A // layer 2
A // layer 1
A // layer 0 (floor)
邏輯:
那么顯然應該隱藏玩家的部分將被正確繪制(之前,如果玩家落后)。
(請注意,樹的最低瓷磚不應該是可行走的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.