2013-05-12 35 views
1

我想提供一種使用Arduino/Wiring的通信方法,使兩個對象隨兩個遊戲杆一起移動。無法訪問的代碼處理arduino通信

這是我使用的通信方法:

public PVector serialEvent(Serial myPort) { 
    PVector direction = new PVector(0, 0); 
    PVector directionD = new PVector(0, 0); 

    // read the serial buffer: 
    String myString = myPort.readStringUntil('\n'); 
    if (myString != null) { 
     String [] dataJoystick1 = split(myString, ","); 
     // println (dataJoystick); 
     try { 
      direction.set(Float.parseFloat(dataJoystick1[0]), Float.parseFloat(dataJoystick1[1]), 0); 
      directionD.set(Float.parseFloat(dataJoystick1[2]), Float.parseFloat(dataJoystick1[3]), 0); 
     } 
     catch(NumberFormatException e) { 
     } 

     movimiento=direction; 
     movimientoD=directionD; 

     //==============================PJ1======== 
     if (direction.x==0) { 
      movimiento.set(0, movimiento.y, 0); 
     } 

     if (direction.y==0) { 
      movimiento.set(movimiento.x, 0, 0); 
     } 
    } 

    //==============================PJ2======== 
    if (directionD.x==0) { 
     movimiento.set(0, movimiento.y, 0); 
    } 

    if (directionD.y==0) { 
     movimiento.set(movimiento.x, 0, 0); 
    } 

    return direction; 
    return directionD; 
} 

正如你所看到的,我有兩個PVector S代表每個字符directiondirectionD。然而,當我運行的代碼它給我這個錯誤:

Unreachable code in the line return directionD;

回答

4
return direction; 
return directionD; 

你不能有兩個return語句像這樣沒有條件。當第一個return語句被執行時,沒有機會達到第二個return語句。這就是爲什麼有一個無法訪問的聲明。

+0

好的謝謝,我不知道這一點。 – user2321978 2013-05-12 18:50:01

0

@vishal_aim是正確的。

你不得不受到影響創造要麼PVector類或的serialEvent可以看到,然後使你從的serialEvent得到的值到兩個實例的包裝(角色)類的兩個實例兩個不同的變量的方式。

此外,我不完全確定,但我不認爲你可以使serialEvent返回一個值,因爲它是連接void serialEvent是從處理的串行模塊內調用。