GNOME Seed で Clutter を使ってみる
Clutter とは、OpenGLを使って3次元効果を演出するライブラリだそうです。
適当に、 http://www.tuxradar.com/content/clutter-beginners-tutorial あたりを使って作ってみました。
色の違う四角を回転させながら重ねるだけのサンプルです。
#! /usr/bin/env seed const NUM_RECT = 12; const color_step = 255 / NUM_RECT; const rotate_step = 360 / NUM_RECT; const Clutter = imports.gi.Clutter; Clutter.init (Seed.argv); var stage_color = new Clutter.Color.c_new (0, 0, 0, 255); var stage = new Clutter.Stage(); stage.set_size (200,200); stage.set_color (stage_color); var rect_colors = new Array(NUM_RECT); for (var i = 0; i < NUM_RECT; i++) { rect_colors[i] = new Clutter.Color.c_new (color_step * i, 255 - color_step * i, 0, 128); } var rects = new Array(NUM_RECT); for (var i = 0; i < NUM_RECT; i++) { rects[i] = new Clutter.Rectangle.with_color (rect_colors[i]); rects[i].width = 100; rects[i].height = 50; rects[i].set_position (100, 100); rects[i].set_rotation (Clutter.RotateAxis.Z_AXIS, rotate_step * i, 0, 0, 0); stage.add_actor(rects[i]); rects[i].show(); } stage.show(); Clutter.main();
Clutter.main_quit()を使ってないので、実行したらCtrl+Cで終了する必要があります。
プログラムは、Clutter.init()で初期化して、stageというClutter.Stageオブジェクトを作り、その上にrects配列に格納した色と回転を加えたClutter.Rectangleオブジェクトを重ね描きしているだけです。
おそらく、GTypeを使ってClutterRectagleを継承したクラスを作り、オブジェクトを生成したほうが楽だと思います。