c# - 在 Silverlight(或 WPF)中构建 Roguelike

标签 c# .net vb.net silverlight roguelike

我一直在考虑使用 Silverlight 构建基于 Web 的 Roguelike 游戏(或者可能只是使用 WPF 的桌面游戏)。

如果您不知道 Roguelike 是什么,它是一种图形角色扮演游戏,其中图形是使用文本呈现的。由于图形引擎相对简单,您可以花时间在游戏中构建功能,并且一个人可以快速构建一些有趣的东西。

例如,典型的屏幕可能看起来像这样(@ 是玩家,# 是墙,其他角色是怪物、楼梯和元素之类的东西):


(来源:thangorodrim.net)

我是一位经验丰富的 ASP.Net 开发人员,我才刚刚开始使用 Silverlight。我应该为此采取一种特殊的方法吗?

为了提供一些背景知识,在 Winforms 中,大多数标准方法都太慢了——文本最终以可见的、丑陋的闪烁结束更新。我在想与 Canvas 相关的东西可能是合适的,但更好的方法是以某种方式将屏幕绘制到缓冲区中,然后立即将其翻转到屏幕上,以便它立即可见。

但我现在真的不想乱用 DirectX - 我希望 WPF 可以让我到达我需要去的地方,而不需要很大的学习曲线。

有什么想法吗?

更新:结果证明这非常具有挑战性。我尝试了很多不同的方法,我终于能够让它实际渲染得足够快,但我认为要让它快速变得炙手可热,你应该构建一个你想要使用的字体的 Sprite 图,然后从中开始工作尝试使用任何内置字体渲染的东西。我没有那样做。

当我完成核心渲染引擎时,我最终得到了一些与字体渲染怪癖相关的烦人的工件(即使是固定宽度的字体有时也有点宽......),当我最终解决这个问题时我发现libtcod ,这是一个非常令人印象深刻的 roguelike 引擎,具有 C# 包装器。这都是基于控制台的。我玩了一下它,我被震撼了。

从 1.5.1 开始,我在 libtcod 中接触到的一切都很好用,除了鼠标输入和一种键盘输入模式(我认为他们最近放弃了),但是制作 roguelike 所需的一切都在在那里,其中包括几种视线、寻路甚至地牢生成算法。视觉上还是挺高级的。你见过这样的RL吗?

http://doryen.eptalys.net/files/screenshot0014.png

简而言之,可以使用 silverlight 构建 roguelike,但除非您已经拥有强大的 silverlight 或游戏开发背景,否则我不会期望它会很容易。您将重新发明一些严肃的轮子,即使有了可以专注于游戏玩法的强大工具包,也不乏要做的事情。

最佳答案

这是迄今为止我见过的唯一在 .NET 中完成的流氓 - 看起来基于 WPF

http://roguedotnet.com

关于c# - 在 Silverlight(或 WPF)中构建 Roguelike,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884150/

相关文章:

c# - 通过 List<T> 删除不需要的对象的最简单方法是什么?

asp.net - 如何确定哪个按钮导致回发

javascript - 使用 JQUERY 重置原始值时,DropDownList SelectedIndexChanged 不会执行

C# MySQL注册系统-Select命令

c# - 没有新对象的子节点的 XML 序列化

c# - GetHashCode 是否足够强大,或者我是否需要另一个哈希函数?

c# - 系统.Enum.GetValues : In C# not the same as in VB?

c# - 无法在 C# 中禁用或启用运行 Powershell 命令的 Exchange 邮箱

c# - 如何以特定格式存储数据?在所见即所得?

c# - 如何使用 iTextSharp 读取 PDF 表单数据?