ピクセル指向プログラミング言語 Pixilang

Pixilangは、小規模なグラフィックス・サウンドアプリの作成や試作に向いた「ピクセル指向」プログライング言語だ。処理系がMIT Licenseのもとで公開されている。グラフィックスやサウンド処理に便利な機能が最初から用意されているし、しかもクロスプラットフォーム*1で動作するので、簡単に色々な環境で動く作品が作れるんじゃないか。ただ、今のところサンプルプログラムはあってもドキュメントがない感じなので、とりあえずプログラミング未経験者向けのチュートリアル的な何かを書こうと思う*2


このアプリもPixilangで作られた

Pixilangの入手

WarmPlace.Ru. Pixilangからバイナリとソースコードの入ったzipファイルをダウンロードしてこよう。
このリンクね。
f:id:mandel59:20130602011054p:plain

ダウンロードしたら適当なアーカイバーでzipファイルを展開しておこう。文字化けするからパスに日本語が入っているフォルダに展開するのは避けた方がいいです。

Hello, world!

手始めに、Hello, world!と表示するプログラムを書いてみる。

while 1
{
  print( "Hello, world!" )
  frame()
}

適当なテキストエディタでプログラムを書き、保存する。拡張子は.txtでもよいが、.pixiとすると分かりやすい。

  • while 1 { ... } は { ... } の中身の処理を繰り返す。
  • print( " ... " ) は " ... " の中身を画面に表示する。
  • 1フレーム分の表示処理を書いた後に frame() を書く。

つまり、このプログラムは Hello, world! と書かれたフレームを表示し続けるプログラムです。

実行する

展開しておいたフォルダの中にあるpixilangというフォルダの中に、linux_x86だとかwindowsだとかいうフォルダがあって、そのなかに実行ファイルがある。自分のOSのものを選んで起動すると、こんなウィンドウが出てくる。Linux版しか試してないから分からないけど、多分どのOSでも一緒なんじゃないかな。
f:id:mandel59:20130602012739p:plain
さっき書いた Hello, world! のプログラムを選択して、OKボタンを押すと、プログラムが実行される。
f:id:mandel59:20130602013402p:plain
キーボードのESCキーをすると、プログラムを終了して、ファイル選択画面に戻る。

終了処理を書く

実はさっきのプログラムには終了処理を書いていなかった。Pixilangでは、終了処理を書かなくてもESCキーを押してしばらく経つと勝手に終了してくれる*3。ESCを押したらすぐに終了するように、ちゃんと終了処理を書いておこう。

while 1
{
  print( "Hello, world!" )
  frame()

  while get_event()
  {
    if EVT[ EVT_TYPE ] == EVT_QUIT { halt }
  }
}
  • ESCキーを押したときは、終了イベントが発生する。発生したイベントはキューに溜まる。
  • while get_event() { ... } はキューにイベントが溜まっている間、キューからイベントの情報を取ってきて { ... } の中身を実行する。
  • if EVT[ EVT_TYPE ] == EVT_QUIT { halt } は、もし終了イベントが発生したら halt (プログラムの終了)をする、という意味。

たぶんつづく

*1:Windows, Linux, WinCE (WinMobile), OSX, iOS, Android.

*2:プログラミング経験者はexampleのプログラム適当に読めばだいたい内容分かると思うよ

*3:プログラムにバグがあって暴走しても、ちゃんと終了するようになっている