2009-08-17 2 views
2

글쎄 진흙탕 같은 것을 만들고 다른 곳에서도 사용할 수있는 연습을하기로 마음 먹었습니다.하지만 한 가지 문제가 있습니다 ... 나는 사용자를 어떻게 만들지 모르겠다. 대신 실제 상자에 입력 할 수있는 텍스트 필드자바에서 진흙 프로그래밍에 대한 도움말

내가 더 잘 설명하고 싶지만 난 정말

+0

좋아, 이걸 찌를거야.'텔넷 (telnet) '이나 다른 머드 클라이언트로 연결할 수있는 서버를 만드는 방법을 모른다는 뜻입니까? – erickson

+0

아니 사용자 입력에 대한 의미, 나는 사용자가 출력 섹션에 입력 할 수있는 방법을 모르겠다, 그것은 사용자 정의 GUI입니다. –

+0

아 - 모든 MUD 관심사를 가진 우리 모두는 그 일에 집중하기를 열망했습니다. 내 대답에 추가 한 내용을 참조하십시오. – Anon

답변

1

것은 당신이 머드 클라이언트에 대해 이야기하고 같은 창에 텍스트를 입력하는 경우 어떻게 생각할 수 없다 결과물은 터미널에서 맨 처음 텔넷을 통해 MUD를 재생할 때와 동일한 문제가 발생하는 것처럼 들립니다. 입력하는 텍스트는 입력 할 때 사라져 보이지 않으므로 편집 할 때 등 내가 할 수있는 별도의 필드가 있다고 생각합니다. 입력하기 전에 필요한 경우 편집하는 것은 좋은 일입니다.

그냥 서버에 집중할 수 있으며 사용자 (관리자)도 zMUD와 같은 MUD 클라이언트 중 하나를 통해 연결할 수 있습니다. 나는 당신의 질문을 잘못 해석 할 수도 있습니다. MUD를 만드는 데는 엄청난 양의 물건이 포함되어 있기 때문에 대부분의 사람들은 처음부터 시작할 때 실행 가능한 게임을 실행하고 실행하지 않습니다.하지만 그 노력으로 인해 많은 것을 배울 수 있습니다. 나는 그 자신을했지만 서버 만 - 클라이언트 프로그램이나 GUI 인터페이스로는 아무것도하지 않았다.

는 편집은 영업 이익의 코멘트 응답 한 후, 추가 : 도움이된다면

보고이 일 튜토리얼에서 살펴 보자 :

http://java.sun.com/docs/books/tutorial/uiswing/components/textarea.html

첫 번째 예는 입력에 대해 별도의 필드를 사용하여, 아래로 스크롤하여 "TextAreaDemo"예제에 필요한 것을 보여줄 수 있습니다.

+0

오, 아니, 내 질문에 맞아, 나는 또한 내가 만들고있는 다른 프로그램에 대한 내 자신의 명령 프롬프트 유형 일을 만들기 위해 사용하고자하는 kindof했다, 나는 문제를 스크롤 텍스트 인식하지만 여전히 방법을 알고 싶습니다 해. –

+0

나는 그 모든 예제 코드를 잘 이해하지 못한다. 그러나 내가 얻은 것이 정확하다면, 문서가 단어의 끝에 캐럿 위치에서 거꾸로 읽히도록 만드는 것이 전부 일까? –

+0

아니요 - 내가보고있는 부분에서 프로그램이 자동 완성할 단어를 확인하고 있습니다. 기본적으로 필드의 텍스트에 0부터 시작하는 인덱스로 작업합니다. 이 예제에서 프로그램이 감지하는 사용자의 삽입 이벤트의 경우 해당 색인은 ev.getOffset()을 사용하여 가져오고 프로그램 자체가 텍스트를 필드에 삽입 할 때 textArea.insert를 사용하여 수행합니다. 한 곳에서 그들은 그것을 오프셋과 다른 위치로 부르고 있지만, 두 경우 모두 동작이 일어나는 곳의 인덱스는 0입니다. – Anon

1

진흙은 그렇게 복잡하지 않습니다. 내 생각에 당신이 묻는 질문에 대한 대답은 TCP/IP 텔넷 포트를 사용해야한다는 것입니다.

텔넷은 아주 간단합니다. 포트를 열고 데이터 읽기를 시작합니다. 정보가 많으며 도움이되는 몇 가지 라이브러리가 있습니다. (텔넷은 표준 포트 일 뿐이지 만 처음에는 계속 진행되는 "협상"이라는 예외가 있습니다. 단지 몇 바이트를 앞뒤로 보내는 것이지만, 그렇게하지 않으면 아무 일도 일어나지 않습니다) .

그래서 코드를 작성하고 포트 청취를 시작합니다 (4444는 일반적인 MUD 포트 iirc였습니다). 그런 다음 텔넷 클라이언트를 실행하고 해당 포트에 연결합니다. 전화를 걸면 각 포트마다 새 포트 연결이 생성됩니다. 입력하는 내용을 감시하고 백 스페이스를 처리하며 완료된 명령을 주된 진흙 시스템에 보낼 수있는 스레드를 가지고 있습니다 (많은 포트가 한 번에 명령 보내기).

실제로는 꽤 쉽습니다. 자바가 시작될 텔넷 라이브러리를 찾으십시오.

빠른 검색은 telnet도 처리하는 JavaSSH입니다.

편집 : 나는 그들 중 하나를 만들기가 쉽지 않다는 것을 지적해야합니다! 지도, 장비 및 괴물을 모든 데이터를 조작하여 모든 괴물에 대해 다시 작성할 필요가 없도록하는 것은 몇 가지 고려 사항입니다. 첫 번째 기사를 작성하고 결정하기 전에 한 달 동안 사용하게 될 것 중 하나입니다 그것은 처음부터 다시 써야합니다.

이미 밖으로 나가고있는 진흙 소스를 조사하고 싶을 수도 있습니다. 나는 작고 이해하기 쉬운 diku를 발견했습니다.

관련 문제