Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的Mud编程帮助_Java_Swing - Fatal编程技术网

java中的Mud编程帮助

java中的Mud编程帮助,java,swing,Java,Swing,嗯,我决定做一些像泥的东西,我也可以在其他地方使用,但我有一个问题。。 我不知道如何使用户可以在实际框中而不是文本字段中键入 我想更好地解释一下,但我真的想不出如果您谈论的是一个MUD客户端,并且在输出的同一窗口中输入文本,听起来你会遇到与在终端中通过裸telnet播放MUD时相同的问题,那就是你输入的文本在键入时会滚动,因此你看不到要编辑的内容,等等。我认为在输入之前有一个单独的字段,你可以在必要时进行编辑是一件好事 你可以把注意力集中在服务器上,让用户(管理员也是)通过一个像zMUD这样的M

嗯,我决定做一些像泥的东西,我也可以在其他地方使用,但我有一个问题。。 我不知道如何使用户可以在实际框中而不是文本字段中键入


我想更好地解释一下,但我真的想不出如果您谈论的是一个MUD客户端,并且在输出的同一窗口中输入文本,听起来你会遇到与在终端中通过裸telnet播放MUD时相同的问题,那就是你输入的文本在键入时会滚动,因此你看不到要编辑的内容,等等。我认为在输入之前有一个单独的字段,你可以在必要时进行编辑是一件好事

你可以把注意力集中在服务器上,让用户(管理员也是)通过一个像zMUD这样的MUD客户端进行连接。不过,我可能误解了你的问题。制作一个泥巴需要很多东西,所以大多数人在从头开始的时候都无法启动并运行一个可行的游戏,但无论如何,你仍然可以从中学到很多东西。我自己做的,但只是服务器-从来没有做过任何与客户端程序或GUI界面

编辑以在OP的评论回复后添加:

请查看此Sun教程,看看它是否有帮助:


第一个示例使用一个单独的字段进行输入,但向下滚动到“TextAreaDemo”示例,该示例可能会显示您需要的内容。

MUD的制作并不复杂。我认为您所问的问题的答案是您需要使用TCP/IP telnet端口

Telnet非常简单,您只需打开一个端口并开始读取数据——它有很多信息,甚至有一些库可以帮助您。(Telnet只是一个标准端口,但有一个小小的例外,一个“协商”开始时就在进行,它只是来回发送几个字节,但如果你不这样做,那么什么也不会发生)

因此,您编写代码并开始侦听端口(4444是常见的MUD端口iirc)。然后运行telnet客户端并连接到该端口。它将为每个呼叫的人创建一个新的端口连接。您可能有一个线程监听每个端口,它监视您键入的内容,处理退格,并可以将完成的命令发送到主mud系统(到同步方法,因为许多端口可能同时发送命令)

其实很简单。寻找一个telnet库供Java启动

找到了一个也处理telnet的快速搜索

编辑:我应该指出,它们也不容易制作!制作地图、装备和怪物都是数据驱动的,这样你就不必为每个怪物重建,这需要一些预先考虑。。。这是一个你可能会写下你的第一个,并使用一个月,然后再决定是否需要从头开始重新编写的东西


我只是指出,你可能想检查已经存在的泥浆源。我发现diku很小,很容易理解。

好吧,我来试试这个。。。你的意思是说你不知道如何创建一个可以连接到
telnet
或另一个MUD客户端的服务器吗?不,我的意思是,对于用户输入,我不知道如何让用户可以在输出部分输入,这是一个自定义gui。啊-我们所有对MUD感兴趣的人都渴望关注这一点;-)。看到我对我的答案所做的补充,希望能有所帮助。哦,不,你答对了我的问题,我还想用它为我正在制作的另一个程序制作我自己的命令提示符类型,我知道文本滚动的问题,但我仍然想知道怎么做。我不太理解他们的示例代码,但是如果我从中得到的是正确的,那么它所能做的就是使文档从插入符号位置向后读取到单词的末尾??否-在我相信您看到的部分中,程序正在检查单词是否自动完成。基本上,您可以在字段中的文本中使用一个从零开始的索引。在本例中,对于程序检测到的来自用户的insert事件,该索引是通过ev.getOffset()获得的,并且当程序本身将文本插入字段时,它通过textArea.insert执行此操作。在一个地方,他们称它为偏移量,在另一个地方,他们称它为位置,但在这两种情况下,都是一个从零开始的索引,在这个索引中操作发生。(还要注意,getOffset()返回的是输入的开始,而不是结束。ev.getLength()方法是他们获取输入长度的方式。)