2019年12月12日 星期四

week14



 01 先試著跟自己連線,在 Server 端 print 出滑鼠數值



 SERVER:

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) print(now);
  }
}




 CLIENT:


import processing.net.*;
Client client;
void setup(){
  size(300,300);
  client = new Client(this,"120.125.70.15",7777);
}
void draw(){
  if(mousePressed){
    line(mouseX,mouseY,pmouseX,pmouseY);
    client.write(mouseX+" "+mouseY+" "+pmouseX+" "+pmouseY+"\n");
  }
}




 02 讓 Client 端可以畫畫到 Server 端


 SERVER 端更新:


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]));
    }
  }
}




 04 Client 端可以用ellipse畫畫且可以消除




 CLIENT 端更新:

import processing.net.*;
Client client;
ArrayList<PVector> points;
void setup(){
  size(300,300);
  client = new Client(this,"120.125.70.15",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);
}



 SERVER 端更新:

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);
      for(int i=0;i < xyxy.length ;i+=4){
        line( int(xyxy[i+0]),int(xyxy[i+1]),int(xyxy[i+2]),int(xyxy[i+3]));
      }
    }
  }
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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