さて、無事Scalaのプロジェクトが作成できたので、Processingを使って遊びます。
下記のようなコードを見よう見まねで書いてみました。Javaのコードを元にほとんどそのままScala化しています。
package com.qtamaki.hackason import processing.core.PApplet import processing.core.PConstants._ class Ro3D extends PApplet { var count = 0 override def setup() { size(400,400, P3D) colorMode(RGB, 255) } override def draw() { background(0) lights translate(width/2, height/2, 0) rotateX(PI/5 * count * 0.05f) rotateY(PI/5 * count * 0.03f) rotateZ(PI/5 * count * 0.01f) fill(255,0,0) box(100,100,100) translate(0,0,-65) fill(0,255,0) box(30) translate(0,-65,65) fill(0,255,0) box(30) translate(-65,65,0) fill(0,255,0) box(30) translate(65,0,65) fill(0,255,0) box(30) translate(0,65,-65) fill(0,255,0) box(30) translate(65,-65,0) fill(0,255,0) box(30) count += 2 } }
ほぼ、javaですね。(汗
実行すると、変な物体が微妙に動きます。(汗汗
Processingが、オブジェクトのステータスを前提としたつくりになっているので、あまり関数型っぽくできないのが残念です。
さらに、これをOpenGLで動かしてみたいと思います。