2019年12月12日 星期四

金魚腦互動技術

2019互動技術W14

在client端畫畫,收到位址訊息(網路連線)

Server程式

import processing.net.*;
Server server=null;
Client client=null;等一下要上門的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();如果有送資料,會讀到4個座標
    if (now!=null)print(now);
  }
}

Client程式

import processing.net.*;
Client client;
void setup() {
  size(300, 300);
  client=new Client(this, "120.125.70.36", 7777);客戶的IP
}
void draw() {
  if (mousePressed) {
    line(mouseX, mouseY, pmouseX, pmouseY);要送出4個數字
    client.write(mouseX+" "+mouseY+" "+pmouseX+" "+pmouseY+"\n");
  }
}

Client和Server同步畫畫(連線)

Server程式

import processing.net.*;
Server server=null;
Client client=null;等一下要上門的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();如果有送資料,會讀到4個座標
    if (now!=null) {
      String[]xyxy=splitTokens(now);
      line( int(xyxy[0]), int(xyxy[1]), int(xyxy[2]), int(xyxy[3]));
    }只加了這部分
  }
}

Client程式

import processing.net.*;
Client client;
void setup() {
  size(300, 300);
  client=new Client(this, "120.125.70.36", 7777);客戶的IP
}
void draw() {
  if (mousePressed) {
    line(mouseX, mouseY, pmouseX, pmouseY);要送出4個數字
    client.write(mouseX+" "+mouseY+" "+pmouseX+" "+pmouseY+"\n");
  }
}











畫畫可以undo往回復原

Client程式

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




















按左鍵可以畫畫,按右鍵可以消除

沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

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