HaxeとOpenFLでお絵描きしてみる

なかなか記事を書けないのですが、すべては花粉のせいです。毎年この時期、生産性が3割ぐらい落ちている気がします。

最近は今まで使っていなかった言語を勉強したり試したりしていることが多いのですが、今日はその一環として、HaxeOpenFLを使った簡単なプログラムを作成してみたいと思います。

HaxeとOpenFLについて

Haxeオープンソースプログラミング言語です。JavaC#に似た静的型付きのオブジェクト指向の言語で、様々なプログラミング言語のいいところを無難にバランス良く取り込んだ仕様になっています。

その最大の特長は、各種プログラミング言語に変換可能なことで、専用のVM向けのコンパイルに加えて、JavaScriptActionScriptC++C#JavaPHPPython等に変換を行うことができ、ワンソースでWindowsLinuxMac OS XAndroidiOS、Webに同時対応することができます。

OpenFLHaxe向けのオープンソースフレームワーク+開発環境で、Haxeマルチプラットフォーム対応とFlash由来のAPIで、手軽にマルチプラットフォーム対応のインタラクティブアプリを開発することができます。

HaxeとOpenFLで作られたゲームの例としては、斬新なゲームデザインで話題を集めたインディゲームのPapers, Pleaseなどがあります。

www.youtube.com

HaxeとOpenFLをセットアップする

Haxeのインストールは、公式サイトのDownloadページから各プラットフォーム向けのインストーラを入手・実行することで行います。(Macの場合Homebrewからもインストールできるのですが、追加作業がいくつか必要だったり上手くいかなかったりする様子なので私は使いませんでした)

Haxeのインストールが終わったら、次に付属のライブラリ管理ツールであるHaxelibのセットアップを行います。

haxelib setup

上記のコマンドを実行すると保存用のフォルダを質問されます。

Please enter haxelib repository path with write access
Hit enter for default (/usr/lib/haxelib)
Path : 

ここでは、デフォルトのフォルダでよければそのままEnterを、指定のフォルダがあれば入力します。ただし、MacのEl Capitan以降だと、/usr/lib以下のフォルダへの書き込みができなくなっていますので、代わりに/usr/local/lib/haxelib/等の他のフォルダを指定する必要があります。

続いて以下のコマンドでOpenFLをインストールします。

haxelib install openfl
haxelib run openfl setup

OpenFLのインストール終了時に、

Do you want to install the "openfl" command? [y/n/a] ?

と聞かれますので、ここはyを押してopenflコマンドを実行できるようにします。

ターミナルからopenflを実行して、アスキーアートのOpenFLロゴが表示されればインストールは完了です。

簡単なプログラムを作成する

準備が整ったところで、いよいよプログラムを作成します。…と言いつつも、手を抜いて標準で提供されるサンプルをベースに機能を試してみることにします。

OpenFLが提供するサンプル一覧はopenfl createで表示されるので、それを参考に文字を表示するサンプルを次のコマンドでコピーします。

openfl create AddingText

次にAddingText/Source/Main.hxを以下のように修正します。

gist.github.com

作成したコードを実際に動かしてみます。

openfl test AddingText neko

f:id:tkitao:20160403215656p:plain

かなり地味ですが、テキストと円をアニメーションさせることができました。

感想

HaxeとOpenFLは、よくできているしツールも洗練されていると感じました。ただ、そこはかとなく古い印象とマイナー感があるのは、Flash/ActionScriptの流れを受け継ぐものの宿命とか呪い的な何かなのかもしれません。

Cocos2d-xと色々な部分が似通っていますが、やはり後発な分、Cocos2d-xの方が今風な印象を受けました。どちらを使おうかな。