gpt4 book ai didi

c# - XNA 瓷砖映射平台?

转载 作者:行者123 更新时间:2023-11-30 21:11:53 25 4
gpt4 key购买 nike

刚开始上大学,攻读计算机科学和游戏开发学位。研究使用平铺贴图制作 2D 平台游戏。显然,2D 平台游戏的一个特点是世界比屏幕大,例如 super 马里奥兄弟、塞尔达传说等。

我想知道如何做到这一点。我已经使用一组纹理设置了一个瓦片贴图,但现在我卡住了:

  1. 当玩家位于 y = 0 或 x = screenWidth 的图 block 中时,您如何编写代码然后向上或向下滚动一点?
  2. 我如何在所有这些中吸引玩家? (使用基本方 block ,直到我弄清楚,然后我让一位艺术家排队画一些东西)

任何帮助都会很棒。大多数关于此类问题的答案都建议使用引擎,但我不想这样做,所以请不要建议。

编辑:此外,是的,我已经看过平台游戏入门工具包。没想到真的帮不了什么忙?我需要一些解释和代码,但评论不是很好。

最佳答案

我喜欢采用面向对象的方法来解决这类问题。

你提到你要绘制一个瓷砖网格(你的世界)。我假设您也会将其用于碰撞,但没有提及,所以我将忽略它。

您还提到您需要一个玩家(如果需要的话,一个马里奥)。这需要在您的世界中占有一席之地。

我会上两个类。一个给你的玩家,在 world 坐标(不是相对坐标)中有一个位置。然后我会有一个描述世界瓷砖的类(您的瓷砖 map )。然后,您可以根据它们的世界坐标绘制图 block ,并通过某种相机矩阵(平移矩阵,用于偏移世界 View )进行转换。这里的想法是移动相机,而不是移动世界。您可以使用相同的相机变换矩阵绘制玩家。

由于玩家不知道他正在被摄像机监视,因此摄像机需要知道要跟随什么。因此,摄像机应该需要“跟随”玩家。你可以给相机一个“目标”坐标,相机可以有关于如何跟随玩家的规则。

然后相机可以确定是否需要更快或更慢地“滚动”以跟上玩家。相机需要能够确定玩家是否被吸引到屏幕边缘附近,并向该边缘移动。等等

我希望这对您有所帮助:)

关于c# - XNA 瓷砖映射平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com