【问题标题】:Monogame on iOS: different behavior when interpreting touches compared to Windows Phone?iOS 上的 Monogame:与 Windows Phone 相比,解释触摸时的不同行为?
【发布时间】:2013-01-21 23:42:17
【问题描述】:

只是为了做一些测试,我在 Windows 7、Windows Phone 7 和 iPhone(使用 Monogame)上执行了 Microsoft 的 XNA 示例“Shooter”。

除了 Monogame 以纵向而不是横向运行游戏这一事实之外,我注意到玩家精灵的运动表现确实不同。

在 Phone 7 上,您点击任意位置,将手指放在屏幕上,在移动它时,精灵会跟随相对于手指的移动。

然而,在 iPhone 上,精灵首先完全不动,然后移动得非常快并向上移动到屏幕边界。这让玩家无法控制。

使用的代码是:

while ( TouchPanel.IsGestureAvailable )
{
    GestureSample gesture = TouchPanel.ReadGesture();
    if ( gesture.GestureType == GestureType.FreeDrag )
    {
        player.Position += gesture.Delta;
    }
}

iOS 是否必须有所不同?

【问题讨论】:

    标签: c# xna xamarin.ios monogame


    【解决方案1】:

    MonoGame 团队正在努力实现与 XNA 的平等。有一些障碍,但我们仍然认为这些是可以克服的。

    我们希望在 iOS 中为 MonoGame 2.5 版本做好准备的两个领域是手势和正确支持横向模式。

    我希望这会有所帮助。

    D.

    【讨论】:

    • 那计划在什么日期?
    • 我们希望能在 2 月底、3 月初发布。
    【解决方案2】:

    我已经有一段时间没有从 GitHub 更新了,但是当我们开始将 MonoGame 用于一个项目时,我们发现 TouchPanel 不能正常工作。

    这是一个难题:如何将事件驱动的触摸事件扁平化为像 XNA 那样的静态类?

    为了解决这个问题,我们派生了 MonoGame 以拥有我们自己的 TouchPanel 实现,该实现只使用常规 C# 事件。如果您还需要支持常规 XNA,这可能会很难看。

    【讨论】:

    • 但我假设它也是 Windows Phone 上的事件驱动?
    • 不,如果您使用的是 XNA,它就像您在 Windows Phone 上的代码一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多