2019年12月12日 星期四

week14

1.小畫家clint端傳server端

clint端


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);//要送出4個數字
   client.write(mouseX+" "+mouseY+" "+pmouseX+" "+pmouseY+"\n");
  }
}

server端


import processing.net.*;
Server server=null;
Client client=null;//只接受一個人
void setup(){
  size(300,300);
  server=new Server(this,7777);//不用寫IP
}
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]));
    }
  }
}

結果:

要先開server端再開clint端

2.小畫家畫出來可倒退移除回去
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.remove(points.size()-1);
  }



沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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