Small Basic のプログラムはローカルの環境(Small Basic IDE – 統合開発環境)で実行するときには正常に動いているのに、リモートの環境(ブラウザ上の Silverlight 環境下)ではうまく動かないことがままあります。これまでに調べた問題点は、Small Basic Forum に報告済みですが、今のところ直る見通しはありません。
- GraphicsWindow.BrushColor の既定値がローカルでは “#6A5ACD” でリモートでは “#88AACC”。
- GraphicsWindow.DrawRectangle() がリモートでは GraphicsWindow.PenWidth の分だけ小さい。
- GraphicsWindow.GetPixel() の戻り値はローカルでは “#rrggbb”だがリモートでは “#FFrrggbb”。
- GraphicsWindow.GetPixel(x, y) はリモートでは x や y が小数点以下を持つと正しく値を返さない。
- GraphicsWindow.MouseX と GraphicsWindow.MouseY はリモートでは整数にならない。
- GraphicsWindow.FontSize または GraphicsWindow.PenWidth への設定がリモートではそれより前の描画ステートメント実行前に行われることがある。
- GraphicsWindow.TextInput() がリモートでは動作しない。
- ImageList.GetHeightOfImage() と ImageList.GetWidthOfImage() はリモートではゼロを返す。
- リモートではループ内に Program.Delay() が必要になることがある。
- Shapes.Rotate() はローカルなら三角形や直線の中心で回転するがリモートでは隅で回転する。
- Sound.PlayMusic() はリモートでは鳴らない。
- TextWindow.CursorLeft と TextWindow.CursorTop はリモートでは設定できない。
それから以下は仕様だと思いますが、リモートでの制限です。
- File関連のステートメントがコメント化される。
- エクステンション(拡張ライブラリ)が使用できない。
これらの対応を行い、ハイスコアの記録にも対応した迷路ゲームを XHL585-5 として発行しました。
【図104 迷路ゲーム 1.56】