基于网格的第一人称“角色” RPG中的剃刀墙如何工作?

问题描述 投票:0回答:1

我正在努力寻找一种方法来问这个问题。如果您查看词汇表,可能会更清楚,我的条款来自:http://crpgaddict.blogspot.com/p/glossary.html

这是“剃刀墙”的示例,这是我正在尝试做的事情:

This is an example of "Razor Walls"

这是“蠕虫隧道墙”的示例,这是另一种方法:

This is an example of "Worm Tunnel Walls"

在“蠕虫隧道墙”中,我将使用2D阵列。数组中的每个索引都可以是墙壁或地板,非常简单。

我很难弄清楚如何概念化Razor墙。我尝试了一些不同的方法,例如制作自定义类型的数组,以便每个单元格跟踪每个边缘是否都有墙,但是您希望相邻的单元共享墙,这意味着必须将墙存储在其中。两个电池,这似乎效率很低。然后,我尝试设置2D数组并制作所有偶数墙和所有奇数墙,但是我必须编写LOT才能在各种边缘情况下工作。当然,我可以使这两种方法中的任何一种都起作用,但是感觉很笨拙。光芒四射的泳池于1988年在Amiga上做到了!几十年来,这一直是在内存和处理能力受到严重限制的机器上制作这些游戏的标准方法。似乎应该缺少一种更优雅的方法。

game-engine software-design
1个回答
0
投票

好吧,我有另一个主意。我正在考虑3个2D阵列。

  1. 阵列一存储楼层信息。

  2. 两个数组存储上下墙壁信息。

  3. 阵列三存储左右墙壁信息。

所以我的地图是8x8。第一个房间是floor [0,0],墙壁位于UDWall [0,0]和UDWall [1,0],墙壁位于LRwall [0,0]和LRWall [0,1]

我现在正在使用移动设备,但稍后我会尝试并向后报告。

© www.soinside.com 2019 - 2024. All rights reserved.