2015年1月22日木曜日

Stencyl で Android アプリ作成のメモ

Windows 版 Stencyl 3.2 時点でのメモです。(無課金)
Android 向け以外のことも書いてます。

GUI 上で設定した日本語テキストは表示できない

あら不思議、Stencyl は Android アプリにすると、ビヘイビアの text とか list とか map なんかで入力しておいた日本語が表示されなくなります。

ただし何故かスクリプトからであれば使用できます。
つまり set [text] to [attribute] というように、スクリプト上で設定すればOK。
ビヘイビアやアクターのカスタマイズとかの画面で入力した日本語は表示されないので注意。

なお、Flash 書き出しなら、何の問題もなく出力されます。

GUI でビヘイビアのテキスト属性値を設定すと、表示できない文字がある

それは「<」「>」「”」「&」です。「&lt;」などとエンティティ化しやがった上でそのまま表示しやがります。

ただしこちらもスクリプトからであれば使用できます。
なので、スクリプト上で「replace “&lt;” with “<" in [text]」とかすれば解決はします。 また、Flash であれば問題なく表示されます。 ちなみに 1byte フォントで該当する位置にある文字は使用できないことになります。(位置はフォントによる)

フォントの「Import Font from Image」機能がへん

この問題は Stencyl 上で発生します。
なんかこの機能はまともに動作しないです。
(ワークスペースフォルダ内のファイルを直に書き換えたりしないとダメ)

show alert with title ブロックは使えるよ。

もちろん日本語は使えないがな!
ちなみにスクリプト上で「\u3042」という感じに文字コードで入力したらコンパイルが止まらなくなったゾ☆

AdMob Extension は利用できない?!

Setting にて AdMob Extension を利用可能な状態にするだけで、Compiling が中断してしまう。
英語圏では特に問題になっていないようなので、私の環境限定なのかは分かりませんが、とにかくダメになりやがります。
Stencyl 自体をクリーンインストールしなおすと直るかもしれないらしいです。
標準の Monetization 機能使えということか?!

App Name に日本語は使えない

全角が含まれていると Compiling が終わらない。
運良く終わってもアプリ名が文字化けする。

Scale Mode でスケール変更するようにしていると WebViews の位置がズレる

100%で表示されるなら問題ないと思われますが、拡大縮小されるとその分 WebViews の位置がズレます。
No Scaling にして Scale 1x、1.5x…で対応するようにすればOK。

Enable Debug Drawing が有効なのは Box2D の時だけ

この問題は Android に限りません。Flash でも発生します。
また、Collision Group で何かしらのグループの Region を ON にすると書き出し時にエラーが出ます。
さらに動的に create region したい時は、Created イベントなどで作らないと、生成されるのに反応しない region ができる。(例えば Enter Screen イベント時で作っても反応しない)

シーンでアクターのカスタマイズをすると本家の値も変更される場合がある

この問題は Stencyl 上で発生します。
List 形式の Attributes でよくなります。
本家の編集画面を開いていると回避できるような…

Attribute の Internal Name を変更したら一旦セーブしてからゲームを閉じた方がいい

この問題は Stencyl 上で発生します。
でないと null がぁーってエラー出るだけで参照できません。

アプリ終了するには、以下のスクリプトで安定か?!

Import で、
import nme.Lib;
をインポートして、必要な箇所で
#if android
nme.Lib.exit();
#end
とすればOKかな。
ほかにも
import nme.system.System;
nme.system.System.exit(1);
という案もあるようだが、こちらでは完全に終了されない様子。

「trigger event」にテキストは渡せない

この問題は Android に限りません。Flash でも発生します。
テキストの Attribute はムリなご様子。
「trigger event [text] in behavior [text] for [actor]」とかを使いませう。

0 件のコメント:

コメントを投稿