【问题标题】:VB6 Game DevelopmentVB6 游戏开发
【发布时间】:2010-04-22 12:19:25
【问题描述】:

我正在用 VB6 开发游戏(请不要问我为什么 :))。
故事板已准备就绪,正在进行粗略的实施。

我遵循“纯软件渲染”方法。 (即没有 DirectX,没有 openGL 等)

其中存在以下“严重”问题:

  • 2D alpha 透明度 要求。实现覆盖。

  • 视差实现以提供景深错觉。

  • 在全局范围内捕获鼠标滚动事件(如在 FPS-es 中;将它们映射到变化的武器)。

  • 异步声音播放,绝对“接近零延迟”。


任何想法任何人。请推荐任何有据可查的 library/ocxsample-code
请建议具有良好性能和尽可能少开销的解决方案。

此外,任何开发过任何游戏的人,
并愿意分享她/他的代码将不胜感激。
(有没有我可以研究其源代码的知名 VB 游戏??)


更新:这是GearHead Garage的屏幕截图。
这张照片应该能用上面的文字描述我正在尝试的东西...... :)


(来源:softwarepod.com

【问题讨论】:

  • @Robusto 对不起,如果我在寻求帮助时听起来太粗鲁了。但是,您在解决这些问题时提出的任何建议都会有很大帮助......谢谢。
  • 我不认为这很粗鲁——我认为你的回应是因为你在问世界。
  • 线程不是问题吗?
  • @RobS 我不这么认为(-用我的手指交叉阅读希望)。游戏为单人离线游戏,没有NPC
  • 解决这些问题的另一种方法是将 XNA 与 VB.NET 结合使用,以最大限度地减少您必须重写的代码量。

标签: graphics vb6 ocx


【解决方案1】:

EGL25 by Erkan Sanli 是一个快速开源的 VB 6 渲染器,可以渲染、旋转、动画等由数千个多边形组成的复杂实体形状。只是 Windows API 调用——没有 DirectX,没有 OpenGL。


(来源:vbmigration.com

VBMigration.comchose EGL25作为一个高质量的开源VB6项目(演示他们的VB6到VB.Net的升级工具)。

尽管如此,尽管我认为 VB6 经常受到过于严厉的批评,但我不禁想到 2010 年游戏开发一定会有更好的选择?

【讨论】:

  • 我以前从未听说过 EGL25。 +1 感谢分享。
  • 如何创建对象,即 EGL25 的模型??
  • 我不知道,你必须下载它才能找到。
【解决方案2】:

您可能想查看Game Programming Wiki——它曾经是“Lucky 的 VB 游戏网站”(我们在很久以前谈论过),但所有内容(以 VB5/6 为中心)都移到了添加其他语言的 Wiki。

网站上似乎仍有许多旧版 VB6 内容。

【讨论】:

  • 谢谢。关注该网站已有一段时间了...适合初学者-->中级。
【解决方案3】:

【讨论】:

    【解决方案4】:

    我认为,正是由于上述原因,您在 VB6 中找不到广受认可的书面游戏。

    它的设计初衷并不是一种高性能语言。为此,您需要使用您说过不想使用的图形库(DirectX、OpenGL),除非您想使用 API 调用自己对所有内容进行 BitBLT,这可能无法满足您的需求。

    VB6 已被解释,过时了,如果它在 Windows 7 上运行,我会感到惊讶。

    我认为您需要认真重新评估这里的方法。

    【讨论】:

    • 在我早期的 game-dev 尝试中,我使用了嵌入 res 中的 wav 和 mid 文件,并且能够获得几乎零延迟的音频效果。此外,我在沿一个方向滚动时在代码中使用了 bitblt 和粗略的视差实现。 Bitblitting 对我来说是最后的手段。如果可以的话,我正在尝试节省时间和精力以及干预低级代码。我不知道在全球范围内实现捕获鼠标滚动事件...感谢您的关注
    • VB6 不被解释,它被编译为本机代码。它在 Windows 7 上运行——实际上它在 Windows 7 上得到 Microsoft 的完全支持。不过,我不会给你 -1,因为选择 VB6 来开发 3D 游戏很奇怪,我自己也不会这样做。但是人们做了一些奇怪的事情——请参阅我对开源 VB6 3D 渲染引擎的回答stackoverflow.com/questions/2690656/vb6-game-development/…
    • @MarkJ - 你确定微软“完全支持”它吗?还是您在考虑 VB.Net?我读到的所有内容都表明官方的 VB6 支持早在 2005 年就结束了。此外,VB6 可以根据开发人员的选择进行解释或本地编译,因此它不是“是/不是”,而是“可能/可能不是” "。
    • @MarkJ 你是对的,VB6 可以编译为本机代码,但它默认编译为 P-Code。 msdn.microsoft.com/en-us/library/aa240840(VS.60).aspx 看起来微软将在 Win 7 上保持“它只是工作”的理念,但不会得到官方支持。 msdn.microsoft.com/en-us/vbrun/ms788708.aspx
    • @Jeremy 如果您进一步阅读:“核心 Visual Basic 6.0 运行时将在... Windows 7 的整个生命周期内得到支持”。就像它在 2 月 9 日的 Stackoverflow 回答中所说的那样,嗯,嗯,咳嗽,脸红,我 :) stackoverflow.com/questions/447007/…
    【解决方案5】:

    对于音频播放,我过去使用过http://www.fmod.org/。此库和其他库(如 BASS)仅可免费用于非商业用途。我还建议避免使用内置的多媒体播放对象。

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 2011-07-12
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多