【问题标题】:C# Mobile Game DevelopmentC# 手机游戏开发
【发布时间】:2008-11-26 21:44:19
【问题描述】:

我目前正在尝试为 WM 5.0 设备实现一个大理石迷宫游戏,并且一直在努力开发一个工作原型。原型需要用户使用方向键控制球,并显示逼真的加速度和摩擦力。

我想知道是否有人有这方面的经验,可以给我一些建议或指出正确的方向,什么是必要的,以及做这种事情的最佳方式。

提前致谢。

弗兰克。

【问题讨论】:

  • 您可能想问一个关于仅在 C# 中使用 WM 设备方向键的问题。这本身就是一个难题。

标签: c# windows-mobile frameworks gdi+


【解决方案1】:

阅读您的答案时,我没有感觉到您在寻找游戏框架,而是更多:如何轻松地为具有加速度和摩擦力的球建模。

为此,您不需要完整的物理框架,因为它相对简单:

首先创建一个每秒触发 30 次的计时器,然后在计时器回调中执行以下操作:

  • 绘制迷宫背景
  • 在 ballX、ballY(两个浮点变量)处绘制一个球
  • 将 ballSpdX 添加到 ballX 并将 ballSpdY 添加到 ballY(速度)

现在检查密钥...

  • 如果方向键是左键,则减去少量ballSpdX
  • 如果方向键是左上角,则减去少量的ballSpdX和ballSpdY

对于碰撞,请执行以下操作:

  • 首先将球沿水平方向移动。然后检查与墙壁的碰撞。如果检测到碰撞,则将球移回之前的位置并反转速度:ballSpdX = -ballSpdX
  • 在垂直方向移动球。然后检查与墙壁的碰撞。如果检测到碰撞,则将球移回之前的位置并反转速度:ballSpdY = -ballSpdY

通过分别处理垂直和水平运动,碰撞变得容易得多,因为您知道球需要反弹到哪一侧。

最后一个不是最不重要的摩擦,摩擦只是每帧都这样做:ballSpdX *=摩擦; 摩擦力大约是 0.99。这样可以确保球的速度由于摩擦而在每一帧都变小;

希望这有帮助

【讨论】:

    【解决方案2】:

    我建议查看 XNA Studio 3,它内置了对 PC、Xbox 360 和移动设备的支持,它是 Microsoft Visual Studio 的官方免费衍生产品。

    http://creators.xna.com/en-US/

    http://blogs.msdn.com/xna/

    如果您四处搜索,人们已经使用物理编写了教程(速度在这个) http://www.xnamachine.com/2007/12/fun-with-very-basic-physics.html

    【讨论】:

    • 除了他询问了 Windows Mobile,而且 WinMo 不支持 XNA。
    【解决方案3】:

    试试XFlib。它是用 c++ 编写的,但不幸的是,移动设备上最酷的东西必须是 c++ 编写的。该网站有一些非常酷的免费游戏。您还可以看到大部分游戏的来源。许多都有你想要的物理。

    【讨论】:

      【解决方案4】:

      很遗憾,XNA 不支持 windows mobile 平台。但是,您似乎对在 WM 设备上绘图的技术问题没有问题,而是对实现基于物理的运动所需的逻辑有疑问,那么考虑使用 XNA 对物理和运动进行原型制作并不是一个坏主意代码。

      查看creators.xna.com"gamedev.net" 的一些教育主题

      【讨论】:

        【解决方案5】:

        如果您不知所措,尝试“更轻”的原型工具是没有错的。我会尝试 Torque Game Builder - 它会输出 XNA,尽管可能不适合您的平台。

        【讨论】:

          【解决方案6】:

          在 Windows Mobile SDK 示例(也请查看 WM 6.0 SDK)中,有几个游戏应用程序。其中一个是简单的益智游戏;不多,但这是一个起点。

          在游戏开发中使用物理并不特定于 Windows Mobile。你可以找到关于这个主题的大量文献。 This 现在出现在我的脑海中。如果你是认真的游戏开发,在任何平台上,你都应该先做一点研究。

          【讨论】:

            【解决方案7】:

            我不知道这是否有帮助,但我在 google 代码上看到了适用于 Android 平台的 Marble 应用程序。看看here,它可能会对游戏的实际逻辑产生一些见解。

            代码是开源的并用java编写(使用android sdk),但它可能有用。此外,为了更好地理解代码,请查看 SensorsManager、SensorEvent 等的文档here

            我不建议您使用与此应用程序相同的架构。

            【讨论】:

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