processing
IntelliJ
NCCDay 11

IntelliJ IDEAでjava-processingを書く時の応用的なことまとめ

この記事は NCC Advent Calendar 2017 の11日目の記事です。

初投稿です。

processingを外部エディタで書く紹介はEclipseでならたくさんあるのですが、IntelliJで調べた時に応用的な所の紹介となかなか出会えなかったので改めてまとめます。

プロジェクトの立ち上げは他の方の記事を参考にして行ってください。

クラスを書きたい

さて、IntelliJ等のjavaIDEでprocessingを書く時はjavaにPAppletを継承したmainクラスを作って書きます。
なのでmainとは別にjavaクラスファイルを作ってクラスを書こうとするとそのままではPAppletが無いと怒られてしまいます。
Cannot resolve method 'random(?)'や「java:シンボルを見つけられません」なんかを言われた時はこれです。

そこで、別のファイルでクラスを書く時はmainからPAppletをもってきて書いていきます。

Main.java
package myPrecessingTest;
import processing.core.PApplet;

public class Main extends PApplet {
    @Override
    public void settings() {
        super.settings();
        size(200,200);
    }

    Ball[] balls = new Ball[3];

    @Override
    public void setup() {
        super.setup();
        for(int i = 0; i < balls.length; i++){
            balls[i] = new Ball(this);
        }
    }

    @Override
    public void draw() {
        //super.draw();
        background(200);
        for(int i = 0; i < balls.length; i++){
            balls[i].disp();
            balls[i].move();
        }
    }

    public static void main(String[] args) {
        PApplet.main("myPrecessingTest.Main");
    }
}

Ball.java
package myPrecessingTest;
import processing.core.PApplet;

public class Ball {
    PApplet parent;
    private float x,y;

    Ball(PApplet p){
        parent = p;
        x = parent.random(parent.width);
        y = parent.random(parent.height);
    }

    void disp(){
        parent.fill(0);
        parent.ellipse(x,y,20,20);
    }

    void move() {
        this.x = (this.x + parent.random(-20, 20))%parent.width;
        this.y = (this.y + parent.random(-20, 20))%parent.height;
    }

}

実行結果

0eaa9c7d7b07b377db99afe5ec948993.gif

外部ライブラリを入れたい

外部ライブラリを使う時はprocessing:coreを登録した時と同様にライブラリのjarファイルを登録して使います。

File > Project Structure > Libraries から左上の+を押してjavaを選択します。
その後追加するファイルを選択するので、processingのlibraryフォルダの中にある任意のjarファイルを追加してください。

キャプチャ.PNG

あとはprocessingエディタの時と同様にライブラリをimportすれば使うことができます。