2020/01/09(木) [n年前の日記]
#1 [haxe] Haxeを少しだけ再勉強
ふとなんとなく、Haxe が気になったわけで。ググってみたら、今時は Haxe 4.0.5 が公開されていると知り、一応アップデートしておこうかと。
_Haxe - The Cross-platform Toolkit
環境は、Windows10 x64 1909。Microsoft Visual Studio Community 2019 その他もインストールしてある環境なので、C++コンパイラ等は一応動くはず。たぶん。
_Haxe - The Cross-platform Toolkit
環境は、Windows10 x64 1909。Microsoft Visual Studio Community 2019 その他もインストールしてある環境なので、C++コンパイラ等は一応動くはず。たぶん。
◎ 前のバージョンをアンインストール。 :
Haxe 3.x.x をインストール済みだったので、一旦アンインストールした。C:\HaxeToolkit\ にインストールしてあったので、その中の Uninstall.exe を実行。haxeフォルダとnekoフォルダが削除された。
◎ Haxe 4.0.5をインストール。 :
haxe-4.0.5-win64.exe をDLして実行。Haxe 4.0.5 と Neko 2.3.0 を、D:\HaxeToolkit\ にインストールした。
以前は Cドライブに入れていたけど、空き容量が厳しかったから Dドライブに移動してシンボリックリンクを張っていた状態で…。今回は、最初から Dドライブに入れてしまうことにした。
一応、環境変数PATHに、インストール場所を追加。
以前は Cドライブに入れていたけど、空き容量が厳しかったから Dドライブに移動してシンボリックリンクを張っていた状態で…。今回は、最初から Dドライブに入れてしまうことにした。
一応、環境変数PATHに、インストール場所を追加。
◎ ライブラリをインストール。 :
DOS窓を開いて、C:\HaxeToolkit\haxe\ をカレントディレクトにして、haxelib.exe を使ってライブラリをインストールしていく。
最初、 _NME をインストールしてみたのだけれど。
しかし、 _サンプル すら動いてるように見えず。以下のように打ってみても、fake enum がどうとかのエラーが出ているように見える。
ググってみたら、NME は _OpenFL に変わった、という話を見かけた。だったら、そちらに移行すべきなのかな…。
NME を削除。OpenFL をインストール。
しかし、OpenFL のサンプルを動かそうとしたものの、html5 や windows は動いても、neko を指定すると cffi がどうとかのエラーが出る。
_Could not find nekoAPI interface (Windows 10) - Help - OpenFL Community
別途、lime をインストールし直せと言ってるように見えるな…。
以下のライブラリがインストールされた。
最低限動くのかどうかを確認。
最初、 _NME をインストールしてみたのだけれど。
haxelib install hxcpp haxelib install nme haxelib run nme setup
しかし、 _サンプル すら動いてるように見えず。以下のように打ってみても、fake enum がどうとかのエラーが出ているように見える。
nme test html5 nme test windows
ググってみたら、NME は _OpenFL に変わった、という話を見かけた。だったら、そちらに移行すべきなのかな…。
NME を削除。OpenFL をインストール。
haxelib remove nme haxelib install openfl haxelib run openfl setup
しかし、OpenFL のサンプルを動かそうとしたものの、html5 や windows は動いても、neko を指定すると cffi がどうとかのエラーが出る。
_Could not find nekoAPI interface (Windows 10) - Help - OpenFL Community
別途、lime をインストールし直せと言ってるように見えるな…。
haxelib install lime haxelib install hxcpp haxelib install openfl haxelib run openfl setup
以下のライブラリがインストールされた。
> haxelib list actuate: [1.8.9] box2d: [1.2.3] hxcpp: [4.0.64] layout: [1.2.1] lime-samples: [7.0.0] lime: [7.6.3] openfl-samples: [8.7.0] openfl: [8.9.5]
最低限動くのかどうかを確認。
haxelib run lime haxelib run openfl各ライブラリのロゴっぽいものが、AsciiArt で表示された。
◎ OpenFLの サンプルを動かしてみる。 :
OpenFLのサンプルを動かしてみる。
任意のフォルダを作成して、その中で、openfl create と打つ。利用できるサンプルの一覧が表示される。
今回は、DisplayingABitmap というサンプルを試してみる。
DisplayingABitmap というフォルダが作成された。
中に入って、テスト実行してみる。
openfl test hoge で、hogeをターゲットとした状態で実行できるらしい。
html5 を指定して実行したので、Webブラウザ上で、OpenFLのロゴ画像っぽいものが表示された。ただ、ブラウザのタブを閉じても、DOS窓上のソレは動きっぱなし。Ctrl + C で強制終了するしかないのかな…?
さて、コレはWindows用としてビルドできるのだろうか。
大量の *.cpp 名が表示されて、何かが延々とビルドされた。
最終的に、.\Export\windows\bin\ 以下に、DisplayingABitmap.exe が出来上がった。実行するとウインドウが開いて、OpenFLのロゴ画像が表示された。
test を指定して実行してみる。
今度は、サンプルのみをビルドする状態で実行されたっぽい。先ほどと同じように動作した。
neko用は動くだろうか。
今回は動いてくれた。ウインドウが開いてロゴ画像が表示された。
任意のフォルダを作成して、その中で、openfl create と打つ。利用できるサンプルの一覧が表示される。
> openfl create You must specify a template when using the 'create' command. Usage: openfl create project (directory) Usage: openfl create extension (directory) Usage: openfl create <sample> (directory) Available samples: * AddingAnimation * AnimatedTilemap * CompareBitmapData * CustomPreloader * CustomRendering * DisplayingABitmap * DrawingShapes * SimpleTilemap * UsingBitmapData * CreatingAMainLoop * CreatingCustomEvents * HandlingKeyboardEvents * HandlingMouseEvents * PlayingSound * PlayingVideo * AddingText * GamepadInput * JoystickInput * GLSLBitmap * HelloTriangle * Stage3DCamera * Stage3DMipmap * BrowserExternalInterface * ActuateExample * SimpleBox2D * SimpleSWFLayout * BunnyMark * HerokuShaders * NyanCat * PiratePig * TextAlignment * TextMetrics
今回は、DisplayingABitmap というサンプルを試してみる。
openfl create DisplayingABitmap
DisplayingABitmap というフォルダが作成された。
中に入って、テスト実行してみる。
cd DisplayingABitmap openfl test html5
openfl test hoge で、hogeをターゲットとした状態で実行できるらしい。
html5 を指定して実行したので、Webブラウザ上で、OpenFLのロゴ画像っぽいものが表示された。ただ、ブラウザのタブを閉じても、DOS窓上のソレは動きっぱなし。Ctrl + C で強制終了するしかないのかな…?
さて、コレはWindows用としてビルドできるのだろうか。
openfl build windows
大量の *.cpp 名が表示されて、何かが延々とビルドされた。
最終的に、.\Export\windows\bin\ 以下に、DisplayingABitmap.exe が出来上がった。実行するとウインドウが開いて、OpenFLのロゴ画像が表示された。
test を指定して実行してみる。
openfl test windows
今度は、サンプルのみをビルドする状態で実行されたっぽい。先ほどと同じように動作した。
neko用は動くだろうか。
openfl test neko
今回は動いてくれた。ウインドウが開いてロゴ画像が表示された。
[ ツッコむ ]
#2 [haxe] Haxe + HashLink を試用
Haxe には、Neko という仮想マシン(?)が一緒に用意されている・インストールされるけど。最近は、HashLink なるHaxe用の仮想マシンがあるらしい。
_HashLink - Haxe Virtual Machine
Neko じゃなくて、そちらを使ったほうがいいのだろうか。分からんけど。とりあえず、触ってみるか…。環境は、Windows10 x64 1909 + Haxe 4.0.5。
_HashLink - Haxe Virtual Machine
Neko じゃなくて、そちらを使ったほうがいいのだろうか。分からんけど。とりあえず、触ってみるか…。環境は、Windows10 x64 1909 + Haxe 4.0.5。
◎ HashLinkをインストール。 :
以下を参考にしながら、インストールを試みた。
_HaxeでHashLink/SDLを使ってみる - Qiita
以下から、hl-1.10.0-win.zip を入手。
_Releases - HaxeFoundation/hashlink
解凍して、任意のフォルダに置く。今回は、D:\Dev\hashlink\ というフォルダを作って、その中に入れた。
インストールしたフォルダのパスを、環境変数PATHに追加しておく。
おもむろに、hl.exe を実行してみる。
これで、hl と打てば HashLink が呼び出せる状態になった。
_HaxeでHashLink/SDLを使ってみる - Qiita
以下から、hl-1.10.0-win.zip を入手。
_Releases - HaxeFoundation/hashlink
解凍して、任意のフォルダに置く。今回は、D:\Dev\hashlink\ というフォルダを作って、その中に入れた。
インストールしたフォルダのパスを、環境変数PATHに追加しておく。
おもむろに、hl.exe を実行してみる。
> hl HL/JIT 1.10.0 (c)2015-2019 Haxe Foundation Usage : hl [--debug <port>] [--debug-wait] <file>
これで、hl と打てば HashLink が呼び出せる状態になった。
◎ HashLinkでHelloworld。 :
任意のフォルダを作成して、その中で Helloworld をしてみる。以下の2つのファイルを作成。
src/Main.hx は以下。前述の解説記事のソレをそのままコピペ。
build.hxml は以下。
build.hxml については、以下のページが参考になりそう。
_HashLink - Heaps.io Game Engine
Haxe を使ってコンパイル(?)。
Haxe に build.hxml を渡してやれば、そこで指示された内容でコンパイルされる模様。
binフォルダ以下に helloworld.hl が生成された。HashLink (hl.exe) を使って実行してみる。
一応動いたように見える。
- src/Main.hx
- build.hxml
src/Main.hx は以下。前述の解説記事のソレをそのままコピペ。
package; class Main { static function main() { trace("Hello, World!"); } }
build.hxml は以下。
-cp src -dce full -hl bin/helloworld.hl -main Mainおそらくは、出力先を -hl で指定するのだろう…。今回は、binフォルダ内に helloworld.hl を作れ、と指定。
build.hxml については、以下のページが参考になりそう。
_HashLink - Heaps.io Game Engine
Haxe を使ってコンパイル(?)。
haxe build.hxml
Haxe に build.hxml を渡してやれば、そこで指示された内容でコンパイルされる模様。
binフォルダ以下に helloworld.hl が生成された。HashLink (hl.exe) を使って実行してみる。
> hl bin\helloworld.hl src/Main.hx:7: Hello, World!
一応動いたように見える。
◎ SDLを試す。 :
haxelib を使って、hlsdl をインストール。
任意のフォルダを作成して、以下の2ファイルを作成。
src/Main.hx は以下。
build.hxml は以下。
Haxe を使ってコンパイル。
HashLink (hl.exe) で実行。
真っ白なウインドウが3秒間表示されて、ウインドウが自動で閉じた。どうやら動いてるっぽい。
haxelib install hlsdl
> haxelib list ... hlopenal: [1.5.0] hlsdl: [1.10.0] ..hlsdl と hlopenal がインストールされた。
任意のフォルダを作成して、以下の2ファイルを作成。
- src/Main.hx
- build.hxml
src/Main.hx は以下。
package; import sdl.Sdl; import sdl.Window; class Main { static function main() { Sdl.init(); var mainWindow = new Window("Test", 640, 480); Sdl.delay(3000); mainWindow.destroy(); Sdl.quit(); } }
build.hxml は以下。
-cp src -dce full -lib hlsdl -hl bin/hlsdl_helloworld.hl -main Main-lib hlsdl を書くことで、「hlsdlを使うよ」と指示してる。
Haxe を使ってコンパイル。
haxe build.hxmlbin/hlsdl_helloworld.hl が生成された。
HashLink (hl.exe) で実行。
hl bin\hlsdl_helloworld.hl
真っ白なウインドウが3秒間表示されて、ウインドウが自動で閉じた。どうやら動いてるっぽい。
[ ツッコむ ]
#3 [haxe] FlashDevelopをアップデートしてみた
Haxeを扱うなら FlashDevelop を使ったほうがいいのかなと思えてきたので、FlashDevelop をアップデート。以前は 4.x.x をインストールしていたと思ったけれど、今は 5.3.3 が公開されてるようだし…。
_FlashDevelop.org - Welcome
環境は Windows10 x64 1909。
古い版をコントロールパネル経由でアンインストール後、FlashDevelop-5.3.3.exe をDL、実行してインストールした。今回は、D:\Dev\FlashDevelop\ 以下にインストール。
ツール → ソフトウェアをインストール、を選ぶと色々インストールできるのだけど…。Haxe + Neko のバージョンが、3.4.7 と表示されている…。しかも、チェックを入れてインストールを試みたら、エラーになった。インストーラのダウンロードURLが消滅している模様。
どうやら、FlashDevelop 5.3.3 は、Haxe 3.x.x を前提にした状態のまま、らしい。これはもう、今後 FlashDevelop で Haxe を扱うことは考えていないということだろうか…。
_FlashDevelop.org - Welcome
環境は Windows10 x64 1909。
古い版をコントロールパネル経由でアンインストール後、FlashDevelop-5.3.3.exe をDL、実行してインストールした。今回は、D:\Dev\FlashDevelop\ 以下にインストール。
ツール → ソフトウェアをインストール、を選ぶと色々インストールできるのだけど…。Haxe + Neko のバージョンが、3.4.7 と表示されている…。しかも、チェックを入れてインストールを試みたら、エラーになった。インストーラのダウンロードURLが消滅している模様。
どうやら、FlashDevelop 5.3.3 は、Haxe 3.x.x を前提にした状態のまま、らしい。これはもう、今後 FlashDevelop で Haxe を扱うことは考えていないということだろうか…。
◎ 2019/01/10追記。 :
おそらくは Haxe に特化した、HaxeDevelop なるものもあるらしい。
_Build and debug cross platform applications using Haxe - HaxeDevelop
現行バージョンは、FlashDevelop と同じ、5.3.3。ただ、リリース日が、2018/02/28 となっている。Haxe 4.0.0 の公開日が、2019/10/26なので…ひょっとすると、HaxeDevelop も、Haxe 4.x には対応してないんじゃないか…。
_Haxe 4.0.0 - Haxe - The Cross-platform Toolkit
試しに HaxeDevelop 5.3.3 をインストールしてみた。FlashDevelop と同様に、Haxe + Neko をインストールしようとしたら、3.4.7 と表示されていて、かつ、ダウンロード先URLも消滅している。コレも Haxe 4.x には対応していないようだなと。
インストール先は D:\Dev\HaxeDevelop\ にした、とメモ。
_Build and debug cross platform applications using Haxe - HaxeDevelop
現行バージョンは、FlashDevelop と同じ、5.3.3。ただ、リリース日が、2018/02/28 となっている。Haxe 4.0.0 の公開日が、2019/10/26なので…ひょっとすると、HaxeDevelop も、Haxe 4.x には対応してないんじゃないか…。
_Haxe 4.0.0 - Haxe - The Cross-platform Toolkit
試しに HaxeDevelop 5.3.3 をインストールしてみた。FlashDevelop と同様に、Haxe + Neko をインストールしようとしたら、3.4.7 と表示されていて、かつ、ダウンロード先URLも消滅している。コレも Haxe 4.x には対応していないようだなと。
インストール先は D:\Dev\HaxeDevelop\ にした、とメモ。
[ ツッコむ ]
以上、1 日分です。