2019年12月12日 星期四

Week_14

連線畫畫
client(P)
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(){
  if(mousePressed){
    line(mouseX,mouseY,pmouseX,pmouseY);
    client.write(mouseX + " " + mouseY + " " + pmouseX + " " + pmouseY + "\n");
  }
}

server(P)
import processing.net.*;
Server server;
Client client;
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);
      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]));
      }
      
    }
  }
}

畫畫可以刪掉
client(P)
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));
    client.write(int(mouseX)+" "+int(mouseY)+"\n");
  }
  if(mouseButton == RIGHT && points.size() > 0){
    points.remove(points.size() - 1);
    //client.write("re\n");
    client.write("59000" +" "+"59000"+"\n");
  }
}
server(P)
import processing.net.*;
Server server;
Client client;
ArrayList<PVector> points;
void setup(){
  size(300,300);
  server = new Server(this,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);  
  }
  Client temp = server.available();
  if(temp != null){
    client = temp;
  }
  if(client != null){
    String now = client.readString();
    if(now != null) {
      //if(now.equals("re") == true) points.remove(points.size() - 1);
      //else{
      print(now);
      String []xyxy = splitTokens(now);
      for(int i = 0; i <xyxy.length; i+=2){
        if(int(xyxy[i+0]) == 59000 && int(xyxy[i+1]) == 59000) points.remove(points.size() - 1);
        else points.add(new PVector(int(xyxy[i+0]),int(xyxy[i+1])));
      }
     // }
      
    }
  }
}

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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