簡體   English   中英

二維深度系統方法 XNA C#

[英]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)

邏輯:

  • 繪制第 0 層的所有瓷磚
  • 繪制第 1 層的所有瓷磚
  • 等等 ...

那么顯然應該隱藏玩家的部分將被正確繪制(之前,如果玩家落后)。

(請注意,樹的最低瓷磚不應該是可行走的)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM