2019年12月12日 星期四

week14-2019/12/12

Week14-10:15到  (´・_・`)

                                                          
---------------------------------------------------------------------------------------------------------------------------------

●Step01-於Server端畫畫可以同步到Client端

<程式碼>-Server端
import processing.net.*;
Client client;
void setup(){
    size(300,300);
    client = new Client(this,"127.0.0.1",7777);
}
void draw(){
  if(mousePressed){
      line(mouseX,mouseY,pmouseX,pmouseY);
      client.write(mouseX+" "+mouseY+" "+pmouseX+" "+pmouseY+"\n");
  }
}


<程式碼>-Client端
import processing.net.*;
Server server=null;
Client client=null;
void setup(){
    size(300,300);
    server= new Server(this,7777);
}
void draw(){
    Client temp = server.available();
    if(temp !=null){
      client = temp;
    }
    if(client !=null){
      String now = client.readString();
      if(now!=null){
        String []xyxy = splitTokens(now);
        line( int(xyxy[0]),int(xyxy[1]),int(xyxy[2]),int(xyxy[3]) );
      }
    }
}


!Client端先開!



●Step02-做出按左鍵可以畫畫、右鍵可以消掉的

<程式碼>
import processing.net.*;
Client client;
ArrayList<PVector>points;
void setup(){
    size(300,300);
    client = new Client(this,"127.0.0.1",7777);
    points = new ArrayList<PVector>();
}

void draw(){
    background(255);
    for(int i=0;i<points.size() ; i++){
        ellipse (points.get(i).x,points.get(i).y,5,5);
    }
}
void mouseDragged(){
    if(mouseButton==LEFT) points.add( new PVector(mouseX,mouseY));
    if(mouseButton==RIGHT &&points.size()>0) points.remove(points.size()-1);

}




●Step02-做出


沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...