https://github.com/kitao/processing.rb
A simple Processing sketch runner for JRuby
https://github.com/kitao/processing.rb
Last synced: 7 months ago
JSON representation
A simple Processing sketch runner for JRuby
- Host: GitHub
- URL: https://github.com/kitao/processing.rb
- Owner: kitao
- License: mit
- Created: 2015-01-04T05:49:03.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2018-03-23T09:34:11.000Z (over 7 years ago)
- Last Synced: 2025-03-17T05:45:57.758Z (7 months ago)
- Language: Ruby
- Size: 30.3 MB
- Stars: 10
- Watchers: 4
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.ja.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Processing.rb
[ [English](https://github.com/kitao/processing.rb/blob/master/README.md) | [Japanese](https://github.com/kitao/processing.rb/blob/master/README.ja.md) ]
Processing.rbはRubyで気軽にProcessingのスケッチを作成できるツールです。
## 特長
他の類似ツールと比べて、Processing.rbには次のような特長があります。
- 設定ファイル不要で、Rubyのコードにモジュールを1つ追加するだけで使えます。
- スケッチ更新時に自動で再起動し、requireしたモジュールも再ロードします。
- 本家のProcessing同様、1〜2行のコード追加で簡単に拡張ライブラリが使えます。
- ウィンドウ位置の指定や最前面表示など、ライブコーディングに便利な機能があります。## 動作画面
サンプルの動作画面です。画像をクリックすると実際のコードが確認できます。
## インストール方法
### 事前準備
Processing.rbを使うには、RubyとJavaのインストールが必要です。各ツールは以下のサイトから入手できます。
- [Ruby](https://www.ruby-lang.org/)
- [Java](https://java.com/)### Processing.rbのインストール
Processing.rbはRubyの`gem`コマンドからインストールできます。
```sh
ruby gem install processing.rb
```インストール時にpermissionエラーが出た場合は、`sudo`コマンドを先頭に追加してください。
また、オフィスなどのプロキシ環境でインストールする場合は、上記コマンドの後ろに、`-p http://proxy.hostname:port`のように[-p オプション](http://guides.rubygems.org/command-reference/#gem-install)でプロキシ設定を追加してください。
インストール完了後、次のコマンドを実行すると、Processing.rbのサンプルが`~/processingrb_examples`ディレクトリにコピーされます。
```sh
setup_processingrb_examples
```## 使い方
### スケッチを作成する
Processing.rbでは、`Processing::SketchBase`クラスの派生クラスとしてスケッチを作成し、`Processing.#start`関数で描画を開始します。
```ruby
require 'processing'class Sketch < Processing::SketchBase
def setup
# implement your own setup code
enddef draw
# implement your own draw code
end
endProcessing.start(Sketch.new)
````Processing::SketchBase`クラスでは、`HALF_PI`などの定数はJava版のProcessingと同様に使用できます。また、関数や変数は、`noStroke`であれば`no_stroke`のように、Java版の命令を小文字([スネークケース](http://en.wikipedia.org/wiki/Snake_case))にしたものが使用できます。
実際のスケッチの作成例は[サンプル](https://github.com/kitao/processing.rb/tree/master/examples)をご覧ください。
作成したスケッチファイルは通常のRubyコードと同じ方法で起動できます。
```sh
ruby [sketchfile]
```なお、初回起動時のみ、`~/.processing.rb`ディレクトリにJRubyとProcessingのダウンロードが行われます。その際、ダウンロードのためのプロキシ設定を聞かれるので、必要な場合は入力を、不必要な場合は何も入力せずEnterを押してしばらくお待ちください。
起動後は、同じディレクトリ以下にある`.rb`ファイルが更新されるたびに、スケッチファイルが自動で再読み込みされます。
### 入力情報を取得する
キーボードやマウスの入力情報は、Java版のProcessingと同様の方法で取得できます。
ただし、Java版の`keyPressed`、`mousePressed`変数は、メソッド名の重複を避けるため、それぞれ`key_pressed?`、`mouse_pressed?`という名前に変更されているのでご注意ください。
```ruby
def draw
if mouse_pressed?
ellipse(mouse_x, mouse_y, 10, 10)
end
enddef key_pressed
Processing.reload if key == 'r'
end
```この例では、マウスボタンが押されると円を描き、キーボードの`R`が押されるとスケッチを再起動します。
### 拡張ライブラリを使用する
Processing向けの拡張ライブラリは、Processing.rbでもそのまま使用できます。
例えば、次のようなVideoライブラリを使用するコードの場合、
```java
import processing.video.*;
Movie movie;void setup() {
movie = new Movie(this, "sample.mov");
movie.loop();
}
```Processing.rbでは以下のようになります。
```ruby
Processing.load_library 'video'
Processing.import_package 'processing.video', 'Video'class Sketch < Processing::SketchBase
def setup
@movie = Video::Movie.new(self, Processing.sketch_path('sample.mov'))
@movie.loop
end
```Javaのライブラリへのファイルの指定は、絶対パスで行う必要があるため、この例では`Processing.#sketch_path`関数を使用して、スケッチファイルからの相対パスを絶対パスに変換しています。
Processingに標準で付属しない拡張ライブラリを使用する場合は、スケッチファイルと同じディレクトリに`libraries`ディレクトリを作成して、そこに使用するライブラリを置いてください。
### ライブコーディングする
`Processing.#start`関数にオプションを指定すると、エディタとスケッチのウィンドウを同時に見やすく表示できます。結果を確認しながらコード編集を行う際に便利です。
```ruby
Processing.start(Sketch.new, topmost: true, pos: [300, 300])
````Processing.#start`関数に指定できるオプションは以下のとおりです。
|オプション|説明|
|----|----|
|topmost:|`true`にするとウィンドウを常に最前面に表示する|
|pos:|`[x, y]`で指定した座標にウィンドウを表示する|## APIリファレンス
### Processingモジュール
`Processing`モジュールはスケッチのためのクラスやメソッドを提供します。
|定数|説明|
|----|----|
|SKETCH_FILE|起動時に指定されたスケッチファイルの絶対パス|
|SKETCH_NAME|ディレクトリ名を除いたスケッチファイル名|
|SKETCH_DIR|スケッチファイルの絶対パスでのディレクトリ名||クラス|説明|
|----|----|
|SketchBase|スケッチの基底クラス||特異メソッド|説明|
|----|----|
|load_library(name)|指定した拡張ライブラリを読み込む|
|load_jars(dir)|指定したディレクトリのすべての`.jar`ファイルを読み込む|
|import_package(package, module_name)|`module_name`モジュールに、指定したJavaパッケージのすべてのクラスを登録する|
|sketch_path(path)|スケッチファイルからの相対パスを絶対パスに変換する|
|start(sketch, topmost: false, pos: nil)|指定したスケッチインスタンスの描画を開始する|
|reload|スケッチファイルを読み込み直し、再起動する|## ライセンス
Processing.rbは[MITライセンス](http://en.wikipedia.org/wiki/MIT_License)です。無料で自由にご利用ください。
Have fun!