【HaxeFlixel】HaxeFlixelのインストール手順

#HaxeFlixelのインストール手順
HaxeFlixelの日本語の情報が少ない (というかほぼ皆無……orz) ので、インストール手順をまとめました。ここではWindows版を基準に説明していますが、Mac版も手順はほぼ同じです。

(2016/4/23追記)
Mac環境の場合、El CapitanからSIPというセキュリティシステムが導入されたため、インストールがうまくいきません(/usr/lib/haxelib へのインストールができなくなる)。そのためSIPを無効にするか、Users/ユーザ名/Library に強引にインストールするなどの工夫が必要です。SIPを無効にする場合には以下のリンクが参考になります

* [OS X 10.11 El CapitanのSystem Integrity Protection(SIP)についてちょっと詳しく](http://rcmdnk.github.io/blog/2015/10/10/computer-mac/)

##HaxeFlixelとは
HaxeFlixelとはクロスプラットフォームで動作するオープンソースの2Dゲームライブラリです。
Flash / Windows / Mac / Linux / iOS / Android などへの出力が可能で、Haxeはネイティブコードへの出力が可能なので、それなりに高速に動作します。

![about-haxeflixel.png](https://qiita-image-store.s3.amazonaws.com/0/43772/bd29893f-4cdd-2e0f-f3e5-c72b4831be59.png)

このように HaxeFlixelは Haxe+OpenFL上で動作しており、以下のゲーム用の機能があります。

* 数千のゲームオブジェクトの管理と表示
    * 効率的なオブジェクトリサイクルシステム
    * 衝突判定と衝突応答を搭載（Nape物理エンジンもサポート）
* パーティクルシステム
* Tileマップの管理（*.tmxのロード含む)
* TTFフォント、BMPフォントの表示
* 数学、色のユーティリティ
* リプレイの記録と再生
* インタラクティブなデバッガ搭載
* 経路探索のサポート
* トゥイーンアニメーションのサポート
* Spineアニメのロードと再生

というように2Dゲーム (特にリアルタイムゲーム) が効率的に作成できるシステムを提供しています。

##Haxeのインストール 

* http://haxe.org/download?lang=jp

ここから「Windows Installer」をクリックしてダウンロードします。
(Macの場合は「OSX Installer」）

## インストーラーの実行
ダウンロードした「hax-#.#.#-win.exe」をダブルクリックで実行します。

Next > Next > Install > Finish
でインストール完了です。

## コマンドプロンプトの起動

スタートメニューから すべてのプログラム > アクセサリ > コマンドプロンプト でコマンドプロンプトを起動します。（Macの場合はターミナル）

Haxeに関連するツールは、ここからコマンドを入力することでインストールすることができます。


## Limeのインストール
LimeとはHaxeをクロスプラットフォームにビルドするためのツールです。

インストールにはコマンドプロンプトから、

```
 haxelib install lime
```

と入力します。
様々な環境へビルドするためのツールなので、結構なダウンロードデータ量があります。なのでしばらく待ちます。

Doneと表示されて、終わったら

```
 haxelib list
```

と入力します。

```
 lime: [#.#.#]
```

と表示されていればインストールされています。
このlist表示は現在インストールされているツールを確認するのに便利です。

確認ができたところで、

```
 haxelib run lime setup
```

と入力します。

するとLimeの関連ツール（lime-tools / hxcpp など）がインストールされます。

Doneと表示されたら、Limeのインストールは完了です。

## OpenFLのインストール
OpenFLとはマルチプラットフォームで動作するマルチメディア処理のためのライブラリです。
以下のコマンドを入力します

```
 lime install openfl
```

OpenFLとそれに関連するツールが自動でインストールされます。

## HaxeFlixelのインストール
最後にHaxeFlixelのインストールをします。

```
 haxelib install flixel
```

Doneが出てインストールできたら関連ツールをインストールします。

```
 haxelib install flixel-tools
```

Doneが出たらセットアップします。

```
 haxelib run flixel-tools setup
```

flixelコマンドを登録していいかどうかを聞かれます。

```
 Do you want to setup the flixel command Alias? [y/n] ?
```

問題ないので y をタイプして登録します。

デモとテンプレートをダウンロードするかどうか聞かれます。

```
 Would you now like this tool to download the flixel-demos and flixel-templates?
 [y/n] ?
```

これも y をタイプしてダウンロードします。

テンプレート作成時のauthor(作成者)を聞かれます。

```
 Just hit enter to not use an author name.
```

自分の名前を入力してEnterキーを押します。

最後にテンプレートで作成するIDEの種別を指定します。

```
 [0] Sublime Text
 [1] Flash Develop
 [2] Intellij Idea
 [3] None
 
 Choose your default IDE.
```

Windowsの場合は、FlashDevelop がクセがなく使いやすいかもしれません。もしFlashDevelopを使用する場合は、1をタイプしてEnterで決定します。

1を選ぶと、テンプレート作成時に自動でFlash Developを起動するかどうか聞かれます。

```
  Do you want to automatically open the created templates 
 and demos with Flash Develop? [y/n] ?
```

これは n を選択して、起動しないほうがいいかもしれません。

なお、テンプレートの設定は、セットアップを再実行

```
 haxelib run flixel-tools setup
```

で変更することができます。

## インストールしたツールの確認

haxelib list するとだいだいこんなツールがインストールされているはずです。

```
 >haxelib list
 
 actuate: [1.7.5]
 flixel-addons: [1.1.0]
 flixel-demos: [1.1.1]
 flixel-templates: [1.0.2]
 flixel-tools: [1.0.2]
 flixel-ui: [1.0.2]
 flixel: [3.3.4]
 hxcpp: [3.1.39]
 lime-tools: [1.5.6]
 lime: [1.0.0]
 openfl-samples: [1.3.0]
 openfl: [2.0.0]
 swf: [1.5.2]
```

## テンプレートを作成

インストール完了の確認のためにテンプレートを作成します。

```
 flixel tpl -n "Test"
```

このコマンドを入力すると、現在のフォルダに"Test"というテンプレートプロジェクトを作成します。
（デスクトップなどの作業フォルダで実行したほうがいいかもしれません）

## ビルド・実行
Testフォルダに移動して、limeコマンドでビルド・実行をします。

```
 cd Test
 lime test neko
```

（最後のnekoというのはNekoVMという環境で実行するためのオプションです。例えば「lime test flash」を実行するとFlash(*.swf)をビルド・実行します。なおFlashの実行には「*.swf」を実行できる環境が必要です）

これでHaxeFlixelのテンプレートプロジェクトを実行できます。
（ロゴが出て後は何も表示されません）

以上で、インストール手順の紹介は終わりとなります。

# おまけ
## ライブラリのアップグレード
最新のライブラリにアップグレードしたい場合には、

```
 haxlib upgrade
```

と入力します。すると、ローカルよりも最新のライブラリが存在すれば自動で更新してくれます。

## Intellij IDEAのセットアップ方法

IDEとして、FlashDevelopでなく、IntelliJ IDEAを使用する場合には、こちらのリンクが参考になります。

* [IntelliJ IDEA CEでHaxe Flash(OpenFL)の開発環境を作る](http://qiita.com/_shimada/items/66582ef47261a8b3911a)

## 次なるステップは？

これでプログラム環境はできたので、作り始めてもいいと思います。
過去にQiitaに投稿した以下のチュートリアル（公式デモの解説）が参考になるかもしれません。

* [【HaxeFlixel】HaxeFlixelでブロック崩しを作る](http://qiita.com/2dgames_jp/items/f745c26388f9e9101201)
*  [【HaxeFlixel】インベーダーゲームを作る](http://qiita.com/2dgames_jp/items/5a73ce6c2acfc77e43da)
*   [【HaxeFlixel】スネークゲームを作る](http://qiita.com/2dgames_jp/items/9107139d56931999fa68)
*    [【HaxeFlixel】Flappy系ゲームを作る](http://qiita.com/2dgames_jp/items/d7b056a0790cecd50d43)

あと、まだ書きかけではありますが、HaxeFlixelのまとめページを現在作成中です

* http://haxeflixel.2dgames.jp

こちらに情報をまとめていますので、よかったら参考にしてみてください