多人游戏使用surfaceview绘图和蓝牙多人游戏(性能)

时间:2011-02-23 23:15:47

标签: android surfaceview multiplayer

我正在为Android构建游戏。游戏本身使用与Google的月球着陆器相同的架构。 我还研究了蓝牙api和蓝牙聊天应用程序。 我想制作我的游戏,以便可以使用蓝牙互相播放2台设备。

我正在做一个乒乓球风格的游戏。所以我有一个球和2个桨。每个玩家一个。我正在使用一个线程来更新游戏和渲染到surfaceview。现在我使用这个线程将我的球拍的位置发送到另一个设备。游戏以50 fps运行。这意味着我通过蓝牙进行50次写入。这种方法有效,但存在巨大的延迟......

我应该如何改善蓝牙性能?我使用什么类型的输入和输出流?

亲切的问候

1 个答案:

答案 0 :(得分:0)

你不应该依赖连接是好的,期望可变延迟。

你需要某种time synchronization,以及某些事件的时间戳,这样即使对方迟到,它也可以计算当时球应该在哪里,并且游戏保持同步。

根据我的理解,你应该发送/时间戳的最小值是托盘位置,当它击中球和/或球的传出矢量时,从那时起另一台设备可以自己计算将发生什么,直到他击球同样如此。从那时起,任何托盘更新都是补充的。