问题标签 [roguelike]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
509 浏览

unity3d - Unity:如何在不改变场景的情况下拥有不同的房间

我正在尝试在 Rogue Legacy 的风格中创建一个 roguelike,但我需要知道如何不让敌人从一个房间带到另一个房间。离开房间时,所有敌人都需要空闲并重置。我想在不改变场景的情况下做到这一点,因为这会占用大量内存。

这是一个示例: https ://youtu.be/B5jL25HgSIs

如果您知道如何将电影机锁定到您所在的房间,则可以获得奖励积分。

0 投票
1 回答
677 浏览

python - int() 参数必须是字符串、类似字节的对象或数字,而不是“列表” Python python-tcod Roguelike

我正在使用 python-tocd roguelike 引擎制作一个 roguelike 游戏。我的游戏基于 python libtcod roguelike 教程。

我正在制作一个用于生成地图的常量列表

现在我在函数中使用一些代码来确定房间的大小。

我在这里定义了变量

现在当我启动游戏时,会出现这种情况?

我应该怎么办?

0 投票
0 回答
393 浏览

c++ - WriteConsoleOutputCharacter 绘制额外像素厚的空白空间

我一直在控制台中设计一款 roguelike 视频游戏。

我的问题是我最初使用 writeconsoleoutput 一次绘制整个地图,然后使用 writeconsoleoutputcharacter 重新绘制必要的内容。但我发现它在右侧画了一个额外的像素厚。这实际上从右侧的图块上擦除了一个像素。

有谁知道让它停止绘制字符并在字符右侧添加 1 个像素的空白区域的方法。

编辑:我发现的一种解决方法是重新绘制玩家踩踏的线条,但有时我会注意到闪烁,这并不完美。最好只在单个基础上重绘字符而不在末尾附加任何像素。或其他任何地方。用于打印字符的代码

例子:

人物走在路上之前:形象之前

人物走在路上之后: 图片之后

可执行链接:可执行

我创建了一个工作示例,你们可以编译(假设您使用 Windows)来查看发生了什么。在其中我创建了一个控制台,设置大小用 asci 符号 223 填充屏幕。然后我使用 Writeconsoleoutchar 打印一个绿色的 223 符号。您可以看到额外绘制的黑色像素线。

0 投票
2 回答
452 浏览

java - Java中的矩形重叠

我正在尝试制作一个随机地图生成器。它应该在随机坐标处创建一个随机大小的房间,并删除它与其他房间重叠的房间。但是,重叠检查不起作用。以下是代码的相关部分:

然后是 Room 类:

}

所以我一直在测试这个,它每次都会删除几个房间,但是根据房间的数量,总有一些是重叠的。一定有一些我现在看不到的愚蠢简单的解决方案......另外,除非我手动添加第一个房间,否则它为什么不生成任何房间?谢谢

0 投票
1 回答
121 浏览

c# - 在程序生成中对齐生成点

我创建了一些框来重新创建一个 2D 关卡,其中地牢是在程序生成中创建的。尽管如此,当我运行我的脚本时,它会创建正确的关卡,但它不会将 Spawnpoints 彼此对齐。

带有生成点的标准图块

这会导致无限的关卡生成(因为生成点不接触),但它也确保角色无法从一种方式转到另一种方式。我确保每个级别都是 10 x 10 并且生成点距离房间中间 10 像素。我想确保生成点之间发生碰撞,但不幸的是,事实并非如此。

生成点不相互接触

我创建了多个房间,每个房间都有自己的出口(生成点),具体取决于生成点的位置,它可以与另一个具有相同生成点的房间连接(左侧出口的房间与至少一个右出口)。

我把所有这些都放在一个 int 中,声明可用房间的数量。

房间生成器代码

房间模板

我对一个只有 1 个出生点的房间进行了新测试。我在创建第二个生成点的第二秒暂停了游戏,因此您可以看到创建的第二个关卡的高度与起始关卡的高度不同。

第一个房间

在下方,您可以看到连接房间在起始房间的上方生成。通过这样做,它会弄乱所有其他房间。

第二间不同高度

相反,我希望它是这样的

完美的房间

0 投票
1 回答
66 浏览

c# - 游戏关卡意外地相互叠加

我一直致力于程序生成关卡。我已经创建了根据它们的开口产生产卵的盒子。

如果一个盒子有一个左重生点。左边的生成将知道它需要在右边创建至少一扇门。这似乎有效,但由于某种原因,一段时间后,房间开始堆叠在一起。即使我的代码不允许这样做?

这可能是因为墙壁不是彼此完美对称的吗?因为我想拥有更广泛和不同类型的关卡,所以我认为只有生成点对齐就足够了?

这就是关卡如何启动 4 条不同的路径。 起始图像

还是很顺利 起始图像

还好 起始图像

如您所见,起始楼层的每个入口都已被封锁。在此之后,他们不断堆叠彼此的顶部,从而使关卡的生成永无止境。 起始图像

房间生成器

驱逐舰标签

房间模板

0 投票
1 回答
174 浏览

python - Pygame 墙精灵碰撞

我正在制作一个 roguelike 游戏,但在编码方面我是初学者。我已经让我的角色移动了,我的墙壁和地板精灵,但是我的代码中有一些错误允许角色穿过墙壁。

我用block_path来在地板和墙砖之间进行选择,然后尝试使用它来识别墙壁,但它并没有真正起作用。

接下来,你可以看到我的代码:

`

0 投票
1 回答
52 浏览

c# - CS1503 参数 1:无法从“Poc.Core.Player”转换为“Poc.Interfaces.IScheduleable”

抱歉,我对编程很陌生,所以这可能是一个容易解决的问题,但我的知识不足,无法知道如何解决

我将本教程用于一个简单的地牢爬虫https://bitbucket.org/FaronBracy/roguesharpv3tutorial/src/master/

在实现狗头人(我项目中的突变体)的行为时,我会收到一条错误消息,提示“参数 1:无法从 'Poc.Core.(Player/monster)”转换为“Poc.Interface.ISchedule”

这发生在 DungeonMap.cs 中的 addplayer void、addmonster void 和 removemonster void 以及 CommandSystem.cs 中的 ActivateMonsters void 上两次

如果有人能帮我解决这个问题,我将不胜感激

问题空缺:

然后是我的调度系统代码

}

0 投票
0 回答
23 浏览

javascript - 画布:在循环中绘制图块导致仅绘制单个图块

我正在生成一个随机的“地图”,如下所示:

然后,我尝试通过映射行和单元格将其渲染到画布:

通过上面只渲染一个{x: 0, y:0}. 当我检查 map 正在迭代的rowcell数组时,它们都有不同的坐标。这意味着生成部分工作正常,问题在于我如何循环和渲染地图。

我在 SO 上阅读了一些关于预加载图像的答案。这是未来需要考虑的事情,但由于我只加载一个精灵表,我认为这不是我的问题。

我无法弄清楚这一点,建议将不胜感激!

为了完整起见,这是我的绘图功能:

还有一个加载精灵表的函数:

此外,这里是一个要点,其中包含更完整的代码,展示了所描述的问题。

编辑:根据@CertainPerformance 的建议,我尝试了嵌套for循环:

尽管如此,只有一个瓦片正在被渲染。

0 投票
1 回答
45 浏览

python - Pygame - 穿过墙壁的生物

您好,我正在 pygame 中制作 roguelike 游戏,我仍处于游戏的第一步,但我遇到了问题。我不知道为什么,但我创造的生物,在这种情况下是“骷髅”,不断地穿过每一面墙。它有一个随机的水平运动,但我添加了为我的主角创建的相同代码,但同时我的角色不能穿过墙壁,骨架只是穿过它们。