その他のサンプルプログラムをまとめました。
これらは主に、各ステートメントや関数の試験用です。
Zipファイル :
XBtests.zip
2013年5月26日日曜日
2013年5月24日金曜日
「X-BASIC for iOS」の次バージョンの開発状況(V2.1)
「X-BASIC for iOS」v2.1の開発状況などをお知らせします。
ご要望や報告は、この記事にコメントを付けて下さい。
・・・
V2.10(発売中)
・若干の表示高速化
・テキスト表示コントロールコードの追加
・グラフィックページ/スプライト画面アニメーション機能
・グラフィックページ/スプライト画面変形
・グラフィックスクロール(残念ながら低速)
・int定数設定ステートメント追加(enum)
・縦書symbol追加;symbolt()
・NaN判定関数追加;isnan()
・beep2()の発声が遅れることがあることに対して対策を追加
・usingでのエラーをわかりやすくした
・symbol()で表示サイズを返すようにした
・abs()の精度が足りなかったのを修正
・tan(pi(1.0/4.0))が0と表示されるのを修正(表示のみ)
・NaNを表示すると落ちるのを修正
・box()/fill()の描画幅が1足りなかったのを修正
・vpage()の第2引数をNOにしても表示が消えない;取説の間違いを修正
・vpage()を設定しても即時表示に反映されないのを修正
・関数命名規則統一のため、一部関数に別名定義を追加
・gAntiAlias()関数追加;グラフィック描画におけるアンチエリアシングの設定
・getTouchStatus()関数追加;タッチ情報を得る
・bg_fill()のパレットブロックの省略時の番号が1ではなく2になっていたのを修正
・スプライトシステムの改良(少し高速化)
・サンプルfiler.basで先頭ページ以外で削除対象ファイルが間違っていたのを修正
・ファンクションキーの最大数を20に拡大した
・tatrb(ATRB_REVESE)で文字列表示した時、文字間に隙間があくことがあるのを修正
・tatrb()の属性をOR指定できるようにした
・tatrb(ATRB_BOLD);太字を追加
・いくつかのサンプルのバグを修正
・displayFunctionKey()の解除時の問題を修正
・タッチキー部分が反転したままになることがあったのを修正
・getWidth()に引数追加
・小バグ修正 (落ちる確率が下がる)
本体の大幅なバージョンアップはこの辺りで一段落します・・・たぶん。
BASICプログラムをたくさん作り、その過程で出たバグの修正や必要機能の追加をしています。
あと、このサイトにあるサンプルは現在V2.00用ですが、徐々にV2.1以降専用に置き換えます。取説はすでにV2.1対応に更新されています(対応バージョンを書いてあるので問題ないかと)。
ご要望や報告は、この記事にコメントを付けて下さい。
・・・
V2.10(発売中)
・若干の表示高速化
・テキスト表示コントロールコードの追加
・グラフィックページ/スプライト画面アニメーション機能
・グラフィックページ/スプライト画面変形
・グラフィックスクロール(残念ながら低速)
・int定数設定ステートメント追加(enum)
・縦書symbol追加;symbolt()
・NaN判定関数追加;isnan()
・beep2()の発声が遅れることがあることに対して対策を追加
・usingでのエラーをわかりやすくした
・symbol()で表示サイズを返すようにした
・abs()の精度が足りなかったのを修正
・tan(pi(1.0/4.0))が0と表示されるのを修正(表示のみ)
・NaNを表示すると落ちるのを修正
・box()/fill()の描画幅が1足りなかったのを修正
・vpage()の第2引数をNOにしても表示が消えない;取説の間違いを修正
・vpage()を設定しても即時表示に反映されないのを修正
・関数命名規則統一のため、一部関数に別名定義を追加
・gAntiAlias()関数追加;グラフィック描画におけるアンチエリアシングの設定
・getTouchStatus()関数追加;タッチ情報を得る
・bg_fill()のパレットブロックの省略時の番号が1ではなく2になっていたのを修正
・スプライトシステムの改良(少し高速化)
・サンプルfiler.basで先頭ページ以外で削除対象ファイルが間違っていたのを修正
・ファンクションキーの最大数を20に拡大した
・tatrb(ATRB_REVESE)で文字列表示した時、文字間に隙間があくことがあるのを修正
・tatrb()の属性をOR指定できるようにした
・tatrb(ATRB_BOLD);太字を追加
・いくつかのサンプルのバグを修正
・displayFunctionKey()の解除時の問題を修正
・タッチキー部分が反転したままになることがあったのを修正
・getWidth()に引数追加
・小バグ修正 (落ちる確率が下がる)
本体の大幅なバージョンアップはこの辺りで一段落します・・・たぶん。
BASICプログラムをたくさん作り、その過程で出たバグの修正や必要機能の追加をしています。
あと、このサイトにあるサンプルは現在V2.00用ですが、徐々にV2.1以降専用に置き換えます。取説はすでにV2.1対応に更新されています(対応バージョンを書いてあるので問題ないかと)。
ラベル:
V2.1,
X-BASIC for iOS,
次バージョン,
情報
V2.00公開
X-BASIC for iOS V2.00が公開になりました。
当初はスプライト機能は有償にする予定でしたが、「アプリケーション内課金」の実装が面倒だったので、無償にしちゃいました。謝恩価格と言うことで(^_^;)
V1.71以降の変更点は以下の通りです。
V1.80での変更点
・プログラムの印刷をできるようにした
・実行画面表示で、キー表示も「だいたい」再現するようにした
・画面のハードコピー関数追加
AirPrint出力、PDF/JPEG/PNG化およびアルバムへのコピー
・keysns()を追加
・beep2(13)の音が正しくなかったのを修正
V2.00での変更点
・スプライト&BG関数追加
パターンレベルではX-BASIC/68と互換性あり
・iPod touch/iPhoneの縦画面でファンクションキーを2段表示できるようにした
・osVersion()で返してくる値がおかしいことがあるのを修正
・小数点表示をX-BASIC/68とほぼ同じにした
・usingで小数桁なしにfloatを表示した時に四捨五入されないのを修正
・keyRepeatTime()での設定がおかしいのを修正
・3.5インチデバイス(iPod touch4やiPhone4など)で画面下部が少し切れていたのを修正
・tborder()が直後のprintまで実表示されないのを修正
・bitmapImageFile()追加
・float配列を使うと落ちることがあるのを修正
・circle()でのstartAngle/endAngle指定が効いてなかったのを修正
・プログラムの選択を繰り返すと落ちることがあるのを修正
・bitmap関数を通常グラフィック関数を同じ領域で使えるようにした
・テキスト画面でスクロールをできるようにした
・小バグ修正
・サンプルBASICプログラムの不具合を修正
・取説の間違いを多数修正
2013/05/25追記
iPadの内蔵取説にHTML文法上の問題が多数発見されました。
とりあえずの表示には支障はないと思いますが、問題があれば、以下の最新版をご覧ください。
当初はスプライト機能は有償にする予定でしたが、「アプリケーション内課金」の実装が面倒だったので、無償にしちゃいました。謝恩価格と言うことで(^_^;)
V1.71以降の変更点は以下の通りです。
V1.80での変更点
・プログラムの印刷をできるようにした
・実行画面表示で、キー表示も「だいたい」再現するようにした
・画面のハードコピー関数追加
AirPrint出力、PDF/JPEG/PNG化およびアルバムへのコピー
・keysns()を追加
・beep2(13)の音が正しくなかったのを修正
V2.00での変更点
・スプライト&BG関数追加
パターンレベルではX-BASIC/68と互換性あり
・iPod touch/iPhoneの縦画面でファンクションキーを2段表示できるようにした
・osVersion()で返してくる値がおかしいことがあるのを修正
・小数点表示をX-BASIC/68とほぼ同じにした
・usingで小数桁なしにfloatを表示した時に四捨五入されないのを修正
・keyRepeatTime()での設定がおかしいのを修正
・3.5インチデバイス(iPod touch4やiPhone4など)で画面下部が少し切れていたのを修正
・tborder()が直後のprintまで実表示されないのを修正
・bitmapImageFile()追加
・float配列を使うと落ちることがあるのを修正
・circle()でのstartAngle/endAngle指定が効いてなかったのを修正
・プログラムの選択を繰り返すと落ちることがあるのを修正
・bitmap関数を通常グラフィック関数を同じ領域で使えるようにした
・テキスト画面でスクロールをできるようにした
・小バグ修正
・サンプルBASICプログラムの不具合を修正
・取説の間違いを多数修正
2013/05/25追記
iPadの内蔵取説にHTML文法上の問題が多数発見されました。
とりあえずの表示には支障はないと思いますが、問題があれば、以下の最新版をご覧ください。
2013年5月18日土曜日
スプライトテスト(2)
スプライト関数のテストプログラムその2です。
画像からスプライトを一括定義できるsp_image()が特徴です。
そして、大量のスプライトを一度に動かすときは、ちらつき防止のためにsp_halt()が必須であることを示しています。
注意:現在のスプライト機能は非常に重いので、使える場所が限られます。
注意:現在のスプライト機能は非常に重いので、使える場所が限られます。
// スプライトテスト2
// V2.00以降専用
// グラフィックモードに設定
width(0)
int wgx,wgy
getWidth(wgx,wgy):// グラフィックモードで画面幅を取得
//locate(0,2):print "Graphic Width:";wgx;"*";wgy
//
sp_init():// ここでスプライト画面は非表示になる
width(32)
vpage(B_SPAGE+B_TPAGE,YES):// display sprite screen
vpriority(TPAGE,SPAGE,GPAGE0,GPAGE1,GPAGE2,GPAGE3)
cls()
tborder(1,CTHCYAN)
//
// タッチした位置からにスプライトパターンを表示する
//
str exit$,mes$
if isLocalizeJapan() then {
exit$="中断"
mes$="画面にタッチ&ドラッグしてください"
} else {
exit$="exit"
mes$="Please touch & drag"
}
setFunctionKey(0, exit$ ,'!')
setFunctionKey(1,"SPst" ,'S')
setFunctionKey(2,"BGst" ,'B')
setFunctionKey(3,"Dprw" ,'p')
setFunctionKey(4,"disp" ,'d')
setFunctionKey(5,"OFF" ,'F')
setFunctionKey(6,"ON" ,'O')
setFunctionKey(7,"BGget",'G')
setFunctionKeyBackgroundImage("funcBack.png")
displayFunctionKeyAll(YES,YES):// v2.0
//
setTouchArea(0,0,0,0,0,YES):// これがないと任意のタッチ座標を得られない
//
// パターンは512個定義できるが、表示=プレーンは256個まで
sp_halt(YES):// しばらくスプライトの表示を中止
int pwx=16,pwy=16
int tsp=0,esp=0
esp=sp_image("IMG1.JPG",110,260,pwx,pwy,tsp,tsp,wgx/3,wgy/3,SPRITE_PRW_BG0SPBG1,YES):// pwx,pwyは補正される
locate(12,0):print "SP:";tsp;"〜";esp-1
//---------------------
// 関数テスト
//dim int ptn(255)
//sp_pat(tsp,ptn)
//int fp
//fp=fopen("pat.dat","w")
//fwrite(ptn,255,fp)
//fclose(fp)
//---------------------
//
// sprite pattern (X68 type)
dim char ca(255) = { // 網目
0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
, 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1
, 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
}
int pb1=3:// パレットブロック番号
int pb2=2:// パレットブロック番号
sp_color(0,&h00000000,pb1):// 透明
sp_color(0,&h00000000,pb2):// 透明
sp_color(1,&h000080ff,pb1)
sp_color(1,&h800000ff,pb2)
sp_def(esp,ca)
sp_clr(esp+1)
//
int pg0=0:// BGテキストページ番号
int pg1=1:// BGテキストページ番号
int x,y
bg_fill(pg0,esp,pb1,SPRITE_FLIP_NONE):// 一旦全体を埋める
// wg?/16 : 画面幅のスプライト単位の数
// 中央を抜く
int bwx=wgx/16,bwy=wgy/16
for y=bwy/4 to bwy*3/4
for x=bwx/4 to bwx*3/4
bg_put(pg0,x,y,esp+1,pb1)
next
next
bg_set(1,pg0,YES)
//
bg_fill(pg1,esp+1,pb1,SPRITE_FLIP_NONE):// 一旦全体をクリアする
// 中央に描画
for y=bwy*4/10 to bwy*5/10
for x=0 to bwx
bg_put(pg1,x,y,esp,pb2)
next
next
bg_set(0,pg1,YES)
//
//mapSprite(wgx/3,wgy/3,tsp,pwx,pwy)
sp_halt(NO):// スプライトの表示を再開
//
dim float tpoint(2)
int touchCnt
str cs
int dt=0,t
int ts=time():/* 開始時間
locate(0,1):print mes$
//
int i
int x0=-1,y0=-1
int fDisableBG0SPBG1=NO
prfDisableBG0SPBG1(fDisableBG0SPBG1)
int fdisp=YES
sp_disp(fdisp)
repeat
// キー入力待ちしながら時計を回す
while (not kbhit())
t=time()
if t-ts>dt then { :/* 秒が変った
dt=dt+1
// locate(20,0):print dt;
// beep2(0)
// locate(20,1)
}
touchCnt=getTouchPoint(tpoint)
if (touchCnt>0) then {
x=tpoint(0):// float → int
y=tpoint(1)
if x<>x0 or y<>y0 then {
locate(0,0):print x;",";y
mapSprite(x,y,tsp,pwx,pwy)
//
x0=x
y0=y
}
// 同じ座標の時は再表示しないようにしないとちらつく
}
endwhile
// キー操作判定
cs=inkey$()
switch cs
case "S":// Sprite stat
for i=0 to 5
locate(0,2+i)
print "i=";i;":";sp_stat(tsp,i)
next
break
case "B":// BG stat
for i=0 to 3
locate(16,2+i)
print "i=";i;":";bg_stat(0,i)
next
break
case "p":// Disable BG0SPBG1
if fDisableBG0SPBG1 then fDisableBG0SPBG1=NO else fDisableBG0SPBG1=YES
prfDisableBG0SPBG1(fDisableBG0SPBG1)
break
case "d":// sp_disp
if fdisp then fdisp=NO else fdisp=YES
sp_disp(fdisp)
break
case "F":// sp_off
sp_off(tsp,esp-1):// このプログラム中ではプレーン番号とパターン番号を合わせてあるから
break
case "O":// sp_on
sp_on(tsp,esp-1,SPRITE_PRW_BG0SPBG1):// このプログラム中ではプレーン番号とパターン番号を合わせてあるから
break
case "G":// bg_get
getBG(pg0,bwx,bwy)
getBG(pg1,bwx,bwy)
break
endswitch
until cs="!"
print "Sprite version=";versionXBiOSSprite$()
//
end
func mapSprite(gx;int,gy;int,tsp;int,pwx;int,pwy;int)
int wx,wy
sp_halt(YES):// 以下一括変更するので終了まで表示停止
for wy=0 to pwy-1
for wx=0 to pwx-1
// sp_image()では全てiOS型で定義されるのでパレットは無効
sp_setting(tsp,gx+wx*16,gy+wy*16)
tsp=tsp+1
next
next
sp_halt(NO):// 表示再開
endfunc
func prfDisableBG0SPBG1(fDisableBG0SPBG1;int)
dim str strfDisableBG0SPBG1(1)={"-","D"}
sp_disableBG0SPBG1(fDisableBG0SPBG1)
locate(31,0):print strfDisableBG0SPBG1(-fDisableBG0SPBG1)
endfunc
func getBG(pg;int,x;int,y;int)
int pb,flip,ptn
ptn=bg_get(pg,x,y,pb,flip)
locate(0,10+pg*2) :print "pg=";pg;":x=";x;"/y=";y
locate(0,10+pg*2+1):print "pb=";pb;"/flip=";flip;"/ptn=";ptn
endfunc
画像ファイル入りZipファイル :
XBsprite.zip
2013年5月16日木曜日
スプライトテスト(1)
スプライト関数のテストプログラムその1です。
注意:スプライト機能は重いので、iPad1ではちょっとしんどいです。
Zipファイル : XBsprite.zip
注意:スプライト機能は重いので、iPad1ではちょっとしんどいです。
// スプライトテスト1
// V2.00以降専用
// グラフィックモードに設定
width(0)
int wgx,wgy
getWidth(wgx,wgy):// グラフィックモードで画面幅を取得
locate(0,2):print "Graphic Width:";wgx;"*";wgy
// sprite pattern (X68 type)
dim char ptnA(255) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0
,0,0,2,0,2,0,2,0,0,2,0,2,0,2,0,0
,0,0,0,3,0,3,0,3,3,0,3,0,3,0,0,0
,0,1,2,0,4,0,0,4,4,0,0,4,0,2,1,0
,0,0,0,3,0,5,0,5,5,0,5,0,3,0,0,0
,0,0,2,0,0,0,6,0,0,6,0,0,0,2,0,0
,0,1,0,3,4,5,0,7,7,0,5,4,3,0,1,0
,0,1,0,3,4,5,0,7,7,0,5,4,3,0,1,0
,0,0,2,0,0,0,6,0,0,6,0,0,0,2,0,0
,0,0,0,3,0,5,0,5,5,0,5,0,3,0,0,0
,0,1,2,0,4,0,0,4,4,0,0,4,0,2,1,0
,0,0,0,3,0,3,0,3,3,0,3,0,3,0,0,0
,0,0,2,0,2,0,2,0,0,2,0,2,0,2,0,0
,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
}
int spA=16:// パターン番号
int pbA=1://3 :// パレットブロック番号
int planeA=0:// プレーン番号
//
dim char ptnB(255)={ // あ(複数色)
0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,1,0 ,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,1,0 ,0,0,0,0,0,0,0,0
,0,0,0,1,2,3,4,5 ,6,7,8,9,1,0,0,0
,0,0,0,0,0,0,1,0 ,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,1,0 ,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,1,2 ,3,4,5,0,0,0,0,0
,0,0,0,0,1,2,3,0 ,0,0,4,5,6,0,0,0
,0,0,0,1,0,0,2,0 ,0,3,0,0,0,4,0,0
,0,0,1,0,0,0,2,0 ,0,3,0,0,0,4,0,0
,0,0,1,0,0,0,2,0 ,3,0,0,0,0,4,0,0
,0,0,1,0,0,0,2,1 ,0,0,0,0,0,3,0,0
,0,0,0,1,0,0,2,0 ,0,0,0,3,4,0,0,0
,0,0,0,0,1,2,0,0 ,0,3,4,0,0,0,0,0
,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0
}
int spB=spA+1:// パターン番号
int pbB=pbA+1:// パレットブロック番号
int planeB=planeA+1:// プレーン番号
//
int i,x,y
sp_init():// ここでスプライト画面は非表示になる
sp_clr()
sp_def(spA,ptnA)
sp_def(spB,ptnB)
for i = 0 to 7
sp_color(i,rgb(0,i*256/8,0),pbA)
next
//
sp_color(0,0,pbB)
sp_color(1,&hff00ffff,pbB)
sp_color(2,&hffff00ff,pbB)
sp_color(3,&h800000ff,pbB)
sp_color(4,&h8080ffff,pbB)
sp_color(5,&hff8080ff,pbB)
sp_color(6,&hff0000ff,pbB)
sp_color(7,&h00ff00ff,pbB)
sp_color(8,&h0080ffff,pbB)
sp_color(9,&hffffffff,pbB)
//
int pbA2=pbB+1 :// パレットブロック番号
for i = 0 to 7
sp_color(i,rgb(i*256/8,0,0),pbA2)
next
//
width(32)
vpage(B_SPAGE+B_TPAGE,YES):// display sprite screen
//vpriority(TPAGE,SPAGE,GPAGE0,GPAGE1,GPAGE2,GPAGE3)
vpriority(SPAGE,TPAGE,GPAGE0,GPAGE1,GPAGE2,GPAGE3)
cls()
tborder(1,CTHRED)
//
// タッチした位置にスプライトパターンを表示する
//
str exit$,mes$
if isLocalizeJapan() then {
exit$="中断"
mes$="画面にタッチ&ドラッグしてください"
} else {
exit$="exit"
mes$="Please touch & drag"
}
setFunctionKey(0,exit$,'!')
setFunctionKeyBackgroundImage("funcBack.png")
displayFunctionKeyAll(YES,YES):// v2.0
//
setTouchArea(0,0,0,0,0,YES):// これがないと任意のタッチ座標を得られない
//
dim float tpoint(2)
int touchCnt
str cs
int dt=0,t
int ts=time():/* 開始時間
locate(0,1):print mes$
//
sp_disp(YES)
//
if NO then {
sp_halt(YES):// 以下一括変更するので終了まで表示停止
sp_setting(planeA+0,0,0,spA,pbA2,SPRITE_FLIP_NONE,SPRITE_PRW_SPBG0BG1)
sp_setting(planeA+1,16,16,spA,pbA2,SPRITE_FLIP_NONE,SPRITE_PRW_SPBG0BG1)
sp_setting(planeA+2,32,32,spA,pbA2,SPRITE_FLIP_NONE,SPRITE_PRW_SPBG0BG1)
sp_halt(NO):// 表示再開
end
}
//
int x0=-1,y0=-1
repeat
// キー入力待ちしながら時計を回す
while (not kbhit())
t=time()
if t-ts>dt then { :/* 秒が変った
dt=dt+1
// locate(20,0):print dt;
// beep2(0)
// locate(20,1)
}
touchCnt=getTouchPoint(tpoint)
if (touchCnt>0) then {
x=tpoint(0):// float → int
y=tpoint(1)
if x<>x0 or y<>y0 then {
locate(0,0):print x;",";y
sp_halt(YES):// 以下一括変更するので終了まで表示停止
// 普通 / normal
if pbA<>1 then {
sp_setting(planeA , x, y,spA,pbA ,SPRITE_FLIP_NONE,SPRITE_PRW_SPBG0BG1)
} else {
// sp_move()はパレットブロック1専用
sp_move( planeA , x, y,spA)
}
// 反転
sp_setting(planeB , x+16, y+16,spB,pbB ,SPRITE_FLIP_NONE ,SPRITE_PRW_SPBG0BG1)
sp_setting(planeB+1, x-16, y+16,spB,pbB ,SPRITE_FLIP_HORIZONTAL ,SPRITE_PRW_SPBG0BG1)
sp_setting(planeB+2, x+16, y-16,spB,pbB ,SPRITE_FLIP_VERTICAL ,SPRITE_PRW_SPBG0BG1)
sp_setting(planeB+3, x-16, y-16,spB,pbB ,SPRITE_FLIP_HORIZONTAL_VERTICAL,SPRITE_PRW_SPBG0BG1)
// 同一パターンを別パレットブロックで
sp_setting(planeB+4,wgx-x,wgy-y,spA,pbA2,SPRITE_FLIP_NONE,SPRITE_PRW_SPBG0BG1)
sp_halt(NO):// 表示再開
//
x0=x:y0=y
}
// Do not re-displayed when the coordinate is same. Sprite would flicker Failure to do so.
}
endwhile
// キー操作判定
cs=inkey$()
until cs="!"
float ver=osVersion()
print "iOS=";ver
//
end
Zipファイル : XBsprite.zip
2013年5月8日水曜日
V1.71のバグについて
現在までにわかっている、X-BASIC for iOSのバグをお知らせします。
・usingを使わないfloat表示が正しくないことがある
・usingを使いfloatを表示するときで、小数桁を0桁にした時、小数→整数位で四捨五入されない
・iOSバージョンに小数位があるとき(iOS6.1など)、getSystemversion()の返してくるiOSバージョンがおかしい
・keyRepeatTime()で正しく設定されない
以上は、内部的にfloatとdoubleの受け違い、または変換時の有効桁欠損が原因です。
・3.5インチデバイス(iPod touch/iPhoneの3/4)で画面下部が少し切れている
このため、ファンクションキーが表示されません。
4インチと間違っていました。
・tborder()が次にprintで何か表示するまで表示されない
tborder(〜):print " "とすることで回避出来ます。
・float配列を使うと落ちることがある
・circle()でのstartAngle/endAngle指定が効いてない
・プログラムの選択を繰り返すと落ちることがある
・いくつかのサンプルBASICプログラムが正常動作しない
現在審査中のV2.0では修正されます。
しばらくお待ちください。
・usingを使わないfloat表示が正しくないことがある
・usingを使いfloatを表示するときで、小数桁を0桁にした時、小数→整数位で四捨五入されない
・iOSバージョンに小数位があるとき(iOS6.1など)、getSystemversion()の返してくるiOSバージョンがおかしい
・keyRepeatTime()で正しく設定されない
以上は、内部的にfloatとdoubleの受け違い、または変換時の有効桁欠損が原因です。
・3.5インチデバイス(iPod touch/iPhoneの3/4)で画面下部が少し切れている
このため、ファンクションキーが表示されません。
4インチと間違っていました。
・tborder()が次にprintで何か表示するまで表示されない
tborder(〜):print " "とすることで回避出来ます。
・float配列を使うと落ちることがある
・circle()でのstartAngle/endAngle指定が効いてない
・プログラムの選択を繰り返すと落ちることがある
・いくつかのサンプルBASICプログラムが正常動作しない
現在審査中のV2.0では修正されます。
しばらくお待ちください。
登録:
コメント (Atom)