2012-03-30 64 views
0

我最近一直在探索我自己的想法,制作一个小型的多人游戏,我的几个朋友可以玩的只是为了它的乐趣。我知道所有的基础知识,对Java更多一点,我会认为自己是java的中间人。从简单的多人JAVA游戏中的套接字开始

最近,我一直在学习如何加载小精灵,双缓冲,关键听众,鼠标听众等,使一个小侧滚动2D枪游戏。我对这些类别有了很好的理解,但现在我已经到了需要了解套接字的一部分,并且能够在线获得该游戏。

我见过关于服务器和客户端的制作地点的小教程,以及何时打开客户端会向服务器发送一条消息(字符串),例如“Orange”,服务器可以理解,并且打印出来。我可以通过查看它来理解代码(如果被要求重建从我自己的知识(斜线内存)将无法,因为我不知道套接字)。

现在我的主要问题是,我该如何开始做这样的事情,当这样做时,如何注册移动,例如,从一个客户端到服务器,然后出现在所有连接的客户端上在游戏中,还有子弹,碰撞事件,敌人等等。我似乎找不到任何好帮手,通过创建一个套接字,真正向你展示如何做到这一点,做所有基本连接的东西(我不知道),然后更新游戏状态,如果我可以称之为。所以总的来说,我怎么能基本上有一个地面,两个玩家(以精灵为代表),一些敌人(AI)和子弹能够杀死敌人,以及敌人发射的能力和杀死玩家(用户),并让服务器和客户端脱离它?哦,还有一件事,我希望能够让玩家选择一个名字,并且这个名字可以说会在游戏中的角色之上浮动......如果甚至可能有一点点建立在聊天功能,但我可能会得到先进的那一个。

如果有人能够至少指向我正确的方向,或围绕这一切解释基础知识,那就太棒了!谢谢!

-Dan

我经历了很多,如果我道歉那里,我只是想解释什么即时寻找到能够做到

+1

好的,你认为那很好。但现在,如果您需要代码帮助,请尝试一下并返回此处。网上有很多关于套接字的教程。 – Snicolas 2012-03-30 09:06:50

+0

从[套接字Java教程](http://docs.oracle.com/javase/tutorial/networking/sockets/)开始。 – assylias 2012-03-30 09:15:43

+0

哇,一口气(用一些段落)! – 2012-03-30 09:22:08

回答

1

你将需要的是一个多线程的服务器,这对于listenes进来的来自玩家的数据,然后相应更新。客户端还需要线程化并侦听来自服务器的数据,以便更新其他玩家的移动等。因此,请先阅读套接字和线程。您希望服务器为每个连接的客户端创建一个线程。

然后通过向服务器发送消息进行第一次尝试,该服务器将相同的消息回显给客户端。这将需要你使用线程和套接字,并且是一个很好的开始。

稍后您将使用相同的tequniqe(客户端将其移动到服务器,并且服务器向所有其他客户端回应移动,以便他们可以在本地更新更改)或者,客户端将移动服务器,服务器在本地更新移动。这将要求客户端获得存储在服务器上的所有对象的x和y坐标。在滞后的情况下这可能会更好(从未编程一个游戏,所以不确定哪种方法最好)。

因此,您将在服务器和客户端上都有无限循环,每个迭代获取/发送每个对象的x和y轴并使用它来重绘/处理命中等。哪个逻辑在哪个循环取决于你选择的设计。