我很难搞清楚这一点。我正在使用Google Play游戏服务API创建多人游戏。我想在对手的屏幕上划一条线。因此,需要播放MotionEvents
。一次只允许一名玩家这样做。因此,如果允许广播的播放器在屏幕上滑动手指,我需要发送所有MotionEvents
(ACTION_DOWN
,ACTION_MOVE
,...,{{1} },ACTION_MOVE
)给其他对手。那些对手需要以完全相同的顺序接收这些MotionEvent。
目前,当调用ACTION_UP
- 方法时,我正在播放MotionEvent。我必须使用onTouch()
,因为必须保证将收到所有的MotionEvent。
我已在消息中附加了两个附加字节,用于标识接收到的sendReliableMessage
列表中MotionEvent的位置。一条消息包含11个字节:x坐标(4个字节,浮点数),y坐标(4个字节,浮点数),MotionEvent.Action(1个字节,字节),positionIdentifier(2个字节,短)。
这可行,但延迟非常高。人们可以注意到高延迟,因为线条图看起来非常不平滑。
我认为这可能是因为我在很短的时间内发送了很多软件包,但是如果我将更多的MotionEvent
包装到更大的软件包上,那么线条图也不会很平滑。 / p>
你们是否有任何关于我如何使这个线条绘制过程看起来光滑,而不是迟钝的提示?那会很棒。