2016-06-20 1 views
0

2 플레이어 게임을하고 있는데 서버에서 정보를 가져올 때 "topic; arg1; arg2"형식이므로 "PlayerPos; x; y"라고 표시됩니다. 그런 다음 split 메서드를 ";"문자와 함께 사용합니다. 하지만 ... 나는 "PlayerPos"라는 화면에 직접 쓰려고했지만, 그럴 경우 얻을 수는 없습니다. 화면에 그것은 나 "200; 200 PlayerPos"기록분할 처리 (서버)

String Get=client.readString(); 
    String [] Getted = split(Get, ';'); 
    fill(0); 
    text(Get,20,20); 
    text(Getted[0],20,40); 
if(Getted[0]=="PlayerPos"){ 
    text("HERE",20,100); 
    player1.x=parseInt(Getted[1]); 
    player1.x=parseInt(Getted[2]); 
} 

: 나는 클라이언트에서 그것을 받아 들일

server.write("PlayerPos;"+player1.x+";"+player1.y); 

을 어떻게 :

이 내가 서버에 정보를 전송하는 방법입니다 그것 아래의 "PlayerPos"조차도. 그러나 결코 "여기에"글을 쓰지는 않습니다. 내 실수는 어디에 있습니까?

답변

0

String 값을 비교할 때 ==을 사용하지 마십시오. 대신 equals() 기능을 사용

if(Getted[0].equals("PlayerPos")){ 

the Processing reference에서 :

대신 if (a == b)의, if (a.equals(b))에서와 같이 equals() 방법을 사용, 두 개의 문자열의 내용을 비교하기. A StringObject이므로 == 연산자와 비교할 때 Strings이 동일한 메모리 위치에 저장되어 있는지 비교합니다. equals() 메서드를 사용하면 실제 내용을 비교할 수 있습니다. troubleshooting reference의 설명이 더 길어집니다.

+0

고마워요! 나는 너무 어리 석다, 나는 항상 이것을 잊는다. < –

+0

@ DavidAliFoxKnapčok 문제 없습니다. 기분이 좋으면 도움이되는 답변을 upvote 및 수락 할 수 있음을 명심하십시오. –