iOS依存関数


[戻る]
全関数名リストはこちら


// 画面構成


X-BASIC'はX68000と同様に
テキスト画面 1画面
グラフィック画面 4画面
スプライト&BG画面 1画面
を持っています (スプライト&BG画面は、スプライト機能を有効にした時のみ)。
各画面は独立しており、描画は個別に行い、優先順位を持って重ね合わせ出来ます。

また、これらとは別に以下の画面(相当)も持っています。
キー表示画面 1画面
ビットマップ(仮想グラフィック画面) 4ページ分
キー表示画面は、ファンクションキーやタッチ領域の表示に使われ、常に一番高い優先順位(=最前面)で表示されます。
ビットマップとは、仮想的なグラフィック画面です。 直接画面に描画しない分、超高速で処理できます。
ビットマップは各グラフィック画面に1ページ分付随しています。

機体の種類と方向によって解像度が変わります(BG画面とビットマップを除く)。
Retinaかどうかは解像度には影響しません。
その解像度と方向は、実行開始時に固定されます。
  縦画面 横画面
iPad 768*9601024*660
iPhone4S/
iPod touch4まで
320*372 480*224
iPhone5(s)/
iPod touch5
320*548 568*224
iPhone6 375*623 667*331
iPhone6 Plus 414*692 736*370
画面解像度はgetScreenSize()で取得できます。
回転はscreenRotate()を呼び出すと可能になります。
しかし解像度は固定であり、画面を回転させたときは、長辺方向が画面に入り込むように表示上縮小/拡大されます。
X68000実機と異なり、解像度および色数は変更できません(32ビットカラー固定)。

V3.0以降でのテキスト表示変更について
V3.0以降ではテキスト表示のバグを修正するために、1文字の大きさを計算する処理が変更されました。
このため、旧バージョンとは異なる表示結果になることがあります。変更されたのは以下の点です。
変更内容変化すること修正されるバグ
フォントの横幅が整数単位になるようにした width()で設定した横幅で画面解像度が割り切れない時、右側に空きが出来る 属性付きで表示した時、文字間に隙間が開く
フォントの縦幅が整数単位になるようにした 1画面内行数が減る可能性がある 同じ表示位置で反転をオン・オフした時、下線のようなものが残ってしまう
gやyなど下に伸びるフォントも正常に表示できるようにした(ディセンダー対応) 1画面内行数が減る フォントの下が切れてしまう
文字を上書き表示した時、前の文字のゴミが残ることがある
問題がある場合は、動作設定で「旧表示互換」を「オン」にしてください。
ディセンダー対応については、width()で設定するようになっています。
(本当は常時対応にしておきたかったのですが、表示行数がかなり減り影響が大きいので、ユーザー設定で対応可能ということにしました。)

注意:
現在のスプライト機能はかなり重たいので、移動せず固定的に、重ね合わせられるもう1画面として使うのが関の山です。
これはひとえに私の技量不足故です。ごめんなさい。


// 色の指定について

X-BASIC'において、色は8ビットのR,G,Bと8ビットのアルファ値を個別に指定するのが基本です。
これを個別RGB指定と呼びます。

RGBとalpha値を32ビット数値にまとめた合成RGB値も使えます。
色を扱う多くの関数は、引数の渡され方によってそれらを自動識別します。

また、スプライト関数はすべて合成RGB値で指定します。

HSV色空間値から合成RGB値を求める関数も用意しました。
HSV色空間については ここ を参照してください。

// テキスト画面関数

テキスト画面は文字単位で描画する画面です。

X68000では画面解像度設定に従って縦横の文字数が決定されましたが、X-BASIC'では
width()によって指定された桁数に収まるようにフォントサイズを変更します。
従って、桁数は基本的に自由に設定できます。
これをテキスト座標モードと呼びます。

テキスト座標モードでは各文字の表示桁位置は固定されるので、プロポーショナルフォントを使った場合も文字間は一定になります。

表示は画面右端まで行くと、次の行の左端に来ます。
最下行の場合はスクロールアップします。

画面内ではfont()でフォントの種類や大きさを自由に設定できますが、
width()で決定されたサイズより大きくした場合は、文字が重なるように表示させると正しく表示されません。

width(0)と指定した場合は「グラフィック座標モード」になります。
この場合、表示座標は画面の解像度範囲で任意のグラフィック座標をとることが出来ます。

両座標モードの違いは以下の通りです。
  テキスト座標 グラフィック座標
座標 文字単位 ピクセル単位
x座標 0~width()で指定したx幅-1 0~グラフィック画面横幅-1
y座標 0~width()で計算または指定したy幅-10~グラフィック画面縦幅-1
表示 1文字ずつテキスト座標に 最初の座標から文字列全体を連続描画
フォントのプロポーショナル 無効 有効
画面右端での自動改行 あり なし
コントロールコード 1文字の時のみ実行 一部が無効
printCtrlCode() 全て有効 カーソル移動系が無効
改行 有効 行頭へ移動(x=0)
tab() 次のタブ位置へ 半角スペース1個表示
文字重なり時 下の文字を消す 重なって表示(消すことも可能)
画面最下行での改行時 スクロールあり(設定でなし) スクロールなし
1文字で使う桁数(全角・半角)は、文字コードで決定されるのではなく、実際の表示幅によって決定されます。
ただし、SHIFT-JISの範囲のコードではX68000での結果と同じになります。

X-BASIC/68では多バイト文字をバイト単位で出力して表示できましたが、iOS版では出来ません。
どうしても必要なら、chars2Sjis()/chars2UTF8()を使って処理してください。

テキスト画面のスクロール範囲は、X68000ではファンクションキー領域の上まででしたが、
X-BASIC'では常にテキスト画面最下行までです。
関数名 font
書式 font(fontName;str[,pointSize;float])
機能 テキスト文字のフォントの種類と大きさを指定する。
引数
fontNameフォント種類
pointSize大きさ
テキスト座標モードでは基本的に省略する
戻り値 なし
補足
  • 指定されたフォントが見つからないときは標準フォントになります(等幅フォント)。
  • 等幅フォントでは全角文字は2桁を使って表示されます。非等幅フォントでは全文字1桁となります。
    したがって、width()で同じ桁数を指定しても等幅フォントのほうが表示される文字が大きくなります。

関数名 fontSize
書式 float fontSize(message;str,fontName;str,pointSize;float[,wy;float])
機能 テキスト文字列の表示幅を算出する
引数
message 文字列
fontName フォント種類
pointSize 大きさ
wy 表示縦幅を返す変数。省略した場合は返さない。
戻り値 表示横幅
サンプル keyMap.bas

関数名 width
書式 int width(wx;int[,wy;int][,fzenhan;int][,fdescender;int][[,baseCharacterSet;int],baseCharacter;str])
機能 テキスト画面の横文字数、縦行数を決定する。
その桁数になるフォントサイズを自動計算し表示する。
また同時にテキスト座標モードまたはグラフィック座標モードを決定する。
横文字数は常に指定した桁数になるが、行数は計算の結果、指定行数以下になることがある(増えることはない)。

テキスト画面モードを使う場合、基本的にはfont()width()の順で呼び出さないと、
フォントサイズ情報に合わせた行設定がなされない(同種のフォントなら再設定は不要)。
またテキスト画面モードではwidth()によってフォントの大きさが決定されるが、
描画サイズが極端に大きなフォント(Zapfinoなど)では、算出された1文字分の幅に収まらない場合もある。
その場合は、グラフィック座標を使ってユーザーが表示を制御すること。

なお、width()では画面はクリアしない。
引数
wx横文字数(桁数)
=0グラフィック座標モード
>=8で偶数単位その桁数になるように、フォント幅を自動設定する
wy縦行数(行数)
=0wxにより自動設定する(省略時)
>0自動計算された行数より少ないときのみ、指定行数に設定する
(行間を広げる。上寄せ表示。)
グラフィック座標モードのときは無意味
fzenhan全角文字を2桁として処理するかどうかを返す。
値が返るので必ず変数で与えること。
NO しない=全角半角とも1文字1桁と数える。
グラフィック座標では常にNO。
YESする=全角文字は2桁使う
この値は直前のfont()で設定したフォントによって設定される。
以下の条件でYESになる(それ以外はNOになる)。
  1. 等幅フォントである
  2. ASCII部分のフォントの幅が全角の半分以下である
なおYESの場合、SHIFT-JISで&h8140~&hEAFCの文字は、
フォントによる表示幅にかかわらず全角文字として処理される。
fdescender縦幅計算時に、gやyなど下に伸びるフォントも正常に表示できるよう考慮するかどうか設定する(ディセンダー対応)。
NO 考慮しない(省略時)
YES考慮する
  1. 考慮すると表示行数がだいぶ減ります。なので、必要時のみYESにしてください。
  2. YESにしても一部フォントや文字ではまだ下が切れることがあります。
    これはフォント側の持つ情報の問題なので、(自動では)解決できません。
    例:MigMix系
  3. gやyの他、絵文字の一部(🐓🏿など)にはディセンダー領域までフルに使っているものがあります。
    これらを表示した上に文字を重ねる場合もYESにしないと、画面上に前の文字のゴミが残ることがあります
baseCharacterSet等幅フォントでない時、文字幅を計算するための基準文字を番号で設定する
0あ(省略時)標準設定
1🐓絵文字を中心に使う時
2英字中心でWなど幅の広い文字が多い時
3英字中心でディセンダーが広い文字が多い時
baseCharacter等幅フォントでない時、文字幅を計算するための基準文字を任意に設定する。
基本的には、プログラム内で表示する一番大きな文字を設定する。
先頭1文字だけが有効。これを設定している場合はbaseCharacterSetは無視される。
考慮しないで設定するとテキスト文字表示がおかしくなることがあるので注意すること。
戻り値 実際に設定された行数
補足
  • width(0以外)を実行するとカーソルがホーム位置=(0,0)に戻ります。
    width(0)の時はカーソル位置は変わりません。
  • iOSはフォントの自由度が高いので、各設定値で正しく表示されるかは保証されません。必ず確認して下さい。
サンプル utfTest.bas,gonbe.bas,reverseTest.bas,stacky.bas

関数名 getWidth
書式 int getWidth([wx;int][,wy;int][,fzenhan;int][,fontWx;float][,fontWy;float])
機能 現在のテキスト画面の横文字数、縦行数を得る。
引数
wx画面横幅を返す。値が返るので必ず変数で与えること。
テキスト座標モードでは文字数で、グラフィック座標モードではピクセル数となる。
wy画面縦幅を返す。値が返るので必ず変数で与えること。
テキスト座標モードでは行数で、グラフィック座標モードではピクセル数となる。
fzenhan全角文字を2桁として処理するかどうかを返す。値が返るので必ず変数で与えること。
返り値はwidth()のそれと同じ。
fontWx1桁分のx幅。値が返るので必ず変数で与えること。
fontWy1桁分のy幅。値が返るので必ず変数で与えること。
戻り値
NO テキスト座標モード
YESグラフィック座標モード

関数名 isLandscape
書式 int isLandscape([mode;int])
機能 画面が横長であるかどうかを調べる
または、現在のデバイスの向きを返す
引数
NOまたは省略画面が横長であるかどうかを調べる
YES現在のデバイスの向きを返す
戻り値
mode=NO時
YES横長画面
NO 縦長画面
mode=YES時
DEVICE_ORIENTATION_UNKNOWN 不明
DEVICE_ORIENTATION_PORTRAIT 縦(ホームボタンは下)
DEVICE_ORIENTATION_PORTRAITUPSIDEDOWN 逆縦(ホームボタンは上)
DEVICE_ORIENTATION_LANDSCAPELEFT 左横(ホームボタンは右)
DEVICE_ORIENTATION_LANDSCAPERIGHT 右横(ホームボタンは左)
DEVICE_ORIENTATION_FACEUP 上向け
DEVICE_ORIENTATION_FACEDOWN 下向け
補足 mode=NO時は、画面が横長であるかを調べます。X-BASICは基本的にRUN時に表示画面方向を固定するので、以後はデバイスの方向を変えても変化しません。
mode=YES時は、リアルタイムで画面方向=デバイスの向きを調べます。これは表示画面方向の固定にかかわらず、変化します。
サンプル compass.bas,joystick1.bas

関数名 setUpScroll
書式 setUpScroll(fscroll;int)
機能 テキスト画面の上スクロールを設定する。
V2.0からはテキスト画面の最下行で改行するとスクロールアップするので、従来バージョンで作られたプログラムでは
表示がずれることがある。そのときは、これでスクロールアップを禁止する。
引数
fscroll スクロールモード
YESスクロールアップを許可する(標準)
NO スクロールアップを禁止する
戻り値なし

関数名 locate
書式 int locate(x;int,y;int)
機能 表示座標を設定する
引数
x,y表示座標
width()の設定に従い、テキスト座標もしくはグラフィック座標を与える。
戻り値
NO 画面内座標である(正常)
YES画面外座標のため補正された。
補正仕方は以下の通り。
x<0,y<0=0にする
x>=画面横幅x=0,y=次の行
y>=画面縦幅y=最下行

関数名 gLocate
書式 int gLocate(x;int,y;int)
機能 width(0)でテキスト画面をグラフィック座標モードにした時、 テキスト座標で表示座標を簡易的に設定する
引数
x,y表示座標(テキスト座標)
戻り値
NO 画面内座標である(正常)
YES画面外座標のため補正された。
補正仕方は以下の通り。
x<0,y<0=0にする
x>=画面横幅x=0,y=次の行
y>=画面縦幅y=最下行
注意 この関数は、1文字のx幅を8、y幅を16として「簡易的に」グラフィック座標を計算します。
グラフィック座標モードでの文字列表示はテキスト座標モードと異なるため、必ずしも表示位置は一致しません。
グラフィック座標モードでない時は使わないこと。

関数名 home
書式 home()
機能 カーソルをホーム座標(x=0,y=0)に戻す。
引数なし
戻り値 なし

関数名 cls
書式 cls()
機能 テキスト画面をクリアする。
カーソルもホーム座標に戻る。
引数なし
戻り値 なし

関数名 pos
書式 int pos()
機能 カーソルのx座標を得る
引数なし
戻り値 カーソルx座標
座標モードによって返ってくる値の範囲は変わる

関数名 csrlin
書式 int csrlin()
機能 カーソルのy座標を得る
戻り値 カーソルy座標
座標モードによって返ってくる値の範囲は変わる

関数名 textX2Gx
書式 int textX2Gx(x;int)
機能 テキストx座標をグラフィックx座標に変換する。
主に、後述のタッチエリア設定setTouchArea()の座標を得るために使う。
引数
xテキストx座標
戻り値 グラフィックx座標

関数名 textY2Gy
書式 int textY2Gy(y;int)
機能 テキストy座標をグラフィックy座標に変換する。
主に、後述のタッチエリア設定setTouchArea()の座標を得るために使う。
引数
yテキストy座標
戻り値 グラフィックy座標

関数名 tColor/tcolor
書式 tColor(r;int[,g;int,b;int[,alpha;int]])
tcolor(r;int[,g;int,b;int[,alpha;int]])
機能 テキスト描画色を設定する
引数 色成分
rだけを指定したときは、それを合成RGB値と見なす。
「例」
tColor(&hffffffff) :// 明るい白

以下の定数を使って標準色を設定できる。
CTBLACK CTHBLACK
CTBLUE CTHBLUE 明るい青
CTRED CTHRED 明るい赤
CTMAGENTA CTHMAGENTA 明るい紫
CTGREEN CTHGREEN 明るい緑
CTCYAN 水色 CTHCYAN 明るい水色
CTYELLOW 黄色 CTYELLOW 明るい黄色
CTWHITE CTHWHITE 明るい白
「例」
tColor(CTHWHITE) :// 明るい白
------------------------------------------------------------------
g以降も指定したときは個別RGB指定と見なす。
r赤成分0~255
g緑成分0~255
b青成分0~255
alpha透明度0~255
省略時は255
r<0,g=0,b=0と指定すると標準色で設定できる。
以下の定数を使って標準色を設定できる。
TBLACK THBLACK
TBLUE THBLUE 明るい青
TRED THRED 明るい赤
TMAGENTA THMAGENTA 明るい紫
TGREEN THGREEN 明るい緑
TCYAN 水色 THCYAN 明るい水色
TYELLOW 黄色 TYELLOW 明るい黄色
TWHITE THWHITE 明るい白
「例」
tColor(-THWHITE,0,0,255) :// 明るい白
戻り値 なし

関数名 tAtrb/tatrb
書式 tAtrb(atrb;int)
tatrb(atrb;int)
機能 文字の表示属性を指定する
引数
atrb属性
ATRB_NORMAL 普通
ATRB_UNDERLINE 下線
ATRB_CANCEL 取り消し線(1本)
ATRB_CANCEL2 取り消し線(2本)
ATRB_REVERSE 反転
ATRB_BOLD 太字
ATRB_CENTERING 中央寄せ(テキスト座標モードで不等幅フォントでのみ)
ATRB_CLEAR 下の文字を消す。
グラフィック座標モードでのみ有効
(テキスト座標モードでは自動指定される)
各属性はOR指定することが出来る。
各属性結果(中央寄せ以外)中央寄せ
上:普通(左寄せ)

下:中央寄せ
戻り値 なし
補足
  • 斜字体はフォントで設定してください。
  • 太字は算出演算で作り出しているため、細かい部分がつぶれる可能性があります。
    きれいな太字を使いたい場合は、font()でboldフォントを指定してください。
サンプルnewlineTest.bas

関数名 tBorder/tborder
書式 tBorder(width;float,r;int[,g;int,b;int[,alpha;int]])
tborder(width;float,r;int[,g;int,b;int[,alpha;int]])
機能 テキスト画面に外枠を描く
引数
width枠幅;>0
r,g,b,alpha各色成分
色の指定方法はtColor()と同じ
戻り値 なし

関数名 tBackgroundAlpha
書式 tBackgroundAlpha(alpha;float)
機能 テキスト画面の透明度を設定する
引数
alpha透明度=0.0~1.0
値が小さいほど透明になる。0.0だと見えなくなるので注意。
戻り値 なし

関数名 tBackgroundColor
書式 tBackgroundColor(r;int[,g;int,b;int[,alpha;int]])
機能 テキスト画面の背景色を設定する
引数
r,g,b,alpha各色成分
色の指定方法はtColor()と同じ
戻り値 なし

関数名 tab
書式 tab(cnt;int)
機能 指定回数TABを表示する。
1TABは8桁である。
テキスト座標系でのみ有効で、グラフィック座標モードでは半角スペースになる。
引数
cntタブの発行回数(>=0)
グラフィック座標モードでは半角スペースの桁数
戻り値 なし

関数名 cursorMove
書式 cursorMove(direc;int[,cnt;int])
機能 カーソルを指定回数指定方向に移動する
テキスト座標系でのみ有効
引数
direc
CURSOR_DIREC_UP
CURSOR_DIREC_DOWN
CURSOR_DIREC_LEFT
CURSOR_DIREC_RIGHT
CURSOR_DIREC_UP_WITH_SCROLL 上;最上行で下スクロール付き
CURSOR_DIREC_DOWN_WITH_SCROLL 下;最下行で上スクロール付き
cnt発行回数。省略すると1。
戻り値 なし

関数名 prints
書式 int prints(message;str)
機能 文字列を表示する
ステートメントのprintと似ているが、こちらは文字列しか表示できず、表示後の改行もない。
引数
message文字列
戻り値
NO 正常に表示できた
YES正常に表示できない(コントロールコードが途中に含まれていた)
補足 コントロールコードに関する制約はprint文と同じです。
もしくは、printCtrlCode()で発行してください。

関数名 printCtrlCode
書式int printCtrlCode(code;int)
機能 コントロールコードを実行する。 一部のコードはグラフィック座標モードでは無効。
引数
codeコントロールコード
定数名 処理内容 X-BASIC/68での
コード番号
DISP_CTRL_CLEARLINE カーソル以下行末までを消す &h05
DISP_CTRL_BEEP ベルを鳴らす(beep()相当) &h07
DISP_CTRL_TAB TAB &h09
DISP_CTRL_LF 改行する &h0a
DISP_CTRL_HOME home()相当 &h0b
DISP_CTRL_CLS cls()相当 &h0c
DISP_CTRL_CR 下行先頭に移動する。最下行ではスクロールアップする。&h0d
DISP_CTRL_RCR 上行先頭に移動する。最上行ではスクロールダウンする。なし
DISP_CTRL_CLEAR_EOS カーソル以下画面最後までを消す &h1a
DISP_CTRL_CURSOR_RIGHT カーソルを1つ上へ &h1c
DISP_CTRL_CURSOR_LEFT カーソルを1つ右へ &h1d
DISP_CTRL_CURSOR_UP カーソルを1つ左へ &h1e
DISP_CTRL_CURSOR_DOWN カーソルを1つ下へ &h1f
斜字体のものはグラフィック座標モードでは無効
戻り値
YESコントロールコードが実行された
NO 実行されていない(指定文字コードがコントロールコードでなかった場合も含む)

関数名 inputWithPlaceholder
書式 str inputWithPlaceholder(defInput;str[,placefolder;str][,keyType;int])
機能 文字列を入力する。
入力されるまで待つ。
引数
defInput予め入力しておく文字列があれば指定する
ないときは""を指定する
placefolder入力がないときに表示する文字列
keyTypeキーボード種類
KeyboardTypeDefault 標準
KeyboardTypeASCIICapable
KeyboardTypeAlphabet
英字入力に向く
KeyboardTypeNumbersAndPunctuation 数字と記号
KeyboardTypeURL URL入力に向く
KeyboardTypeNamePhonePad KeyboardTypeDefaultとほとんど(全く?)同じ
KeyboardTypeEmailAddress E-Mailアドレス入力に向く
KeyboardTypeNumberPad 数字入力に向く
KeyboardTypePhonePad 電話番号入力に向く
KeyboardTypeDecimalPad KeyboardTypeDefaultとほとんど(全く?)同じ
KeyboardTypeTwitter Twitter入力に向く
斜字体のものはiPhone/iPod touchでは指定してはいけない(改行キーがないので)。
戻り値 入力を文字列で返す
注意
  1. この関数に与える文字列引数はUTF8でなければなりません。
  2. 画面下部にカーソルがあるときにこの関数を実行すると、入力枠がキーボードに隠れて見えなくなります。
    カーソル位置に注意してください。

関数名 selectMenu
書式 int selectMenu(title;str,menues();str[,cnt;int])
機能 メニューで項目を選択する。
選択されるまで待つ。
メニュー外でタッチされても終了しない。
引数
titleメニュータイトル
menuesメニュー項目
最大5項目で、2つなら横に、3つ以上なら縦に並ぶ。
""の要素は無視される。
cntメニュー項目数;1~配列要素数
省略時は配列要素数
戻り値 選択された項目の要素番号(0~4)
注意
  • この関数に与える文字列引数はUTF8でなければなりません。
  • リピートするキーを押した後にこの関数を呼び出すと、キーバッファーにそのキーが貯まることがあります。
    呼び出し後はkbclr()したほうが無難です。

関数名 selectMenuWithMessage
書式 int selectMenuWithMessage(title;str,message;str,menues();str[,cnt;int])
機能 メニューで項目を選択する。
選択されるまで待つ。
メニュー外でタッチされても終了しない。
引数
titleメニュータイトル
messageタイトルの下に表示する文字列
主に説明書きを入れる。
menuesメニュー項目を格納した文字列1次元配列
最大5項目。表示され方はselectMenu()と同じ。

cntメニュー項目数;1~配列要素数
省略時は配列要素数
戻り値 選択された項目の要素番号(0~4)
注意
  • この関数に与える文字列引数はUTF8でなければなりません。
  • リピートするキーを押した後にこの関数を呼び出すと、キーバッファーにそのキーが貯まることがあります。
    呼び出し後はkbclr()したほうが無難です。

関数名 selectMenu2
書式 int selectMenu2(title;str,menues();str[,cnt;int][,fdisableBreak;int])
機能 メニューで項目を選択する。
選択されるまで待つ。
メニュー外でタッチした時にリターンさせることが出来る。
引数
titleメニュータイトル
menuesメニュー項目を格納した文字列1次元配列
最大10項目で、常に縦に並ぶ。
""の要素は無視される。
cntメニュー項目数;1~配列要素数
省略時は配列要素数
fdisableBreakメニュー外をタッチした時に抜けるようにしないかどうか。
YES メニュー外タッチは無効にする(省略時)
NO メニュー外タッチでリターンする
戻り値
0~9選択された項目の要素番号
-1メニュー外でタッチされた(/を含む)
fdisableBreak=NOの時のみ返ってくる。
注意
  • この関数に与える文字列引数はUTF8でなければなりません。
  • リピートするキーを押した後にこの関数を呼び出すと、キーバッファーにそのキーが貯まることがあります。
    呼び出し後はkbclr()したほうが無難です。
  • V3.2から、fdisableBreak=NOにしない限り、メニュー外タッチでリターンしないようになりました。

関数名 logoAlert
書式 int logoAlert([title;str][,message;str])
機能 をタップした時に表示するアラートメッセージを設定する。
引数
titleタイトル
messagesメッセージ文字列。chr$(13)で改行させることが出来る。

titleのみ省略した場合、標準のメッセージになる(バージョン表示)。
messageのみ省略した場合、タイトルのみになる。
両方省略した場合、ロゴをタップしても表示されなくなる。
戻り値 なし
注意 この関数は、メッセージを表示して「閉じる」のタップを待ちますが、
その間もlogoAlert()以降のプログラムを実行し続けます。
したがって、応答を待つまで処理を止める用途には使えません。
その用途にはhitKey()selectMenu()などを使ってください。
サンプルlogoAlert.bas

関数名 versionXBiOSTextScreenFunc$
書式 versionXBiOSTextScreenFunc$()
機能 テキスト画面関数のバージョンを返す
引数 なし
戻り値 テキスト画面のバージョン文字列


// グラフィック関数

グラフィック画面は4画面あります。それをページと呼びます。
どのページに描画するかはapage()、どのページを表示するかはvpage()、
テキスト画面、グラフィック画面およびスプライト&BG画面の表示順位はvpriority()で設定します。

従って、グラフィックの描画プログラムは基本的に、
  1. vpage() 表示ページ指定
  2. vpriority() 表示優先順位指定
  3. apage() 描画対象ページ指定
  4. wipe() クリア
  5. gColor() 描画色指定
  6. 描画命令群
という順で記述することになります。

なお、グラフィック座標はfloat型です(X-BASIC/68とは異なります)。
関数名 getScreenSize
書式 int getScreenSize([gwx;int])
機能 グラフィック画面のサイズを得る
引数
gwx横ドット数を返す。値を返すため変数で与えること。
省略時は返さない。
戻り値 縦ライン数
サンプルc256.bas

関数名 apage
書式 int apage(page;int)
機能 bitmapを含むグラフィックの描画・設定・ファイル書き出し対象ページを指定する
引数
page描画対象ページ
GPAGE0 グラフィック画面0
GPAGE1 グラフィック画面1
GPAGE2 グラフィック画面2
GPAGE3 グラフィック画面3
-1 現在のページを返すのみ(設定なし)
戻り値 現在のページを返す

関数名 vpage
書式 int vpage(page;int)
機能 表示ページを指定する。
引数
page表示対象ページ
ビット対応で同時に複数ページを指定できる。指定してないページは非表示になる。
B_TPAGE テキスト画面
B_GPAGE0 グラフィック画面0
B_GPAGE1 グラフィック画面1
B_GPAGE2 グラフィック画面2
B_GPAGE3 グラフィック画面3
B_SPAGE スプライト&BG画面
-1 現在のページ設定を返すのみ(設定なし)
戻り値 現在の設定状態を返す

関数名 vpriority
書式 int vpriority(p0;int,p1;int,p2;int,p3;int,p4;int[,p5;int])
機能 ページ表示優先順位を設定する。
高 p0>p1>p2>p3>p4>p5 低の順となる。
引数 p0~p5=ページ番号
TPAGE テキスト画面
GPAGE0 グラフィック画面0
GPAGE1 グラフィック画面1
GPAGE2 グラフィック画面2
GPAGE3 グラフィック画面3
SPAGE スプライト&BG画面
ページ番号を重複指定しないこと。 スプライト機能が無効の時はp5は設定しないこと。
戻り値
YES正常終了
NO 重複設定がある(エラー)

関数名 screenRotate
書式 screenRotate(onoff;int)
機能 デバイスの回転に合わせて画面を回転するかどうかを設定する。
画面を回転すると解像度が変わるので注意すること。
引数
onoff
YES回転させる
NO 回転を禁止する
戻り値 なし

関数名 getOrientation
書式 int getOrientation()
機能 画面方向を取得する。
引数 なし
戻り値
DeviceOrientationUnknown 方向不明
DeviceOrientationPortrait ホームボタンを下にした縦
DeviceOrientationPortraitUpsideDown ホームボタンを上にした縦
DeviceOrientationLandscapeLeft 画面を左
=ホームボタンを右にした横
DeviceOrientationLandscapeRight 画面を右
=ホームボタンを左にした横
液晶を上下向きにしたときは、直前の方向をそのまま返します。
補足 screenRotate(NO)で画面回転を禁止しているときは、デバイスを回転させても変化しない。

関数名 lineWidth
書式 lineWidth(wd;float)
機能 line/lines/box/circle/ellipseでの線の太さを設定する
引数
wd線の幅=1.0~
太さは、中央から両側に広がる。したがって水平線なら、中央から上に+wd/2、下に-wd/2の範囲で描画される。
戻り値 なし

関数名 lineCap
書式 lineCap(cap;int)
機能 線分両端の形状を指定する
引数
cap形状
LineCapButt 標準
LineCapRound 端を丸くする
LineCapSquare 端を四角くする
なお、lineWidthが十分大きくないと効果は見えない。
戻り値 なし

関数名 lineJoin
書式 lineJoin(join;int)
機能 線分結合部の形状を指定する
引数
join形状
LineJoinMiter 角を斜めにする
LineJoinRound 角を丸くする
LineJoinBevel2 直角のまま
なお、lineWidthが十分大きくないと効果は見えない。
戻り値 なし

関数名 blend/gBlend
書式 blend(blend;int)
gBlend(blend;int)
機能 図形が重なった部分の処理を指定する
引数
blend処理方法
BlendModeNormal 上書き(普通)
BlendModeMultiply 乗算
BlendModeScreen  
BlendModeOverlay  
BlendModeDarken  
BlendModeLighten  
BlendModeColorDodge  
BlendModeColorBurn  
BlendModeSoftLight  
BlendModeHardLight  
BlendModeDifference  
BlendModeExclusion  
BlendModeHue  
BlendModeSaturation  
BlendModeColor  
BlendModeLuminosity  
BlendModeClear 消去
BlendModeCopy  
BlendModeSourceIn  
BlendModeSourceOut  
BlendModeSourceAtop  
BlendModeDestinationOver  
BlendModeDestinationIn  
BlendModeDestinationOut  
BlendModeDestinationAtop  
BlendModeXOR  
BlendModePlusDarker  
BlendModePlusLighter  
戻り値 なし
サンプルblendModeSample.bas

関数名 gAntiAlias
書式 gAntiAlias(fantiAlias;int)
機能 グラフィック描画にアンチエリアシングを有効にするかどうか
引数
fantiAlias
YES有効にする
NO 無効にする
戻り値 なし
補足 bitmap描画には関係ない

関数名 gColor/gcolor
書式 gColor(r;int[,g;int,b;int[,alpha;int]])
gcolor(r;int[,g;int,b;int[,alpha;int]])
機能 グラフィック描画色を設定する
引数 色成分
rだけを指定したときは、それを合成RGB値と見なす。
「例」
gColor(&hffffffff) :// 明るい白

以下の定数を使って標準色を設定できる。
CTBLACK CTHBLACK
CTBLUE CTHBLUE 明るい青
CTRED CTHRED 明るい赤
CTMAGENTA CTHMAGENTA 明るい紫
CTGREEN CTHGREEN 明るい緑
CTCYAN 水色 CTHCYAN 明るい水色
CTYELLOW 黄色 CTYELLOW 明るい黄色
CTWHITE CTHWHITE 明るい白
「例」
gColor(CTHWHITE) :// 明るい白
------------------------------------------------------------------
g以降も指定したときは個別RGB指定と見なす。
r赤成分0~255
g緑成分0~255
b青成分0~255
alpha透明度0~255
省略時は255
r<0,g=0,b=0と指定すると標準色で設定できる。
この時、aplhaを-1にすると標準色そのものを、>=0にするとalpha値だけ変更できる。
以下の定数を使って標準色を設定できる。
TBLACK THBLACK
TBLUE THBLUE 明るい青
TRED THRED 明るい赤
TMAGENTA THMAGENTA 明るい紫
TGREEN THGREEN 明るい緑
TCYAN 水色 THCYAN 明るい水色
TYELLOW 黄色 TYELLOW 明るい黄色
TWHITE THWHITE 明るい白
「例」
gColor(-THWHITE,0,0,255) :// 明るい白
戻り値 なし
補足 透明度を255以外に設定し描画したときは、そのままでは元々あったグラフィック内容と合成描画されてしまうので、gBlend()の設定も必要になります。
「例」透明でクリアする場合
gColor(0,0,0,0)
gBlend(BlendModeClear)

関数名 rgb
書式 int rgb(r;int,g;int,b;int[,alpha;int])
機能 個別RGB値から合成RGB値を計算する。
Webセーフカラーを使うときは、alphaを省略するか、=255にしておくこと。
「例」#99FF66 → &h99ff66ff:// 最後のffがalpha値
引数 色成分
r赤成分0~255
g緑成分0~255
b青成分0~255
alpha透明度0~255
省略時は255
戻り値 合成RGB値

関数名 hsv
書式 int hsv(h;int,s;int,v;int[,alpha;int])
機能 HSV値から合成RGB値を計算する。
引数 HSV成分
h色相(h)成分0~359
s飽和度(s)成分0~255
v明るさ(v)成分0~255
alpha透明度0~255
省略時は255
戻り値 合成RGB値

関数名 splitRGB
書式 splitRGB(rgba;int,r;int,g;int,b;int,alpha;int)
機能 合成RGB値を個別RGB値に分解する。
引数
rgba合成RGB値
r個別赤成分を返す。変数を指定すること。
g個別緑成分を返す。変数を指定すること。
b個別青成分を返す。変数を指定すること。
alpha個別透明度を返す。変数を指定すること。
戻り値 なし

関数名 gborder/gBorder
書式 gborder(width;float,r;int[,g;int,b;int[,alpha;int]])
gBorder(width;float,r;int[,g;int,b;int[,alpha;int]])
機能 グラフィック画面に外枠を描く
引数
width枠幅;>0
r,g,b,alpha各色成分
色の指定方法はgColor()と同じ
戻り値 なし

関数名 gBackgroundAlpha
書式 gBackgroundAlpha(alpha;float)
機能 グラフィック画面背景の透明度を設定する
引数
alpha透明度=0.0~1.0
値が小さいほど透明になる。0.0だと見えなくなるので注意。
戻り値 なし

関数名 gBackgroundColor
書式 gBackgroundColor(r;int[,g;int,b;int[,alpha;int]])
機能 グラフィック画面の背景色を設定する
引数
r,g,b,alpha各色成分
色の指定方法はgColor()と同じ
戻り値 なし

関数名 pset
書式 pset(x;float,y;float)
機能 点を描画する。
引数
x,y座標
戻り値 なし

関数名 line
書式 line(sx;float,sy;float,ex;float,ey;float[,ffill;int][,style;int])
機能 直線を描画する。
引数
sx,sy始点座標
ex,ey終点座標
ffill
YES内側を塗りつぶす
NO 塗りつぶさない(省略時)
styleラインスタイルを設定する
16ビットで、bit=1のところが描画される。
省略したときは&hffff。

補足:
iOSでは必ず描画から始めなければならないので、
最上位ビットからに0が続く場合(非描画から始まる場合)、
その分は最下位ビットからに移動される。
「例」&h5555 (01010101 01010101) は &haaaa (10101010 10101010)に変換される
戻り値 なし

関数名 lines
書式 lines(xys();float[,ffill;int][,style;int])
機能 連続した座標群を直線で接続する。
引数
xys座標群のfloat1次元配列
x,yを1組として必要数設定する。
配列にはx1,y1,x2,y2・・・の順で格納しておくこと。
配列の要素数/2組の座標が存在することになる。
最大で64組まで指定できる。
(+0)=x座標 , (+1)=y座標
ffill
YES内側を塗りつぶす
NO 塗りつぶさない(省略時)
styleラインスタイルを設定する。詳細はline()のstyle参照のこと。
省略したときは&hffff
戻り値 なし

関数名 box
書式 box(sx;float,sy;float,ex;float,ey;float[style;int])
機能 四角を描画する。
引数
sx,sy始点座標
ex,ey終点座標
styleラインスタイルを設定する。詳細はline()のstyle参照のこと。
省略したときは&hffff
戻り値 なし

関数名 fill
書式 fill(sx;float,sy;float,ex;float,ey;float)
機能 四角を塗りつぶす。
引数
sx,sy始点座標
ex,ey終点座標
戻り値 なし

関数名 circle
書式 circle(cx;float,cy;float,r;float[,startAngle;float][,endAngle;float][,clockwise;int][,ffill;int][,style;int])
機能 円または円弧を描画する。
引数
cx,cy中心座標
r 半径
startAngle描画開始角度(ラジアン)
角度は水平を0として時計回り
省略すると0.0
負数を指定すると扇を描く
endAngle描画終了角度(ラジアン)
省略するとpi(2)
負数を指定すると扇を描く
clockwise描画方向
0時計方向(省略時)
1反時計方向
ffill
YES内側を塗りつぶす
NO 塗りつぶさない(省略時)
styleラインスタイルを設定する。詳細はline()のstyle参照のこと。
省略したときは&hffff
clockwise,startAngle,endAngleの関係は以下のようになります。
(endAngleをpi(n/4.0)ずつ増加)
clockwise=0
startAngle=0.0
clockwise=1
startAngle=0.0
clockwise=0
clockwise=1
戻り値 なし
サンプルcircle.bas

関数名 ellipse
書式 ellipse(cx;float,cy;float,r;float[,hv;float][,ffill;int][,style;int])
機能 楕円を描画する。
引数
cx,cy中心座標
r 半径
hv 扁平率。省略時は1.0。
>0.0縦方向に*hvする
<0.0横方向に*(-hv)する
=0.0または1.0縦横とも=r;真円
ffill
YES内側を塗りつぶす
NO 塗りつぶさない(省略時)
style ラインスタイルを設定する。詳細はline()のstyle参照のこと。
省略したときは&hffff
戻り値 なし
サンプルellipse.bas

関数名 symbol
書式 float symbol(sx;float,sy;float,string;str,fontName;str,pointSize;float[,ht;float])
機能 文字列を描画する
引数
sx,sy始点座標
string文字列
fontNameフォント名
pointSizeフォントサイズ
ht指定した場合、描画高さを返す。
ただし、本来日本語を含まないフォントを指定して(代替機能で)日本語を描画させたときは、
正しい高さを返さないことがある(iOSの問題)。
戻り値 描画幅
補足 指定されたフォントが見つからないときはデフォルトフォントを使う
サンプルgraphicTest.bas

関数名 symbolt
書式 symbolt(sx;float,sy;float,string;str,fontName;str,pointSize;float)
機能 文字列を縦書きで描画する
引数
sx,sy始点座標
string文字列
fontNameフォント名
pointSizeフォントサイズ
戻り値 なし
補足
  • 指定されたフォントが見つからないときはデフォルトフォントを使う
  • symbol()と異なり、描画幅は返さない
サンプルgraphicTest.bas

関数名 wipe
書式 wipe()
機能 グラフィック画面をクリアする
引数 なし
戻り値 なし

関数名 gScroll
書式 gScroll(mode;int,cnt;int)
機能 グラフィック画面スクロール
引数
modeスクロールモード
SCROLL_UP上スクロール
SCROLL_DOWN下スクロール
SCROLL_LEFT左スクロール
SCROLL_RIGHT右スクロール
cntスクロール行数またはドット数
戻り値 なし

関数名 pngSave
書式 int pngSave(fname;str)
機能 グラフィック画面をPNGでファイルに出力する。
出力対象ページはapage()で指定したページとなる。
引数
fnameファイル名
拡張子".png"まで記述する必要がある。
戻り値
-1 未確定(マルチタスク処理しているため関数呼び出し直後にはわからない)
1 正常に書き込めた
0 エラー
サンプルgraphicTest.bas

関数名 jpegSave
書式 int jpegSave(fname;str,quality;int)
機能 グラフィック画面をJPEGでファイルに出力する。
出力対象ページはapage()で指定したページとなる。
引数
fnameファイル名
拡張子".jpg"まで記述する必要がある。
quality圧縮率= 0.0~1.0
大きいほど圧縮率は低くなる
戻り値
-1 未確定(マルチタスク処理しているため関数呼び出し直後にはわからない)
1 正常に書き込めた
0 エラー
サンプルgraphicTest.bas

関数名 imageCopyToAlbum
書式 int imageCopyToAlbum(fname;str)
機能 指定した画像ファイルをアルバムにコピーする。
これにより、iOSの「写真」で見ることができるようになる。
引数
fnameファイル名
拡張子".jpg"または".png"まで記述する必要がある。
画像以外のファイルは指定しないこと。
戻り値 一応戻り値はあるが、基本的にはgfileStatus()で得ること。
-1 未確定(マルチタスク処理しているため関数呼び出し直後にはわからない)
1 正常終了
0 エラー
補足 pngSave()/jpegSave()後に呼び出す場合、必ずgfileStatus()=1になるまで待ってから実行すること。
サンプルfilecopyTest.bas

関数名 imgLoad
書式 int imgLoad([sx;float][,sy;float][,wx;float][,wy;float],fname;str)
機能 指定座標からにファイル内の画像を表示する
引数
sx,sy表示始点座標。省略時は0。
wx,wy領域幅
画像が幅より大きい時は縮小、小さいときは拡大して領域に納める。
省略またはwx=0またはwy=0にすると、画像のサイズを使う。
fname画像ファイル名
以下の画像フォーマットをサポートしている:
拡張子 フォーマット
.png PNG (Portable Network Graphic)
.jpg .jpeg JPEG (Joint Photographic Extert Group)
.gif GIF (Graphic Interchange Format)
.bmp .BMPf BMP (Windows Bitmap Format)
.tif .tiff TIFF (Tagged Image File Format)
.ico Windows Icon format
.cur Windows Cursor
.xbm XWindow BitMap
拡張子まで記述する必要がある。
戻り値
-1 未確定(マルチタスク処理しているため関数呼び出し直後にはわからない)
1 正常に読み込めた
0 エラー
補足pngの透過は、256色またはフルカラーの場合はgimp/Photoshoなどでインデックスカラーに変換しなければ有効になりません。
サンプルpicloader.bas,picloaderSc.bas,clock.bas,compass.bas

関数名 tileImgLoad
書式 int tileImgLoad(sx;float,sy;float,wx;float,wy;float,fname;str)
機能 指定座標から指定幅の領域に、画像を繰り返しながら貼り付ける。
引数
sx,sy表示始点座標。省略時は0。
wx,wy領域幅
画像が領域幅より大きいときは、左上から入りきるまでが貼り付けられる。
(拡大・縮小はない)
省略またはwx=0またはwy=0にすると、画像のサイズを使う。
fname画像ファイル名。imgLoad()と同じ。
戻り値
-1 未確定(マルチタスク処理しているため関数呼び出し直後にはわからない)
1 正常に読み込めた
0 エラー
サンプルgraphicTest.bas

関数名 gfileStatus/gFileStatus()
書式 int gfileStatus()
int gFileStatus()
機能 直前のpngSave()/jpegSave()/imgLoad()/tileImgLoad()/imageCopyToAlbum()の戻り値を得る。
マルチタスク処理しているので、関数呼び出し直後には状態がわからないことがある。
そのため、これが用意されている。
引数 なし
戻り値
-1 未確定
1 正常に書き込めた
0 エラー

関数名 bitmapOpen
書式 int bitmapOpen([wx;int,wy;int][,fdirect;int])
機能 グラフィック描画用ビットマップを確保する。
ビットマップは各グラフィック画面毎に1枚確保でき、apage()でグラフィック画面と同時に切り替えられる。
引数
wxビットマップ横幅
0=画面横幅と同じにする。省略時とfdirect=YES時は0。
wyビットマップ縦幅
0=画面縦幅と同じにする。省略時とfdirect=YES時は0。
fdirect
NO ビットマップを確保する
省略時はNO
YES通常グラフィック関数と同じ領域を使う
戻り値
YES 確保できた
fdirect=YES時は常にYES
NO 確保できない(前に確保したものがまだbitmapClose()されてない/メモリが確保できない)
補足
  • グラフィックページ毎に使う場合は、apage():bitmapOpen()で、各ページ毎に確保する必要があります。
  • fdirect設定、およびビットマップ関数と通常グラフィック関数の処理の違いは下図の通りです:
  • fdirect=YES時にはiOS内部ワークを使うため、タイミングによって、描画中内容がbitmapImgLoad()を発行しないのに表示されてしまうことがあります。
  • pic_load()系およびcut_load()系のfdirect=OFF時は、内部でbitmapImgLoad()を自動発行します。
    なお、Retina対応は実画面への描画時に行われます。
サンプルbitmapTest.bas,fractal16.bas

関数名 bitmapClose
書式 bitmapClose()
機能 ビットマップを閉じる
引数 なし
戻り値 なし
補足 グラフィックページ毎に使っていた場合は、apage():bitmapClose()で、各ページ毎に解放する必要があります。
サンプルbitmapTest.bas,fractal16.bas

関数名 getBitmapSize
書式 int getBitmapSize([wx;int])
機能 現在確保されているビットマップのサイズを得る
引数
wxビットマップ幅を返す。値を返すため変数で与えること。
省略時は返さない。
戻り値 ビットマップ高さ

関数名 bitmapWipe
書式 bitmapWipe()
機能 ビットマップをクリアする。
引数 なし
戻り値 なし

関数名 bitmapPset
書式 bitmapPset(x;int,y;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに点を描画する。
引数
xx座標:0~wx-1
yy座標:0~wy-1
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
範囲外の時は描画されない。
戻り値 なし
サンプルfractal16.bas

関数名 bitmapPoint
書式 int bitmapPoint(x;int,y;int[,r;int,g;int,b;int,alpha;int])
機能 ビットマップの点の色を取得する。
引数
xx座標:0~wx-1
yy座標:0~wy-1
r,g,b,alpha各色成分を返す。値を入れるため必ず変数で指定すること。
省略した場合は戻り値のみ使う意味になる。
ビットマップの座標はintで指定する。
戻り値 合成RGB色
範囲外の時は0が返る。
サンプルp68-246g.bas

関数名 bitmapLine
書式 bitmapLine(sx;int,sy;int,ex;int,ey;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに直線を描画する。
引数
sx,sy始点座標
ex,ey終点座標
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルbitmapTest.bas

関数名 bitmapBox
書式 bitmapBox(sx;int,sy;int,ex;int,ey;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに四角形を描画する。
引数
sx,sy始点座標
ex,ey終点座標
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルbitmapTest.bas

関数名 bitmapFill
書式 bitmapFill(sx;int,sy;int,ex;int,ey;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに四角形を塗りつぶす。
引数
sx,sy始点座標
ex,ey終点座標
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルbitmapTest.bas

関数名 bitmapCircle
書式 bitmapCircle(x;int,y;int,rr;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに円を描画する。
引数
x,y中心座標
rr半径
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルbitmapTest.bas,fractal16.bas

関数名 bitmapEllipse
書式 bitmapEllipse(x;int,y;int,rr;int,hv;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに楕円を描画する。
引数
x,y中心座標
rr半径
hv扁平率
hv=256の時真円となり、<256の時は長径=rr,短径=rr*(hv/256)、
>256のときは短径=rr,長径=(rr*256/hv)とする。
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルcircle.bas

関数名 bitmapEllipse2
書式 bitmapEllipse2(x;int,y;int,aa;int,bb;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップに楕円を描画する。
引数
x,y中心座標
aa長径/2
bb短径/2
必ずしもaa>bbである必要はない。
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルcircle.bas

関数名 bitmapPaint
書式 bitmapPaint(x;int,y;int,r;int[,g;int,b;int,alpha;int])
機能 ビットマップ内単色領域を塗りつぶす。
引数
xx座標:0~wx-1
yy座標:0~wy-1
r,g,b,alpha各色成分。0~255
rのみを指定したときは合成RGB値と見なす。
ビットマップの座標はintで指定する。
範囲外の時は描画されない。
戻り値 なし
サンプルbitmapTest.bas,fractal16.bas

関数名 bitmapGetSize
書式 int bitmapGetSize(sx;int,sy;int,ex;int,ey;int)
機能 bitmapGet()に必要なint配列要素数を計算する。
引数
sx,sy始点座標
ex,ey終点座標
ビットマップの座標はintで指定する。
座標が範囲外かどうかは考慮されない。
戻り値 必要要素数

関数名 bitmapGet
書式 bitmapGet(sx;int,sy;int,ex;int,ey;int,buff();int)
機能 ビットマップデータを配列に格納する。
引数
sx,sy始点座標
ex,ey終点座標
buffint型一次元配列
必要要素数は(ex-sx+1)*(ey-sy+1)であるが、bitmapGetSize()でも算出出来る。
配列各要素のデータは合成RGB値である。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ取得される。
戻り値 なし
サンプルfractal16.bas

関数名 bitmapPut
書式 bitmapPut(sx;int,sy;int,ex;int,ey;int,buff();int)
機能 配列内のデータをビットマップに描画する。
基本的にはbitmapGet()と対で使う。
引数
sx,sy始点座標
ex,ey終点座標
buffint型一次元配列
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルfractal16.bas

関数名 bitmapPattern
書式 bitmapPattern(sx;int,sy;int,wx;int,wy;int,ptrn();int)
機能 配列内のパターンデータをビットマップに描画する。
引数
sx,sy始点座標
wx,wyパターンサイズ
ptrnint型一次元配列
要素数はwx*wy個で、各要素は合成RGB値である(iOS型スプライトのパターンと同じ)。
bitmapGet()で得たデータも使える。
ビットマップの座標はintで指定する。
座標が範囲外の時は、範囲内を通る領域のみ描画される。
戻り値 なし
サンプルAcode.bas,rs.bas

関数名 bitmapImgLoad
書式 bitmapImgLoad([sx;float,sy;float,wx;float,wy;float])
機能 実画面の指定座標からにビットマップの画像を表示する
引数
sx,sy実画面始点座標
省略時は(0,0)
wx,wy領域幅
ビットマップ画像が幅より大きい時は縮小、小さいときは拡大して領域に納める。
wx=0またはwy=0にすると、ビットマップ画像のサイズを使う。
省略時はwx=0,wy=0。
bitmapOpen(fdirect=YES)のときは、自動的に全ての引数が省略される。
戻り値 なし
サンプルbitmapTest.bas,fractal16.bas

関数名 bitmapTileImgLoad
書式 bitmapTileImgLoad([sx;float,sy;float,wx;float,wy;float])
機能 指定座標から指定幅の領域に、ビットマップ画像を繰り返しながら貼り付ける。
bitmapOpen(fdirect=YES)のときは、この関数は無効である。
引数
sx,sy実画面始点座標
省略時は(0,0)
wx,wy領域幅
ビットマップ画像が領域幅より大きいときは、左上から入りきるまでが貼り付けられる。
(拡大・縮小はない)
wx=0またはwy=0にすると、ビットマップ画像のサイズを使う。
省略時はwx=0,wy=0。
戻り値 なし
サンプルbitmapTest.bas,fractal16.bas

関数名 picLoader/pic_load
書式 int picLoader(sx;float,sy;float,fname;str[,fdirect;int][,fNoBitmapClose;int])
int pic_load(sx;float,sy;float,fname;str[,fdirect;int][,fNoBitmapClose;int])
機能 指定座標からにX68000のPICファイルの画像を表示する。
画像が画面サイズ内の時はそのままのサイズで、入りきらないときは入るように縮小する。
引数
sx,sy始点座標
画像が画面内に収まるかどうかの判定には関係しない。
fnamePIC画像ファイル名
拡張子まで記述する必要がある。
サポートしているPICファイルは32768色のPICファイルのみ。
fdirect
NO ビットマップを確保する
省略時はNO
YES通常グラフィック関数と同じ領域を使う
sx<>0またはsx<>0の時はfdirect=NOになる.
fNoBitmapClose
YES終了時にbitmapClose()を実行しない。これにより、データを他でも利用できるようになる。
利用が終わったらbitmapClose()を呼び出すこと。
NO終了時にbitmapClose()を実行する(省略時)
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない/ビットマップが他で利用中/サポートしているPICファイルでない等)
注意
  • この関数は、fdirect=NO時は内部でビットマップを利用するため、他でそれを使っている場合はエラーになります。
  • アスペクト比の変換は行っていません。iOSのドットは正方形なので、若干縦長に見えます(X68000は基本的に横:縦=4:3)。 表示上のアスペクト比の変換を行うにはgTransform()を使います。
  • fdirect=YESとNOの時で、画像を重ねたときに表示され方が若干異なります。
  • fdirect=YESの時は、画面サイズを超える部分は表示できません(内部的にもデータが完全に無視されています)。
サンプルpicloader.bas,picloaderSc.bas

関数名 picHeader
書式 int picHeader(fname;str[,comment;str][,fsquare;int][,mode;int][,bitLength;int][,wx;int][,wy;int])
機能 X68000のPICファイルのヘッダー情報を読み込む。
ヘッダー情報については ここここを参照のこと。
引数
fnamePIC画像ファイル名
拡張子まで記述する必要がある。
commentコメント。内容を返すために文字列変数を与えること。
コメント内の&h1aは'/'に変換される。文字列変数に入りきらない部分は切り捨てられる。
コメント内文字コードはSHIFT-JIS(またはASCII)である。
fsquare画像のアスペクト比情報を返す。内容を返すために変数を与えること。
NO 正方PICではない(アスペクト比4:3)
YES正方PICである (アスペクト比1:1)
mode モード。内容を返すために変数を与えること。
bitLength 色のビット長。内容を返すために変数を与えること。
picLoader()で表示できるのはbitLength=15のみ。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 cutLoader/cut_load
書式 int cutLoader(sx;float,sy;float,fname;str[,fdirect;int][,fNoBitmapClose;int])
int cut_load(sx;float,sy;float,fname;str[,fdirect;int][,fNoBitmapClose;int])
機能 指定座標からにX68000のCUTファイルの画像を表示する。
画像が画面サイズ内の時はそのままのサイズで、入りきらないときは入るように縮小する。
引数
sx,sy始点座標
画像が画面内に収まるかどうかの判定には関係しない。
fnameCUT画像ファイル名
拡張子まで記述する必要がある。
fdirect
NO ビットマップを確保する
省略時はNO
YES通常グラフィック関数と同じ領域を使う
sx<>0またはsx<>0の時はfdirect=NOになる.
fNoBitmapClose
YES終了時にbitmapClose()を実行しない。これにより、データを他でも利用できるようになる。
利用が終わったらbitmapClose()を呼び出すこと。
NO終了時にbitmapClose()を実行する(省略時)
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない/ビットマップが他で利用中/サポートしているCUTファイルでない等)
注意
  • この関数は、fdirect=NO時は内部でビットマップを利用するため、他でそれを使っている場合はエラーになります。
  • アスペクト比の変換は行っていません。
  • fdirect=YESとNOの時で、画像を重ねたときに表示され方が若干異なります。
  • fdirect=YESの時は、画面サイズを超える部分は表示できません(内部的にもデータが完全に無視されています)。
サンプルpicloader.bas,picloaderSc.bas

関数名 cutHeader
書式 int cutHeader(fname;str[,wx;int][,wy;int])
機能 X68000のCUTファイルのヘッダー情報を読み込む。
引数
fnameCUT画像ファイル名
拡張子まで記述する必要がある。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 magLoader
書式 int magLoader(sx;float,sy;float,fname;str[,fdirect;int][,fNoBitmapClose;int])
機能 指定座標からにMAGファイルの画像を表示する。
画像が画面サイズ内の時はそのままのサイズで、入りきらないときは入るように縮小する。
引数
sx,sy始点座標
画像が画面内に収まるかどうかの判定には関係しない。
fnameMAG画像ファイル名
拡張子まで記述する必要がある。
fdirect
NO ビットマップを確保する
省略時はNO
YES通常グラフィック関数と同じ領域を使う
sx<>0またはsx<>0の時はfdirect=NOになる.
fNoBitmapClose
YES終了時にbitmapClose()を実行しない。これにより、データを他でも利用できるようになる。
利用が終わったらbitmapClose()を呼び出すこと。
NO終了時にbitmapClose()を実行する(省略時)
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない/ビットマップが他で利用中/サポートしているMAGファイルでない等)
注意
  • この関数は、fdirect=NO時は内部でビットマップを利用するため、他でそれを使っている場合はエラーになります。
  • アスペクト比の変換は行っていません。
  • fdirect=YESとNOの時で、画像を重ねたときに表示され方が若干異なります。
  • MAKIファイル、200ライン画像、および16/256色アナログ以外のMAGファイルは表示できません。
  • fdirect=YESの時は、画面サイズを超える部分は表示できません(内部的にもデータが完全に無視されています)。
サンプルpicloader.bas,picloaderSc.bas

関数名 magHeader
書式 int magHeader(fname;str[,comment;str][,wx;int][,wy;int][,mode;int][,machine;str][username;str])
機能 MAGファイルのヘッダー情報を読み込む。
ヘッダー情報については ここを参照のこと。
引数
fnameMAG画像ファイル名
拡張子まで記述する必要がある。
commentコメント。内容を返すために文字列変数を与えること。
文字列変数に入りきらない部分は切り捨てられる。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
mode スクリーンモード。内容を返すために変数を与えること。
machine 機種名。4バイトの文字列。内容を返すために変数を与えること。
username ユーザー名。18バイトの文字列。内容を返すために変数を与えること。
コメント、機種名、ユーザー名内文字コードはSHIFT-JIS(またはASCII)である。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 jpegHeader
書式 int jpegHeader(fname;str[,wx;int][,wy;int])
機能 JPEGファイルのヘッダー情報を読み込む。
引数
fnameJPEG画像ファイル名
拡張子まで記述する必要がある。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 pngHeader
書式 int pngHeader(fname;str[,wx;int][,wy;int][,bitLength;int])
機能 PNGファイルのヘッダー情報を読み込む。
引数
fnamePNG画像ファイル名
拡張子まで記述する必要がある。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
bitLength 色のビット長。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 gifHeader
書式 int gifHeader(fname;str[,wx;int][,wy;int])
機能 GIFファイルのヘッダー情報を読み込む。
引数
fnameGIF画像ファイル名
拡張子まで記述する必要がある。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 bmpHeader
書式 int bmpHeader(fname;str[,wx;int][,wy;int][,bitLength;int])
機能 BMPファイルのヘッダー情報を読み込む。
引数
fnameBMP画像ファイル名
拡張子まで記述する必要がある。
wx 画像横幅。内容を返すために変数を与えること。
wy 画像縦幅。内容を返すために変数を与えること。
bitLength 色のビット長。内容を返すために変数を与えること。
戻り値
=0 正常に読み込めた
<>0 エラー(ファイルが見つからない等)
サンプルgraphHeader.bas,picloaderSc.bas

関数名 bitmapImageFile
書式 bitmapImageFile(fname;str[,sx;int][,sy;int][,ex;int][,ey;int])
機能 画像ファイルをビットマップに読み込む
PIC/CUT/MAGファイル読み込み時も、自動的にビットマップを確保することはしない。
引数
fname画像ファイル名
以下の画像フォーマットをサポートしている:
拡張子 フォーマット
.png PNG (Portable Network Graphic)
.jpg .jpeg JPEG (Joint Photographic Extert Group)
.gif GIF (Graphic Interchange Format)
.bmp .BMPf BMP (Windows Bitmap Format)
.tif .tiff TIFF (Tagged Image File Format)
.ico Windows Icon format
.cur Windows Cursor
.xbm XWindow BitMap
.pic X68000 PIC file
.cut X68000 CUT file
.mag MAG file
拡張子まで記述する必要がある。
sx,sy読み込み開始座標
省略すると(0,0)
PIC/CUT/MAGファイルの場合は無効
ex,ey読み込み終点座標
省略するとビットマップサイズまたは画像幅まで。
PIC/CUT/MAGファイルの場合は無効

PIC/CUT/MAGの縮小条件は各ローダーと同じ。
他のフォーマットは、sx,sy,ex,eyを全て0にして読み込んだ場合、縮小表示となる。
戻り値
0 正常終了
>0 エラー
ファイルが見つからない/ワークが確保できないなど
注意
  • bitmapOpen()で確保された幅を超える部分は無視されます。
サンプルfractal16.bas

関数名 gAnimationParameter
書式 gAnimationParameter([tx;float][,ty;float][,scaleX;float][,scaleY;float][,angle;float][,axis;int])
機能 gAnimation()のANIMATION_LAYERアニメーションのパラメーターを簡便に設定する
引数
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
scaleX x方向拡大率。省略時は1.0。<1.0の時は縮小になる。
scaleY y方向拡大率。省略時は1.0。<1.0の時は縮小になる。
angle 回転角度(ラジアン単位)。省略時は0
axis 回転軸
AXIS_X x軸
AXIS_Y y軸
AXIS_Z z軸
AXIS_NONE回転軸なし
省略時は、角度も省略時はAXIS_NONE、指定時はAXIS_Xとなる。
戻り値 なし
水平移動 gAnimationParameter(tx,ty,1.0,1.0,0,AXIS_NONE)
拡大縮小 gAnimationParameter(0,0,scaleX,scaleY,0,AXIS_NONE)
回転 gAnimationParameter(0,0,1.0,1.0,angle,AXIS_X)

関数名 gAnimationMatrix
書式 gAnimationMatrix([m11;float][,m12;float][,m13;float][,m21;float][,m22;float][,m23;float][,m31;float][,m32;float][,m33;float][,tx;float][,ty;float])
機能 gAnimation()のANIMATION_LAYERアニメーションのパラメーターを詳細に(変換行列式で)設定する
引数
m11,m12,m13
m21,m22,m23
m31,m32,m33
変換行列の各要素
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
引数と行列式の関係は以下の通りとなる。
一般式 x軸回転 y軸回転 z軸回転
戻り値 なし

関数名 gAnimation
書式 gAnimation(mode;int[,duration;float][,repeatCount;float][,autoreverses;int][,animationCurve;float])
機能 グラフィック画面アニメーションを実行する
引数
mode アニメーションの種類
ANIMATION_STOP アニメーションを停止する
ANIMATION_LAYER レイヤーアニメーションを実行する。
パラメーターはあらかじめgAnimationParameter()/gAnimationMatrix()で設定しておくこと
ANIMATION_FLIPFROMLEFT 左から回転
ANIMATION_FLIPFROMRIGHT右から回転
ANIMATION_CURLUP カールアップ
ANIMATION_CURLDOWN カールダウン
duration アニメーション1回の全体の実行時間(秒単位)。省略時はmode=ANIMATION_STOPとみなす
repeatCount 繰り返し回数。省略時は1
autoreverses 繰り返すかどうか。YES=繰り返す、NO=1回のみ(省略時)
animationCurve アニメーションの速度変化
ANIMATIONCURVE_ERASEINOUT ゆっくり開始、中間まで加速、その後減速
ANIMATIONCURVE_ERASEIN ゆっくり開始し、その後加速する
ANIMATIONCURVE_ERASEOUT 素早く開始し、その後減速する
ANIMATIONCURVE_LINEAR 全期間で均等配分
省略時はANIMATIONCURVE_ERASEINOUT。
戻り値 なし
補足
  • 実行はマルチタスクで行われるので、必要なら待ち処理を置くこと
  • gAnimation()はページごとに設定でき、同時に実行もできますが、 設定によってはページ間の表示が干渉して、予測した結果にならないかもしれません。
サンプルpicloaderSc.bas,gonbe1.bas

関数名 gTransform
書式 gTransform([tx;float][,ty;float][,scaleX;float][,scaleY;float][apage;int][,angle:float])
機能 グラフィック画面を変形する
引数
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
scaleX x方向拡大率。省略時は1.0。<1.0の時は縮小になる。
scaleY y方向拡大率。省略時は1.0。<1.0の時は縮小になる。
apage 対象とするグラフィックページを指定する。apage()の引数と同じ。
省略時は現在のページを対象とする。
angle 回転角度(ラジアン単位)。省略時は0
apage以外すべてを省略した時は変形をキャンセルする。
戻り値 なし
補足
  • グラフィックページ別に設定できます。
  • gAnimation()gTransform()結果を起点とします。
  • gTransform()は、表示されている画像を変形するのではなく、画面全体を変形します。
    拡大時は、仮想画面が拡大、実表示画面がその中央になるよう設定されます。縮小時も同様です。
    したがって、平行移動しないと、見かけ上の表示座標もずれます。

  • 拡大率を設定した場合、画面サイズは変化しますが内部サイズは変わりません(ビットマップなども、内部サイズで確保されます)。
  • gTransform()を短時間に発行して連続変形すると、画面表示がカクカクになります。
    可能な場合、gAnimation()を使うほうが見栄えが良くなります。
注意 angleの指定順がgAnimationParameter()と異なります。
サンプルcompass.bas,picloaderSc.bas,c13down.bas,cAcordion.bas

関数名 versionXBiOSGraphic$
書式 versionXBiOSGraphic$()
機能 グラフィック関数のバージョンを返す
引数 なし
戻り値 グラフィック関数のバージョン文字列


// スプライト/BG関数

X-BASIC'はスプライト/BG画面関数を持っています。
その仕様はこちらにまとめてあります。
以下のスプライト/BG関数は、設定でスプライト機能が有効になっていなければ使えません。
関数名 sp_init
書式 int sp_init()
機能 スプライトとBGを初期化する。
初期化するのは以下の通り:
  • スプライト画面を非表示にする
  • 全パターンをクリア
  • 全スクロールレジスタを初期化する
  • 全パレットブロックの内容を初期化する
引数 なし
戻り値 常に0

関数名 sp_disp
書式 int sp_disp(onoff;int)
機能 スプライト/BG画面の表示処理を制御する
引数
onoff
YES表示する
NO 表示しない
戻り値 常に0
補足
  • vpage()はスプライト/BG画面そのものの表示を設定し、sp_disp()は実内容の表示の制御を行う。
  • この関数はsp_halt()制御を受ける。

関数名 sp_clr
書式 int sp_clr([sp1;int][,sp2;int])
機能 スプライトパターンをクリアする。
iOS型で全てのドットが透明(=0)のパターンになる。
クリアするのはパターンのみで、スクロールレジスタは変化しない。
引数
sp1開始パターン番号0~511
省略時は0
sp2終了パターン番号0~511
省略時は=sp1。ただしpl1も省略時は511
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_on
書式 int sp_on([pl1;int][,pl2;int][prw;int])
機能 指定プレーンを表示する
引数
pl1開始プレーン番号0~255
省略時は0
pl2終了プレーン番号0~255
省略時は=pl1。ただしpl1も省略時は255
prw表示優先順位
SPRITE_PRW_HIDE 表示しない
SPRITE_PRW_BG0BG1SPBG0>BG1>スプライト
SPRITE_PRW_BG0SPBG1BG0>スプライト>BG1
SPRITE_PRW_SPBG0BG1スプライト>BG0>BG1(省略時)
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_off
書式 int sp_off([pl1;int][,pl2;int])
機能 指定プレーンを非表示にする
引数
pl1開始プレーン番号0~255
省略時は0
pl2終了プレーン番号0~255
省略時は=pl1。ただしpl1も省略時は255
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_halt
書式 int sp_halt(onoff;int)
機能 スプライトおよびBGの表示更新を停止/再開する
一度に大量のスプライトの表示属性(パターンや表示位置など)を変更をすると、
処理が非常に重くなり、ちらつく。
sp_halt()で表示更新を一時的に停止すると高速化し、ちらつきもなくなる。
引数
onoff
YES表示処理を一時停止する
NO即表示状態にする
このとき、表示が更新される。
戻り値 常に0

関数名 sp_def
書式 int sp_def(sp;int,ptn();intまたはchar[,sz;int])
機能 スプライトパターンを登録する
引数
sp パターン番号0~511
ptnパターンデータの1次元配列 格納仕方についてはここを参照。
iOS型の時はintの配列、X68型の時はcharの配列で与えること。
sz サイズX68と互換を取るため存在しますが、iOS版では無意味です。
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_pat
書式 int sp_pat(sp;int,ptn();intまたはchar)
機能 スプライトパターンを読み出す
引数
sp パターン番号0~511
ptnパターンデータを読み出す1次元配列 要素数は256以上必要。 各要素の内容はsp_def()登録時のそれによる。
X68型パターンはint配列にも読み出せるが、iOSタイプにchar配列を指定した場合、エラーになる。
戻り値 パターンの型
0(SPRITE_IOS)iOS型
1(SPRITE_X68)X68型
-1エラー;iOS型パターン読み出しにchar配列を指定している

関数名 sp_color
書式 int sp_color(p;int,col;int[,pb;int])
機能 パレットブロックを定義する
引数
p パレットコード 0~15
基本的には0は変更しないこと(透明固定)
col割り付ける色 合成RGB値
pb パレットブロック番号 1~31
省略時は1。0は使えない。
戻り値 変更する前の色の合成RGB値
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_move
書式 int sp_move(pl;int[,x;int][,y;int][,sp;int])
機能 スプライトパターンをプレーンに登録、表示位置を設定し、表示する。
引数
pl プレーン番号 0~255
x,y表示座標 int範囲内で自由(負数~画面幅以上)
省略すると前の表示座標のまま(初期は(0,0))
sp パターン番号 0~511
省略すると前のパターン番号のまま(初期は0)
戻り値 常に0
補足
  • パターンがX68型の時は、パレットブロックは常に1を使う。反転はなし、表示優先順位はスプライト>BG0>BG1。
  • この関数はsp_halt()の制御を受ける。

関数名 sp_setting
書式 int sp_setting(pl;int[,x;int][,y;int][,sp;int][,pb:int][,flip;int][,prw;int])
機能 スプライトパターンをプレーンに登録、表示位置を設定する。
sp_move()より細かい設定が出来る。
引数
pl プレーン番号 0~255
x,y表示座標 int範囲内で自由(負数~画面幅以上)
省略すると前の表示座標のまま(初期は(0,0))
sp パターン番号 0~255
省略すると前のパターン番号のまま(初期は0)
pb パレットブロック番号1~31
パターンがX68型の時省略すると1。0は使えない。
iOS型の時は無視される
flip 反転設定
SPRITE_FLIP_NONE 反転なし(省略時)
SPRITE_FLIP_HORIZONTAL 水平反転
SPRITE_FLIP_VERTICAL 垂直反転
SPRITE_FLIP_HORIZONTAL_VERTICAL水平&垂直反転
prw表示優先順位
SPRITE_PRW_HIDE 表示しない
SPRITE_PRW_BG0BG1SPBG0>BG1>スプライト
SPRITE_PRW_BG0SPBG1BG0>スプライト>BG1
SPRITE_PRW_SPBG0BG1スプライト>BG0>BG1(省略時)
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_stat
書式 int sp_stat(pl;int,dt;int)
機能 スプライトの状態を得る
引数
plプレーン番号0~255
dt読み出しデータ種類
0x座標
1y座標
2パターン番号
3表示優先順位
4反転設定
5パレットブロック番号
戻り値 データ種類による

関数名 sp_disableBG0SPBG1
書式 int sp_disableBG0SPBG1(onoff;int)
機能 表示優先順位として、BG0>SP>BG1を許可しないようにする。
指定されている場合はBG0>BG1>SP、BG0>SP(BG1が非表示)またはSP>BG1(BG0が非表示)と見なす。
これを指定することで、BG0/1共表示するときのBGのワークエリアのサイズを1/3に押さえられる。
引数
onoff
YES許可しない
NO許可する
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 sp_image
書式 int sp_image(fname;str[,ofstx;int][,ofst;int][,pwx;int][,pwy;int][,tsp;int][,tpl;int][,sx;int][,sy;int][,prw;int][,fblack;int])
機能 画像ファイルからスプライトパターンを設定する。
すべてiOS型で登録される。
引数
fname画像ファイル名 以下の画像フォーマットをサポートしている:
拡張子 フォーマット
.png PNG (Portable Network Graphic)
.jpg .jpeg JPEG (Joint Photographic Extert Group)
.gif GIF (Graphic Interchange Format)
.bmp .BMPf BMP (Windows Bitmap Format)
.tif .tiff TIFF (Tagged Image File Format)
.ico Windows Icon format
.cur Windows Cursor
.xbm XWindow BitMap
拡張子まで記述する必要がある。
画像サイズは16*16以上でなければならない。
ofstx,ofsty画像の(ofstx,ofsty)の位置から読み出しを開始する
省略時はofstx=0,ofsty=0。
pwx横パターン数 pwx*16が画像横ドット数を超えないように補正される。
省略時およびpwx=0の時は画像横に収まるように設定される。 補正後の値を返すので、必ず変数で与えること。
pwy縦パターン数 pwy*16が画像縦ライン数を超えないように補正される。
省略時およびpwy=0の時は画像縦に収まるように設定される。 補正後の値を返すので、必ず変数で与えること。
tsp登録を開始するパターン番号0~511
tpl登録を開始するプレーン番号0~255
これを指定した場合、連続するプレーンへの登録と表示も同時に行う。
省略時はプレーンへの登録と表示は行わない。
プレーンの優先順位はprwで指定する。反転はなし固定。
最大プレーン番号を超える場合は、そこで打ち切られる。
sx,sy先頭(tpl)パターンの表示座標 int範囲内で自由(負数~画面幅以上)
省略すると前の表示座標のまま(初期は(0,0))
2つめ以降のパターンの座標は、元画像と同じように並ぶように自動設定される。
prw表示優先順位
SPRITE_PRW_HIDE 表示しない
SPRITE_PRW_BG0BG1SPBG0>BG1>スプライト
SPRITE_PRW_BG0SPBG1BG0>スプライト>BG1
SPRITE_PRW_SPBG0BG1スプライト>BG0>BG1(省略時)
fblack画像内の黒色を透明に変換するかどうか
YES 変換する(省略時)
NO 変換しない

パターンは、左上から右下への順で登録されます。
tsp*pwx*pwy<=511であること。超えた部分は登録されない。
戻り値
>=tsp+1 登録された最終パターン番号+1
<0 エラー
ファイルが見つからない/ワークが確保できないなど
補足 この関数はsp_halt()の制御を受ける。

関数名 bg_fill
書式 int bg_fill(pg;int,sp;int[,pb;int][,flip;int])
機能 指定されたBGテキストページをパターンで埋める。
引数
pg BGテキストページ番号 0/1
sp パターン番号 0~511
pb パレットブロック番号 1~31
省略時は1。0は使えない。iOS型の時は無視される。
flip 反転設定
SPRITE_FLIP_NONE 反転なし(省略時)
SPRITE_FLIP_HORIZONTAL 水平反転
SPRITE_FLIP_VERTICAL 垂直反転
SPRITE_FLIP_HORIZONTAL_VERTICAL水平&垂直反転
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 bg_put
書式 int bg_put(pg;int,x;int,y;int,sp;int[,pb;int][,flip;int])
機能 指定されたBGテキストページの座標にパターンを登録する。
引数
pg BGテキストページ番号 0/1
x,yBGテキストページ座標 x,y共に0~127
sp パターン番号 0~511
pb パレットブロック番号 1~31
省略時は1。0は使えない。iOS型の時は無視される。
flip 反転設定
SPRITE_FLIP_NONE 反転なし(省略時)
SPRITE_FLIP_HORIZONTAL 水平反転
SPRITE_FLIP_VERTICAL 垂直反転
SPRITE_FLIP_HORIZONTAL_VERTICAL水平&垂直反転
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 bg_get
書式 int bg_get(pg;int,x;int,y;int[,pb;int][,flip;int])
機能 指定されたBGテキストページの座標から登録されているパターン番号を読み出す。
引数
pg BGテキストページ番号 0/1
x,y BGテキストページ座標 x,y共に0~127
pb パレットブロック番号 値を返すので変数で与えること
flip反転設定 値を返すので変数で与えること
戻り値 パターン番号

関数名 bg_set
書式 int bg_set(scrnNo;int,pg;int,fdisp;int)
機能 BG画面にBGテキストページを登録し、表示するかどうかを設定する。
引数
scrnNo BG画面番号 0/1
pg BGテキストページ番号 0/1
fdisp 表示設定
NO非表示
YES表示
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 bg_scroll
書式 int bg_scroll(scrnNo;int[,x;int][,y;int])
機能 BG画面の表示位置を設定する
引数
scrnNoBG画面番号0/1
x,y表示座標 int範囲内で自由(負数~画面幅以上)
省略すると前の表示座標のまま(初期は(0,0))
戻り値 常に0
補足 この関数はsp_halt()の制御を受ける。

関数名 bg_stat
書式 int bg_stat(scrnNo;int,dt;int)
機能 BGの状態を得る
引数
scrnNoBG画面番号0/1
dt 読み出しデータ種類
0表示x座標
1表示y座標
2BGテキストページ番号
3表示設定
戻り値 データ種類による

関数名 spAnimationParameter
書式 spAnimationParameter([tx;float][,ty;float][,scaleX;float][,scaleY;float][,angle;float][,axis;int])
機能 spAnimation()のANIMATION_LAYERアニメーションのパラメーターを簡便に設定する
引数
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
scaleX x方向拡大率。省略時は1.0。<1.0の時は縮小になる。
scaleY y方向拡大率。省略時は1.0。<1.0の時は縮小になる。
angle 回転角度(ラジアン単位)。省略時は0
axis 回転軸。省略時は、角度も省略時はAXIS_NONEで、指定時はAXIS_X
戻り値 なし
水平移動 spAnimationParameter(tx,ty,1.0,1.0,0,AXIS_NONE)
拡大縮小 spAnimationParameter(0,0,scaleX,scaleY,0,AXIS_NONE)
回転 spAnimationParameter(0,0,1.0,1.0,angle,axis)

関数名 spAnimationMatrix
書式 spAnimationMatrix([m11;float][,m12;float][,m13;float][,m21;float][,m22;float][,m23;float][,m31;float][,m32;float][,m33;float][,tx;float][,ty;float])
機能 spAnimation()のANIMATION_LAYERアニメーションのパラメーターを詳細に(変換行列式で)設定する
引数
m11,m12,m13
m21,m22,m23
m31,m32,m33
変換行列の各要素
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
引数と行列式の関係は以下の通りとなる。
一般式 x軸回転 y軸回転 z軸回転
戻り値 なし

関数名 spAnimation
書式 spAnimation(mode;int[,duration;float][,repeatCount;float][,autoreverses;int][,animationCurve;float])
機能 スプライト画面アニメーションを実行する
引数
mode アニメーションの種類
ANIMATION_STOP アニメーションを停止する
ANIMATION_LAYER レイヤーアニメーションを実行する。
パラメーターはあらかじめgAnimationParameter()/gAnimationMatrix()で設定しておくこと
ANIMATION_FLIPFROMLEFT 左から回転
ANIMATION_FLIPFROMRIGHT右から回転
ANIMATION_CURLUP カールアップ
ANIMATION_CURLDOWN カールダウン
duration アニメーション1回の全体の実行時間(秒単位)。省略時はmode=ANIMATION_STOPとみなす
repeatCount 繰り返し回数。省略時は1
autoreverses 繰り返すかどうか。YES=繰り返す、NO=1回のみ(省略時)
animationCurve アニメーションの速度変化
ANIMATIONCURVE_ERASEINOUT ゆっくり開始、中間まで加速、その後減速
ANIMATIONCURVE_ERASEIN ゆっくり開始し、その後加速する
ANIMATIONCURVE_ERASEOUT 素早く開始し、その後減速する
ANIMATIONCURVE_LINEAR 全期間で均等配分
省略時はANIMATIONCURVE_ERASEINOUT。
戻り値 なし
補足 spAnimation()gAnimation()と同時に実行もできますが、 設定によってはページ間の表示が干渉して、予測した結果にならないかもしれません。

関数名 spTransform
書式 spTransform([tx;float][,ty;float][,scaleX;float][,scaleY;float])
機能 スプライト画面を変形する
引数
tx x方向移動量。省略時は0
ty y方向移動量。省略時は0
scaleX x方向拡大率。省略時は1.0。<1.0の時は縮小になる。
scaleY y方向拡大率。省略時は1.0。<1.0の時は縮小になる。
戻り値 なし
補足
  • spAnimation()spTransform()結果を起点とします。
  • spTransform()は、表示されている画像を変形するのではなく、画面全体を変形します。
    拡大時は、仮想画面が拡大、実表示画面がその中央になるよう設定されます。縮小時も同様です。
    したがって、平行移動しないと、見かけ上の表示座標もずれます。

  • 回転はできません

関数名 sborder/sBorder
書式 sborder(width;float,r;int[,g;int,b;int[,alpha;int]])
sBorder(width;float,r;int[,g;int,b;int[,alpha;int]])
機能 スプライト画面に外枠を描く
引数
width枠幅;>0
r,g,b,alpha各色成分
色の指定方法はtColor()と同じ
戻り値 なし

関数名 sBackgroundAlpha
書式 sBackgroundAlpha(alpha;float)
機能 スプライト画面全体の透明度を設定する
引数
alpha透明度=0.0~1.0
値が小さいほど透明になる。0.0だと見えなくなるので注意。
戻り値 なし

関数名 sBackgroundColor
書式 sBackgroundColor(r;int[,g;int,b;int[,alpha;int]])
機能 スプライト画面の背景色を設定する
引数
r,g,b,alpha各色成分
色の指定方法はtColor()と同じ
戻り値 なし

関数名 versionXBiOSSprite$
書式 versionXBiOSSprite$()
機能 スプライト&BG関数のバージョンを返す
引数 なし
戻り値 スプライト&BG関数のバージョン文字列


// タッチ&キー入力関数

X-BASIC'のキー関数には、画面上の任意の位置にタッチエリアを設定して
そこにがタッチされたときにキーコードを返させるようにするものと、
画面下部に文字列を表示させて、そこをタッチしたときに
キーコードを返させるファンクションキーの2種類があります。

どちらも、押されたときに内部のキーバッファーにため込むので、ユーザーは必要なときにそれを読み出します。

ファンクションキーを表示する画面はテキストおよびグラフィック画面とは独立しているので、
それらとの重ね合わせを考慮する必要ありません(優先順位は常に最上位)。

エリアタッチによるキー入力はリピートします。
ファンクションキーはリピートしません。
関数名 inkey
書式 int inkey()
機能 入力されたキーを読み出す(リアルタイムキー入力相当)
引数 なし
戻り値 文字コード
何も押されてなければ0を返す

関数名 inkey$
書式 str inkey$()
機能 入力されたキーを文字列として読み出す(リアルタイムキー入力相当)
引数 なし
戻り値 文字
何も押されてなければNULL$を返す

関数名 kbhit/keysns
書式 int kbhit()
int keysns()
機能 キー入力があったかどうか調べる
引数 なし
戻り値
YES入力がある
NO 入力はない

関数名 kbclr
書式 kbclr()
機能 キーボードバッファーをクリアする
引数 なし
戻り値 なし

関数名 keyRepeatTime
書式 keyRepeatTime(r1;float,r2;float)
機能 直後のsetTouchArea()/setTouchAreaWithText()で設定するタッチエリアへの、
タッチエリアを押し続けたときのキーリピート間隔を設定する
引数
r1リピート開始までの時間
200+r1*100 ms
r1<0にするとリピートしなくなる
r2リピート間隔
30+5*r2 ms
r2<0にすると待ちなしでリピートする
標準値はr1=3,r2=2
戻り値 なし
補足 keyRepeatTime()自体はリピート時間の実設定は行わない。
リピート時間の実設定は、これで設定された値をもってsetTouchArea()/setTouchAreaWithText()が行う。
サンプルtouchTest.bas

関数名 setTouchArea
書式 int setTouchArea(sx;float,sy;float,wx;float,wy;float,keyCode;int,fBeganOnly;int[,r;int[,g;int,b;int[,alpha;int]]])
機能 グラフィック座標でタッチエリアを設定する
引数
sx,syエリア始点座標(グラフィック座標系)
wx,wyエリア幅
keyCodeこのエリアを押したときに返すキーコード
押された場合のコードはinkey()/inkey$()で取得する。
fBeganOnly
YESそのエリア内をタッチしたときのみ反応する
NO エリア外からエリア内に入ってきたときも反応する
backColor タッチエリアが押されていない状態での色を指定する。rだけ指定時は合成RGBとみなす。
r赤成分0~255
g緑成分0~255
b青成分0~255
alpha透明度0~255(省略時は255)
画面上、タッチエリアは常に優先順位が最上位にあるため、テキストやグラフィックの上に表示されます。
それを考慮して色を設定してください。
戻り値 タッチエリア番号
解除する必要がある場合は、保存しておくこと。
補足
  • 複数エリアの同時押しはサポートしていない
  • 設定したエリアは、画面回転しても変化しない
  • エリア設定数に上限はない
サンプルtouchTest.bas

関数名 setTouchAreaWithText
書式 int setTouchAreaWithText(sx;int,sy;int,wx;int,wy;int,keyCode;int,fBeganOnly;int[,r;int[,g;int,b;int[,alpha;int]]])
機能 テキスト座標でタッチエリアを設定する
引数
sx,syエリア始点座標(テキスト座標系)
wx,wyエリア幅
keyCodeこのエリアを押したときに返すキーコード
押された場合のコードはinkey()/inkey$()で取得する。
fBeganOnly
YESそのエリア内をタッチしたときのみ反応する
NO エリア外からエリア内に入ってきたときも反応する
backColor タッチエリアが押されていない状態での色を指定する。
指定仕方はsetTouchArea()と同じ。
戻り値 タッチエリア番号
解除する必要がある場合は、保存しておくこと。

関数名 removeTouchArea
書式 removeTouchArea(no;int)
機能 指定した番号のタッチエリアを解除する
引数
noタッチエリア番号
setTouchArea()の戻り値
戻り値 なし
補足 これを実行するとタッチエリアの反転アニメーションが止まるので、タッチ直後には呼び出さないこと。
参考エリアが解除されない時はnoが正しいかどうか確認して下さい。noが正しくなくてもエラーは発生しません。
サンプルtouchTest.bas

関数名 getTouchStatus
書式 int getTouchStatus()
機能 タッチ状態を取得する
引数 なし
戻り値
TOUCH_NONE タッチされていない
TOUCH_BEGANタッチが開始された
TOUCH_MOVE タッチされたまま移動された

関数名 getTouchPoint
書式 int getTouchPoint(xys();float[,mode;int])
機能 現在の画面タッチされている座標を返す
引数
xysタッチ座標群(グラフィック座標)を持つfloat1次元配列
x,yを1組として存在数返される。
配列にはx1,y1,x2,y2・・・の順で格納される。
配列の要素数/2組の座標が存在することになる。
最大で10点まで同時読み取りできる。
(+0)=x座標 , (+1)=y座標 配列のサイズが座標数=タッチ点数の2倍に足りないときは、入るだけを入れる。
mode座標取得モード
0(省略時)現在の取得座標を得る。タッチ中でないときは読めない(座標数=0)
1直前の取得座標を得る。過去に1回でもタッチされていれば、座標が返る
戻り値 格納した座標組数
タッチされてないときは0
補足
  • setTouchArea()の設定がないと動作しない。
    有効なタッチエリアを設定しないでgetTouchPoint()を使うには、setTouchArea(0,0,0,0,0,YES)を呼び出すこと。
  • 複数同時タッチの時、座標の格納順は不定である。
  • iOSの仕様により、複数タッチしていてもその全座標が返ってこないことがある。
  • mode=0でタッチ座標が得られるのは、getTouchStatus()<>TOUCH_NONEの時のみである。

関数名 setFunctionKey
書式 setFunctionKey(no;int,title;str,keyCode;int)
機能 ファンクションキーに表示文字列とキーコードを設定する
引数
noファンクションキー番号
0~19 ; このうち、10~19は拡張ファンクションキーと呼ぶ。
titleファンクションキーに表示する文字列
keyCodeこのファンクションキーを押したときに返すキーコード
戻り値 なし
押された場合のコードはinkey()/inkey$()で取得する。
補足 文字列のフォントは、この関数呼び出し時のテキスト画面のフォント設定に従う。
サンプルtouchTest.bas

関数名 displayFunctionKey
書式 displayFunctionKey(onoff;int[,st;int][,ed;int][,f2stage;int][,clearance;int])
機能 指定範囲のファンクションキーの表示をON/OFFする
引数
onoff
YES表示する
NO 表示を消す
onoff=NO時は、st/edは無視され、常に全てとなる。
st表示を開始するファンクションキー番号;0~19。省略時は0。
ed表示を終了するファンクションキー番号;0~19。省略時は1段表示の全て。
f2stage ファンクションキーが、iPod touchおよびiPhoneの縦画面で5個を超えるとき、
またはiPadで10個を超えるとき、多段表示するかどうか
YES多段表示する
NOまたは省略時1段表示(表示しきれない分は表示しない)
clearanceファンクションキーの表示位置を調整する
clearance省略時 clearance指定時
テキスト座標モード グラフィック座標モード
-1
_
↓*2
最下行
_
画面縦幅/20
省略時は、テキスト座標モードの場合、
ファンクションキーは最下行から上に1行づつ上がる。
グラフィック座標モードの場合は画面縦幅の1/20づつになる。
表示位置および幅は、画面幅を表示するキーの個数で当分配した位置になる。
機種と画面方向別では、以下が実用上1行に表示できる最大数となる。
  縦画面 横画面
iPod touch
iPnone
5 10
iPad 10 10
戻り値 なし
補足
  1. ファンクションキーの表示個数を変える場合、自動的に前の表示を消すことはしないので、
    消す処理を記述する必要がある(そうしないと表示が重なってしまう)。
    「例」
     displayFunctionKey(ON,0,5)
      ~
     displayFunctionKey(OFF,0,5)
     displayFunctionKey(ON,0,2)
  2. 画面回転による自動表示位置変更は対応していない

関数名 displayFunctionKeyAll
書式 displayFunctionKeyAll(onoff;int[,f2stage;int][,fextend;int][,clearance;int])
機能 画面幅内で表示可能な分、全てのファンクションキーの表示をON/OFFする
引数 >
onoff
YES全部表示する
NO 全部表示を消す
f2stage ファンクションキーが、iPod touchおよびiPhoneの縦画面で5個を超えるとき、
またはiPadで10個を超えるとき、多段表示するかどうか
YES多段表示する
NOまたは省略時1段表示(表示しきれない分は表示しない)
fextend 拡張ファンクションキー(10~19)を表示するかどうか。
YES0~19全て表示する
NOまたは省略時0~9を表示する
clearanceファンクションキーの表示位置を調整する
displayFunctionKey()のそれと同じ
戻り値 なし
サンプルtouchTest.bas

関数名 setFunctionKeyBackgroundImage
書式 setFunctionKeyBackgroundImage([fname;str])
機能 ファンクションキーの背景に画像を貼り付ける。
引数
fname画像ファイル名
PNGまたはJPEGファイルを指定する。
画像がファンクションキー領域のサイズに一致しないときは、適宜拡大・縮小される。
必ずdisplayFunctionKey()/displayFunctionKeyAll()で表示する前に設定すること。
省略時は標準背景が設定される。
システムには以下の背景画像が標準で用意されている。
funcBackG1.png
funcBackG2.png
funcBackM1.png
funcBackM2.png
funcBackR1.png
funcBackR2.png
funcBackW1.png
funcBackW2.png
funcBack.png(省略時の標準背景)
戻り値 なし
サンプルtouchTest.bas

関数名 kBackgroundAlpha
書式 kBackgroundAlpha(alpha;float)
機能 キー表示画面の透明度を設定する
引数
alpha透明度=0.0~1.0
値が小さいほど透明になる。0.0だと見えなくなるので注意。
戻り値 なし

関数名 hcopy
書式 hcopy([fname;str[,quality;float]])
機能 画面のハードコピーを出力する。引数によって出力先を変更する。
引数
fname出力ファイル名
省略AirPrint対応プリンターに出力する
拡張子が.PNGPNG画像として指定ファイルに出力する
拡張子が.JPGJPEG画像として指定ファイルに出力する
拡張子が.ALBUMアルバムへ出力する
拡張子は大文字小文字を区別しない。
qualityJPEG圧縮率(0.0~1.0=省略時)。ファイル名を省略したときはこれも省略すること。PNG/アルバムでは無効。
戻り値
0正常終了
>0エラー(ファイル名異常など)
サンプルpicloader.bas

関数名 versionXBiOSKey$
書式 versionXBiOSKey$()
機能 キー関数のバージョンを得る
引数 なし
戻り値 キー関数のバージョン文字列



// 音声関数


関数名 beep
書式 beep()
機能 beep2(1)相当の音を鳴らす
引数 なし
戻り値 なし

関数名 beep2
書式 beep2([no;int][,floadOnly;int])
機能 beep音を鳴らす。またはiOS内蔵音を鳴らす。
引数
no0〜13=beep音番号
>=1000=iOS内蔵音
省略時は1。
各beep音は以下のとおり。



iOS内蔵音はno=1000〜1351の範囲内(ただし一部抜けあり)で再生される。
どの番号がどんな音を出すかはサンプルで確認のこと。
floadOnly音声データ読み込みだけにするかどうかYES=読み込みだけ
NO=発声もする。省略時はNO
iOS内蔵音の場合は無効
戻り値 なし
補足 beep2()は呼び出し時に音声データを読み込みます。
そのため、1回前と同じ音番号でない場合、発声が遅れることがあります。
これを回避するには、あらかじめfloadOnly=YESで読み込みだけを先行させておいてください。
サンプルbeepTest.bas

関数名 a_setPlayData
書式 int a_setPlayData(fname;str[,rateNo;int])
機能 音声データをバッファー内に読み込む。
最大64トラックが同時登録できる。
引数
fname 音声ファイル名。
以下の音声フォーマットをサポートしている:
拡張子 フォーマット
.aif .aiff AIFF (Audio Interchange File Format)
.caf CAF (Core Audio Format)
.mp3 MPEG-1 layer3
.aac MPEG2/MPEG4 Audio Data Transport Stream(ADTS)
.m4a .mp4 MPEG-4
.wav WAV (RIFF Waveform Audio Format)
.pcm X68000 ADPCM
.M44 44.1 KHz モノラル
符号あり 16ビットPCM(ビッグエンディアン)
.M30 30.0 KHz モノラル
符号あり 16ビット(有効12ビット)PCM(ビッグエンディアン)
.P16 15.625KHz モノラル
符号あり 16ビット(有効12ビット)PCM(ビッグエンディアン)
拡張子まで記述する必要がある。
rateNoサンプリングレート番号。.pcmのときのみ設定する。
番号 サンプリングレート
0(省略時) 15.6KHz
1 10.4KHz
2 7.8KHz
3 5.2KHz
4 3.9KHz
戻り値
0~63登録したバッファー番号
-1空きバッファーがない
-2ファイルが見つからない

関数名 a_play
書式 int a_play(no;int)
機能 バッファー内の音声データを再生する。
登録された全トラックを同時に発声できるかどうかはマシンパワーに依るが、8トラックまでにするのが無難。
引数
noバッファー番号
戻り値
0~63再生したバッファー番号
-1指定したバッファーが空または番号が範囲外
注意・再生はマルチタスクで行われます。
・音声再生中に、非常に高速にprint(または相当関数)を呼び出し続けると落ちることがあります。
(正確には、フォントへのアクセス時に落ちる様子。)
これを回避するには、printの呼び出し頻度を減らす必要があります。
「例」
a_play(1)
repeat
    locate(0,0):print "演奏中":// ここで落ちることがある
until a_stat(1)=0

「回避例」
int i=0
repeat
    i=i+1
    if i>=100 then locate(0,0):print "演奏中"
until a_stat(1)=0

または

repeat
    wait(0.05):// 50ms
    locate(0,0):print "演奏中"
until a_stat(1)=0
なお、これはiOSの問題です。

関数名 a_end
書式 int a_end(no;int)
機能 音声データを開放する
引数
noバッファー番号
戻り値
0~63解放したバッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_stop
書式 int a_stop(no;int)
機能 音声再生を一時停止する
引数
noバッファー番号
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_cont
書式 int a_cont(no;int)
機能 a_stop()で一時停止した、またはa_loop()指定回数演奏終了した音声再生を再開する
引数
noバッファー番号
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_volume
書式 int a_volume(no;int,level;float)
機能 音量を調整する
引数
noバッファー番号
level音量;0.0~1.0
0.0無音
1.0最大音量(データそのものの持つ音量)
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_speed
書式 int a_speed(no;int,speed;float)
機能 再生速度を設定する
引数
noバッファー番号
speed速度;0.5~2.0
0.5半分速
1等速
2倍速
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_pan
書式 int a_pan(no;int,pan;float)
機能 ステレオのパン位置を指定する
引数
noバッファー番号
panパン位置
-1.0
0.0中央
1.0
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_loop
書式 int a_loop(no;int,loopcnt;int)
機能 音声の繰り返し再生回数を設定する。
a_play()/a_stop()の前にしなければ無効。
引数
noバッファー番号
loopcnt繰り返し回数
>=1指定回数再生
0無限リピート。a_stop()で停止する。
戻り値
0~63バッファー番号
-1指定したバッファーが空または番号が範囲外

関数名 a_stat
書式 int a_stat(no;int)
機能 音声の出力状態を得る
引数
noバッファー番号
戻り値
2 再生中(X-BASIC/68の仕様)
0 停止中(a_stop()でもこうなる)
指定したバッファーが空または番号が範囲外

関数名 versionXBiOSSound$
書式 versionXBiOSSound$()
機能 音声関数のバージョンを返す
引数 なし
戻り値 音声関数のバージョン文字列


// モーション関数


関数名 motionStart
書式 int motionStart(dataSecond;int[,dno;int])
機能 モーション取得機能を開始する
取得間隔は100ms。
引数
dataSecondデータ確保秒数
この秒数分のデータを保持する。
これより古いデータは上書きされる。
dnoデータ種類
MOTION_DEGREE 角度(省略時)
MOTION_VELOCITY角速度
MOTION_ROTATION
MOTION_EULER
オイラー角
戻り値
YESモーション機能は使えない
ジョイスティック関数で使っている
バックグラウンドで動いている他のアプリが使っているなど
NO 使える
サンプルmotionTest.bas

関数名 motionSelectData
書式 motionSelectData(dno;int)
機能 取得するデータの種類を切り替える。
取得するデータを切り替えてもバッファー内のデータは自動では消えないので、
読み取り時は注意すること(必要ならmotionClear()すること)。
引数
dnoデータ種類
戻り値 なし
サンプルmotionTest.bas

関数名 motionGetRotation
書式 float motionGetRotation(y;float,z;float)
機能 モーションデータを取得する
引数
yy軸データを返す。データを入れるので変数で与えること。
zz軸データを返す。データを入れるので変数で与えること。
戻り値 x軸データ
返ってくるデータはデータ種類別に以下の通りになる。
MOTION_ROTATION (MOTION_EULER)の場合はx/y/z別に意味の異なるデータが返ってくる。
dno MOTION_VELOCITY MOTION_DEGREE MOTION_ROTATION
MOTION_EULER
  角速度
rad/秒
角度
-90~+90度
オイラー角
x x軸 x軸 ロール角(roll:-90~+90度)
y y軸 y軸 ピッチ角(pitch:-90~+90度)
z z軸 z軸 ヨー角(yaw:-180~180度未満)
motionCount()>0の時のみ読み出すようにすること。

本体に対して軸/オイラー角は以下のように設定されている。
オイラー角
サンプルmotionTest.bas

関数名 motionCount
書式 int motionCount()
機能 記録されているデータ数を返す
引数 なし
戻り値 データ数
サンプルmotionTest.bas

関数名 motionClear
書式 motionClear()
機能 取得しているデータをクリアする
戻り値 なし
サンプルmotionTest.bas

関数名 motionPause
書式 motionPause(fpause;int)
機能 モーションデータの取得を一時停止・再開する
引数
fpause
YES一時停止
NO 再開
戻り値 なし
サンプルmotionTest.bas

関数名 motionEnd
書式 motionEnd()
機能 モーション機能を終了する。
引数 なし
戻り値 なし
サンプルmotionTest.bas

関数名 stickStart
書式 int stickStart([threshold;float][,fcalibrate;int])
機能 ジョイスティック関数を開始する
取得間隔は100ms。
引数
threshold各方向に入ったとみなす傾斜角割合;10〜90(%)
省略時は30(%)
大きいほど大きく傾ける必要がある。
fcalibrate角度の自動校正をするかどうか
YESこの関数呼び出し時の角度を0として自動校正する。
NOまたは省略時水平を基準とする
戻り値
YESジョイスティック関数は使えない
モーション関数で使っている
バックグラウンドで動いている他のアプリが使っているなど
NO 使える
補足
  • stickStart()呼び出し後に画面方向を変えると、stick()は正しい値を返せません。
  • 上向けで呼び出した時は縦とみなします。
  • 自動校正をした場合は、斜め方向が非常に入りにくくなることがあります。上下左右だけで判定することをおすすめします。
サンプルjoystick.bas

関数名 stick
書式 int stick([mode;int])
機能 デバイスの傾きを方向数値として返す
引数 リターン値の種類を選択する
YES上下左右のみ返す
NOまたは省略時全方向を返す
戻り値
78(上)9
4(左)6(右)
12(下)3
サンプル joystick.bas

関数名 stickEnd
書式 stickEnd()
機能 ジョイスティック関数を終了する
引数 なし
戻り値 なし
サンプルjoystick.bas

関数名 compassStart
書式 int compassStart(max_data;int)
機能 方位取得を開始する。
取得間隔は、方位変更時即時である。
引数
max_dataデータ確保数
この数のデータを保持する。
これより古いデータは上書きされる。
戻り値
YES方位取得機能は使えない
主な理由は以下の通り。
  • デジタルコンパス機能がない機種である(iPod touch)
  • バックグラウンドで動いている他のアプリが使っている
NO 使える
サンプルcompass.bas

関数名 compassGetData
書式 float compassGetData([mag;float])
機能 方位データを取得する
引数
mag磁北からの角度を返す。データを入れるので変数で与えること。
戻り値 極北からの角度
45°北東
90°
135°南東
180°
225°南西
270°西
315°北西
注意 compassCount()>0の時のみ読みだすようにすること
サンプルcompass.bas

関数名 compassCount
書式 int compassCount()
機能 記録されているデータ数を返す
引数 なし
戻り値 データ数
サンプルcompass.bas

関数名 compassClear
書式 compassClear()
機能 取得しているデータをクリアする
戻り値 なし
サンプルcompass.bas

関数名 compassPause
書式 compassPause(fpause;int)
機能 方位データの取得を一時停止・再開する
引数
fpause
YES一時停止
NO 再開
戻り値 なし
サンプルcompass.bas

関数名 compassEnd
書式 compassEnd()
機能 方位取得を終了する。
引数 なし
戻り値 なし
サンプルcompass.bas

関数名 versionXBiOSMotion$
書式 versionXBiOSMotion$()
機能 モーション/方位取得関数のバージョンを返す
引数 なし
戻り値 モーション/方位取得関数のバージョン文字列


// その他関数


関数名 emailSend
書式 emailSend(subject;str,body;str[,attachment();str[,cnt;int][,zipfname;str]])
機能 電子メールを送信する
引数
subject 件名
body 本文
attachment 添付ファイル名群を持つ文字列1次元配列。省略した場合は添付ファイルはなし。
ディレクトリ名を含んでもよいが、異なるディレクトリ内でも同じ名前のファイルを指定してはいけない。
ファイルが存在しない時は添付されない。
cnt attachment(0)~attachment(cnt-1)まで添付ファイル名を使う。
省略時はattachment配列の要素数。
zipfname zip圧縮するファイル名。拡張子.zipは省略しないこと。
これが指定されたときは、attachmentで指定した全てのファイルをこのzipファイルに圧縮して添付する。
zipファイル中ではディレクトリ構造は無視される。
zipファイルが作成できない時は添付されない。
戻り値 なし
サンプルemailTest.bas , progSaver.bas

関数名 wait
書式 int wait(tm;float[,fwait;int])
機能 時間待ちをする
時間はそれほど正確ではない(特に短い場合)。
引数
tm
0より大きく120以下待ち時間(秒単位)。少数位は100ms単位となる。
「例」wait(0.1) :// 100ms待つ
<=0前回のwait()が終了しているかどうかを確認するだけ
fwait 指定時間の終了を待つかどうか
YES待つ(省略時)
NO 待たない
待たない場合も、多重設定は出来ない
(前のウエイトが残っている間はNOが返る)
待たない場合、時間待ちの終了はリターン値によって判定すること。
戻り値
YES経過した
NO 指定時間経過していない
補足 fwait=NOの時は、ウエイトタイマーを起動してすぐにリターンしてくる。
以後は、ユーザーが関数のリターン値を見てウエイトが終了したかどうか判断する事になるが、
これにより、ある区間の処理時間を一定以上に保つことが出来るようになる。
「例」
wait(1.0,NO):// ここから
処理
repeat:until wait(-1):// ここの処理時間は常に1.0秒(以上)になる


// アクセサリ関数


関数名 osVersion
書式 float osVersion()
機能 iOSのバージョンを得る
引数 なし
戻り値
7.?iOS7.?
8.?iOS8.?
9.?iOS9.?

関数名 deviceType
書式 int deviceType()
機能 デバイス種類を返す
引数 なし
戻り値
DEVICE_UNKNOWN 不明(これが返ってきたら異常)
DEVICE_IPAD iPad
DEVICE_IPODTOUCH iPod touch
DEVICE_IPHONE iPhone

関数名 devicePlatform
書式 str devicePlatform()
機能 デバイス種類を文字列で返す
引数 なし
戻り値 デバイス種類名。以下のようになる。
iPad ?* iPad
iPad Air ? * iPad Air
iPad mini ? * iPad mini
iPod touch ? iPod touch
iPhone ?* iPhone
iPhone 6 Plus iPhone 6 Plus
?には世代名が、*にはその派生が入る(ない場合もある)。
補足 V3.20で返ってくる文字列の内容が変わりました。

関数名 isLocalizeJapan
書式 int isLocalizeJapan()
機能 ローカライズが日本語かどうか調べる
iOS設定の一般~言語環境~言語で設定される。
引数 なし
戻り値
YES 日本
NO 日本以外

関数名 getLanguage$
書式 str getLanguage$()
機能 ローカライズを得る
引数 なし
戻り値 IETF言語タグのlanguageを文字列で返す。
「例」
ja日本語
en英語
補足
IETF言語タグ http://ja.wikipedia.org/wiki/IETF%E8%A8%80%E8%AA%9E%E3%82%BF%E3%82%B0
ISO639 http://ja.wikipedia.org/wiki/ISO_639-1

関数名 programName$
書式 str programName$()
機能 実行中のプログラム名を得る
引数 なし
戻り値 実行中のプログラム名

関数名 forcedSJIS
書式 int forcedSJIS([mode;int])
機能 強制SHIFT−JISモードを設定する。または現在のモードを返す。
引数
mode 強制SHIFT−JISモード
YES強制SHIFT−JISモードをオンにする
NO 強制SHIFT−JISモードをオフにする
1 実行開始時の強制SHIFT-JISモードを読み出すのみ
2 現在の強制SHIFT-JISモードを読み出すのみ(省略時)
戻り値 mode=1の時以外は現在の強制SHIFT−JISモードを返す。mode=1の時は実行開始時のそれを返す。
実行開始時のそれとは基本的に設定の強制SHIFT−JISモードであるが、自動の時は判定の結果になる。
YES 強制SHIFT−JISモードがオン
NO 強制SHIFT−JISモードがオフ
サンプルcodeSJIS.bas,codeUTF8.bas,v3test.bas

関数名 maxStringLength
書式 int maxStringLength()
機能 設定による最大文字列長を返す
引数 なし
戻り値 設定による最大文字列長(バイト)

関数名 versionXBiOSAccesory$
書式 versionXBiOSAccesory$()
機能 アクセサリ関数のバージョンを返す
引数 なし
戻り値 アクセサリ関数のバージョン文字列


// デバッグ用関数


デバッグ用関数は、プログラムのデバッグに役立つ機能を提供します。
デバッグ情報はデバッグ画面に出力され、実行中並びに終了後に任意に表示することが出来ます。
関数名 debugMode
書式 debugMode(mode;int,dumpMode;int)
機能 デバッグモードを設定します
引数
mode デバッグ情報を自動で出力するタイミングを指定します。以下の定数の加算値で指定できます。
DEBUG_MODE_NORMALdebugDump()時だけ
DEBUG_MODE_RETURN関数を抜け出す時
DEBUG_MODE_BREAK Breakされた時
DEBUG_MODE_END end実行時
DEBUG_MODE_STOP stop実行時
DEBUG_MODE_ERROR エラー発生時
DEBUG_MODE_ALL 上記すべての時
dumpMode 出力する情報の種類を指定します。以下の定数の加算値で指定できます。
DUMP_VAR_INTint変数をダンプする
DUMP_VAR_FLOATfloat変数をダンプする
DUMP_VAR_CHARchar変数をダンプする
DUMP_VAR_STRstr変数をダンプする
DUMP_VAR_ALLすべての型の変数をダンプする
DUMP_DIM_INTint配列をダンプする
DUMP_DIM_FLOATfloat配列をダンプする
DUMP_DIM_CHARchar配列をダンプする
DUMP_DIM_STRstr配列をダンプする
DUMP_DIM_ALLすべての型の配列をダンプする
DUMP_DIM_WITH_ELEMENTS 配列の全要素もダンプする
DUMP_ONLY_GLOBALグローバル変数/配列のみダンプする
DUMP_ONLY_LOCALローカル変数/配列のみダンプする
DUMP_ONLY_GLOBALとDUMP_ONLY_LOCALは同時に指定してはいけません。
両方指定しない時にグローバルとローカルの両方をダンプします。
グローバル変数/配列はその名称も表示されますが、ローカルは表示されず値だけ表示されます。
その表示順は、宣言された順です。
戻り値 なし
補足 プログラム起動時には、startup.bas内での設定により、BREAK/STOP/エラー時に、変数と配列をダンプするように設定されています。
サンプルexdim2.bas

関数名 debugDump
書式 debugDump([dumpMode;int][,mes;str])
機能 変数をダンプします
引数
dumpMode出力する情報の種類を指定します。debugMode()のそれと同じ。
省略時はDUMP_VAR_ALL+DUMP_DIM_ALL。
mes変数ダンプ前に表示するメッセージ
省略時は何も表示しない
戻り値 なし
サンプルexdim2.bas,exdim.bas,dimDumpTest.bas

関数名 debugPrint
書式 debugPrint([mes;str])
機能 デバッグ画面に文字列を表示する
引数
mes表示するメッセージ
省略時は改行のみを行う。
文字列中に以下の制御コードを含めることが出来る。
chr$(13)改行
chr$(9)タブ
戻り値 なし
サンプルexdim2.bas


全関数名リスト(アルファベット順)

種類別リスト

[戻る]