草庐IT

游戏组件

全部标签

xml - XML 文件中的游戏逻辑

我正在处理游戏对话文件(玩家与不可玩角色之间的对话),其中对话选择及其结果取决于特定条件并导致特定操作。现在,我可以编写一个简单的解析器来处理某种语言来指定前置条件和后置条件,但我的一个friend建议使用XML。条件可以存储为对话元素的属性,选择和Action是内部元素。然后我会使用eval函数来解析这些条件和语句(我正在使用Ruby来制作这个游戏)。为了使这种方法更简单,我可以编写一个简单的GUI来操作这些文件,而不必担心丑陋的XML。但我觉得在XML文件中处理逻辑是一个奇怪的选择。我的理解是XML文件用于数据的存储和交换,而且我总是读到关于人们如何过度使用XML的各种非设计目的的

xml - 如何从其内部子组件正确组装一个有效的 xlsx 文件?

我正在尝试在iOS上以编程方式创建一个xlsx文件。由于xlsx文件的内部数据基本上存储在单独的xml文件中,我尝试重新创建xlsx结构及其所有文件和子目录,将它们压缩成一个zip文件并将其扩展名设置为xlsx。我使用GDataXML解析器/编写器来创建所有必需的xml文件。但是,我得到的文件不能作为xlsx文件打开。即使我从有效的xlsx文件中提取所有数据,通过从原始xml文件复制数据并手动压缩它们来手动创建所有xml文件,我也无法重新创建有效的xlsx文件。问题是:xlsx真的只是一个包含xml文件的存档吗?如果我不能将xml文件压缩成zip文件并将其扩展名设置为xlsx,我该如何

windows - 我们应该将哪个 "platform"用于通知程序组件?

我们需要开发一个通知器组件。它会做的是按给定的时间间隔(例如,每15分钟)扫描数据库,以查看是否需要发送任何通知。我们在Windows上运行,因此我们一直在研究Windows服务或Windows任务计划程序。我们最关心的是我们实现的稳健性。如果由于某种原因它崩溃了,它可以在下一个时间间隔自动重启吗?我们可以使用自定义日志记录逻辑来处理崩溃吗?我想对这里使用的内容进行有根据的猜测:)如果您需要其他信息,请随意说出这样的猜测..如果有人可以简要列出Windows服务与Windows任务计划程序的优缺点,将给予支持。另外,应该注意的是,我们对其中任何一个都没有设置,所以如果您有任何其他选择,

windows - 用于游戏内覆盖的 SDK

我设法挖掘出的关于开发游戏内叠加层的少量信息(类似于Steam所做的)提到必须拦截调用图形API的帧交换函数,并在其中挂接我自己的绘图例程。这似乎是Mumble(游戏VoIP)正在做。因为我从来没有做过任何涉及Hook的事情,而且我对DirectX没有太多经验,所以我想知道是否有某种SDK,或者甚至只是一个比Mumble更易读的例子,它也实现了输入,演示了如何实现交互式游戏内叠加层。Mumble很棒,但我似乎无法全神贯注于它,尤其是它为了正确Hook它所做的更有趣的事情。此外,如果您有关于如何在Mac和Linux上执行此操作的更多详细信息...:-) 最佳答

windows - 针对 2D 游戏的大多数 Windows 版本?

如果要为大多数版本的Windows编写游戏代码,应该使用哪个API?我知道DirectDraw可以从NT4及更高版本运行(尽管DirectDraw是在NT4上使用GDI模拟的)。但是,我听说DirectDraw在较新版本的Windows中已被弃用?我可以恢复到只使用GDI,但是很难完全消除闪烁和撕裂,因为没有在缓冲区之间翻转的双缓冲。我应该选择Direct3D还是DirectDraw?或者有什么方法可以完全消除GDI中的闪烁?如果Direct3D是答案,那么大多数平台支持哪个版本? 最佳答案 除非您确定您永远不想将您的游戏移植到任何

windows - 关于 JvPatchFile 组件?

我到处都找了,没找到与这个组件相关的东西,请问你能给我一些如何使用它的建议吗?谢谢。 最佳答案 TJvPatchFile是实现文件修补实用程序的TJvComponent后代。TJvPatchFile可用于将Differences属性中的补丁应用于原始文件的内容,以便生成具有所需内容的文件。Differences属性中的值采用TJvPatchFile组件所需的特定格式。为Differences属性提供了一个设计时属性编辑器,可用于创建组件所需格式的补丁。指定文件的补丁使用设计时提供的密码进行加密。Differences属性中的补丁可以

c++ - 全屏形式和视频游戏有什么区别?

如果我在visualstudioc++上创建一个窗体,并使该窗体与屏幕一样大,并且覆盖所有内容,我可以创建一个全屏显示的窗体。如果我按下Windows键,启动菜单就会出现,我可以让任何其他程序在我的上面运行。如果我运行像英雄联盟这样的视频游戏,屏幕会出现故障并且游戏会全屏显示。如果您按Windows键,什么也不会发生。你不能在游戏之上拥有任何东西,如果它在自己的环境中就好了。我并不是要寻求完整的答案或实现它的代码。只是我很好奇游戏设计师使用了哪些不同的技术。 最佳答案 这两种技术本质上都是全屏,但有一个细微差别:大多数游戏使用的“真

windows - 如何在 Powershell 中引用 WinRT 组件

我正在尝试使用Windows.SystemPowerShell中命名空间,WinRT的一部分。程序集不是dll,而是winmd。将程序集加载到PowerShell的两种方式似乎不起作用#[System.Reflection.Assembly]::LoadFile("C:\ProgramFiles(x86)\WindowsKits\8.0\References\CommonConfiguration\Neutral\Windows.winmd")#Add-Type-Path"C:\ProgramFiles(x86)\WindowsKits\8.0\References\CommonCon

windows - 批量游戏中的碰撞检测无法正常工作

所以我在搞乱批处理,并制作了这个脚本:@echooffsetlocalenabledelayedexpansionset/a"start=33"set"sc1=°"set"sc2=°"set"sc3=°"set"sc4=°"set"sc5=°"set"sc6="set"sc7="set"sc8="set"sc9="set"sc10="set"sc11="set"sc12="set"sc13="set"sc14="set"sc15="set"sc16="set"sc17="set"sc18="set"sc19="set"sc20="set"sc21="set"sc22="set"sc23

windows - Wix <MajorUpgrade> 在捆绑 VC 可再发行组件后无法正常工作

我们最近决定将VC++可再分发包与我们的应用程序捆绑在一起。不幸的是,这破坏了我们的升级。旧产品未正确卸载,并且仍然与新版本一起出现在添加/删除控制面板中。如果我理解正确,当旧安装程序的所有功能都没有卸载时会发生这种情况,这就是我尝试下面描述的两种方法的原因。如果我不捆绑VC可再发行组件,旧产品将不再显示在控制面板中。出现此行为的原因是什么?我该如何解决?常用代码版本1:附加功能版本2:在现有功能中 最佳答案 我会使用详细日志进行升级以查看发生了什么。特别是查看适用于您的升级的FindRelatedProduct事件(将有多个),看