我正在制作一个多个玩家应该一次玩的游戏。这是一个2D
游戏,所有角色都应该能够在屏幕上看到彼此移动。
就像现在的游戏一样,所有设备都只是发布并将其他人coordinates
提取到服务器。这是通过运行到线程来完成的:
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();
}
无论如何,我希望角色能够更顺畅地移动,因为它可以像这样做"laggy"
。有人知道如何实现这个目标吗?
也许我应该有一种坐标堆栈,它会一直将坐标推送到它,然后在游戏运行时弹出值?
任何帮助都将受到高度赞赏。
问候!
答案 0 :(得分:3)
我知道这是闪光灯,但这是一个很好的教程,可以改善玩家的移动: http://playerio.com/documentation/tutorials/building-flash-multiplayer-games-tutorial/
答案 1 :(得分:2)
检查线性插值/外推方法以帮助平滑移动。 http://en.wikipedia.org/wiki/Linear_interpolation
这里有一些关于如何在实践中实现许多数值算法的资源 http://www.nr.com/
祝你好运!