多人游戏编程

时间:2012-03-29 10:20:42

标签: android network-programming multiplayer

我正在制作一个多个玩家应该一次玩的游戏。这是一个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"。有人知道如何实现这个目标吗?

也许我应该有一种坐标堆栈,它会一直将坐标推送到它,然后在游戏运行时弹出值?

任何帮助都将受到高度赞赏。

问候!

2 个答案:

答案 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/

祝你好运!