SDXFrameWork
0.09
SDXFrameWork
|
SDXが利用しているSDLがWindows、Mac、GNU/Linux、iOS、Android等で動くため、ソースコードの修正作業等は殆ど必要ありません。
しかしながら実際は様々な理由でそのまま動かない事があるので、以下の点等に注意する必要があります。
例えば特定のコンパイラの拡張文法や特定OSのAPIを使っている場合、当然移植性が下がります
文字エンコーディング
BOM付きのUTF-8でソースコードを保存して下さい。
Shift-JIS等で保存するとVisualStudio以外でビルド不可能になる事があります。
VisualStudioにはデフォルトでUTF-8で保存する機能がないので、ファイルオプションから個別に設定を行うか、
Shift-JISには存在しないがUTF-8に存在する文字(例:☀や©)をコメントする等して下さい
外部リソースとしてテキストファイルを使う場合もShift-JISで無くUTF-8が推奨されます
リソースファイル名
一部環境でエラーが出るため、画像やテキストファイル名、フォルダ名等はアルファベット(a~z,A~Z)と数字(0~9)と半角アンダーバーのみにして下さい。
WindowsXP
VisualStudioで作成したソフトをWindowsXPで動かしたい場合、設定を変更する必要があります。
プロジェクト>プロパティ>構成プロパティ>全般>プラットフォームツールセットをXPに対応している物に変更して下さい。
識別子
Androidでは関数名やクラス名等にアルファベット(a~z,A~Z)と数字(0~9)と半角アンダーバー以外を使うとエラーが出る事があります。
仮引数や変数に使う分にはエラーは出ないようです。Android以外では問題なく基本ソース文字セット以外の識別子が使えます。
一応ソースを変換するツール(日本語ConvUTF.zip)も配っているので、必要なら使ってください
デフォルトフォント OSによってシステムフォントのパスが変わるため、デフォルトフォントで描画出来ない事があります。
ttfファイルを一緒に配布して、上のような処理をしておくと各プラットフォームでデフォルトフォントを共通に出来ます
フォントにより表示が変わるので複数のOSに対応する場合、OS標準フォントは使うべきではありません
ファイル入出力
テキストファイルの入出力処理を標準ライブラリの関数で行うと、保存先がOSによってバラバラになります。
Fileクラスを使ってください。
特にAndroidではFile::Openの第四引数で保存先が変わるので注意して下さい
デスクトップとタブレットにおける入出力の違い
タブレットOSでタッチ操作をするとMouseクラスとTouchクラスの両方で値を更新しますが、
デスクトップOSでマウス操作をしてもTouchクラスを更新していません。
仮想ジョイパッドを画面に表示したりも今のところしていません
この辺りは仕様が変わる可能性があります
ソースファイル名
Android版ではソースファイル名をmkファイルに列挙する必要があります
実装と宣言を分けて開発している場合はAndroid.mkファイルを修正する必要がありますし、プリコンパイルヘッダー作成用のソース等も追加する必要があります
またヘッダーファイル名がSDLで使われているヘッダーファイルと被るとエラーになる事があります。::include "block.h"等でバグりました
jpgファイル
AndroidでArm以外のCPU向けにビルドすると、エラーが出ています。
jpgの使用をオフにすると動くのですが、原因が分かっていません。
基本的にpngを推奨します。