我目前正在关注一篇关于一个简单的gameloop的文章,我可以让我的游戏在本地运行,我可以在其中添加许多对象和行为。
文章是这样的:http://www3.ntu.edu.sg/home/ehchua/programming/java/J8d_Game_Framework.html
我的游戏是一个网格,其他玩家可以改变一些简单的矩形。它不需要是最快的方法,但不知何故,我需要一个新的线程来连接到我的服务器,并修改游戏状态,它将被绘制在屏幕上。我只是不知道如何才能实现它,而不会导致applet-thread挂起。
有人能看到这个问题的解决方案吗?
发布于 2011-12-18 12:04:42
您是否遇到了线程问题,或者您是否在询问如何设计服务器和客户端之间的通信?
对于通信问题,这里有一个简单的方法:让服务器定期向每个播放器发送更新,无论是通过持续连接的TCP连接还是定期的普通的不可靠的UDP数据包。选择使用哪一个将取决于您的应用程序要求。阅读TCP和UDP之间的区别--有很多地方,包括SO (就是搜索),都在讨论两者之间的权衡。一旦您让服务器更新状态,并且您可以通过给服务器提供一些脚本状态来验证这是否有效,您也可以通过其他方式发送一些数据。根据您的应用程序,您可能需要注意安全性:玩家是否可以在其操作上对服务器撒谎,等等。
在Java语言中,连接通常是通过Socket和ServerSocket类,或者通过DatagramPacket和DatagramSocket类完成的。
发布于 2011-12-18 12:27:12
我只是不知道如何才能实现它,而不会导致小程序线程挂起。
实现ActionListener以执行服务器更新/检查。使用Swing Timer在循环中调用侦听器。有关更多详细信息,请参阅How to Use Swing Timers。
https://stackoverflow.com/questions/8549709
复制相似问题