Processingで学ぶプログラミングその2

お久しぶりです!
フロントエンドエンジニアの清水です。

Processingで学ぶプログラミングその1 から大分時間がたってしまいましたがProcessing連載の2回目になります。

まずはこの動画から見ていただきましょう!

前回はマウスカーソルの位置にオブジェクトが出ているだけでしたが、今回はクリックの際にレンダリングされるように変更しました。
また外部コントローラーとしてiPadを使用しました!
MacとiPadの通信はWi-Fi経由で接続しています。(通信速度の観点からアドホックで接続するとレイテンシーが少ないです。)
TouchOSCというアプリを使用し、Processing側でiPadから送られてきたOSCを受け取りオブジェクトをレンダリングするように変更しています。

時間が空いてしまいましたので面白いものを見せられるようにと頑張りました。
外部入力を使用するという少し背伸びした形になりましたが、非常にProcessing熱が上がっております!
今後の連載(?)にご期待下さい。

ソースコード

import oscP5.*;
import netP5.*;

OscP5 oscP5;

void setup(){
  smooth();
  size(1680, 1050);
  colorMode(RGB);
  noStroke();
  background(#000000);
  oscP5 = new OscP5(this,8000);
  frameRate(60);
  noCursor();
}

void draw(){
}

void erase()
{
  background(0);
}

void mouseMoved(float x , float y ) {
  float r = random(1, 50);

  float R = random(0, 255);
  float G = random(0, 255);
  float B = random(0, 255);
  float a = random(0, 255);

  float xs = random(-15, 15);
  float ys = random(-15, 15);

  float z = random(-50, 50);

  ellipse(x+xs, y+ys, r, r);
  fill(R, G, B, a);
}

void oscEvent(OscMessage theOscMessage) {
    if(theOscMessage.checkAddrPattern("/reset") == true )
     {
       erase();
       return;
     }

  println("touch osc"+theOscMessage);
  float xValue = theOscMessage.get(0).floatValue();
  float yValue = theOscMessage.get(1).floatValue();

  println(xValue+", "+yValue);
  mouseMoved(xValue*width, yValue*height);
}
preload preload preload