我正在开发一个多人同时游玩的游戏。这是一个2D游戏,所有角色都应该能够在屏幕上看到彼此移动。 目前,所有设备只需将彼此的坐标发布并获取到服务器上。这是通过运行两个线程来完成的:
public void StartCoordinatorFetcherThread(final Sprite Object)
{
Thread CoordinateStarter = new Thread()
{
public void run()
{
while(true)
{
Object.testing = Object.InternetObject.GetMessages();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
CoordinateStarter.start();
}
public void StartCoordinatorPosterThread(final Sprite Object)
{
Thread CoordinatePoster = new Thread()
{
public void run()
{
while(true)
{
Object.InternetObject.PostCoordinates(Object.x,Object.y);
try {
Thread.sleep(20);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
CoordinatePoster.start();
}
无论如何,我希望角色的移动更加流畅,因为这样做可能会有一些“延迟”。有人有想法能够实现这个目标吗? 也许我应该有一种坐标堆栈,只需不断地将坐标推入其中,然后在游戏运行时弹出值? 任何帮助都将不胜感激。 问候!