2013年01月22日

DPC-100プログラム・XYで球を動かす

 この記事も含めて、まとめはこちらLink


 先日配信開始されてから、私も色々とプログラムを試して遊んでいる、DPC-100
 また軽いもの、前回の改良版を作ったので掲載。

20130122-01.jpg
本体を傾けるとXYのフィールド上を球が動く
Y座標は端の数字で表示

110 LV=15
120 STRING BAR
130 LOOP:
140 X=7-CLAMP(ACCEL(1)*LV,-6,7)
150 Y=5+CLAMP(ACCEL(0)*LV,-5,4)+'0'
160 BAR=SETCHAR(X,'O',FILLSTR(0,14,' '))
170 PRINTF("%c%s%c",Y,BAR,Y)
180 GOTO LOOP
 前回の日記で、本体を横に傾けて移動するプログラムを作ったが、縦方向も追加。でも1行でどう表現するか考えて、端に数字を表示した。
 また、110行のLVが、傾きに対してどれだけ動かすかの感度なので、数値を変えれば傾きを変更可能。
 これでXYのフィールド上を転がすものができるので、ここから何かゲームを作ろうと考えている。

20130121-04.jpg
数字の増減・スクロール 改良版
110 STRING BAR
120 SC='0'
130 MAX=9
140 WHILE 1
150 IN=0
160 I=0
170 WHILE I<MAX*2
180 BAR=""
190 JN=IN
200 J=0
210 WHILE J<16
220 BAR+=FILLSTR(0,1,SC+JN)
230 JN-=(1&((I+J)/MAX))*2-1
240 J+=1
250 WEND
260 PRINTF(BAR)
270 WAIT(0.5,0)
280 IN-=(1&(I/MAX))*2-1
290 I+=1
300 WEND
310 WEND
 前回書いたプログラムの改良版。
 やってる事は同じだが、処理方法をPRINTで次々と文字を表示するものから、一度16桁の文字変数にして表示したり、行数は増えているが、変数を減らすなどの改良。
 これによって、120行のSCと130のIMを変更すれば、数字に限らず英語などにも対応できる。

 これらのプログラムを組んで分かったのは、

  • 現在のバージョンでは「FOR〜NEXT」の処理が不安定で、2重ループにしたり複雑な公式を使用すればエラーが出たり落ちやすい。
    そのため、ループは「WHILE〜WEND」を使用した方がいい。
  • コードの数値を文字に変換する方法として「FILLSTR」が有効。
  • 画面上で任意の位置に文字を入れる「LOCATE」に相当するものが無いが、「FILLSTR」で16桁の文字列を作って「SETCHAR」で任意の位置に文字を挿入、「PRINTF」で表示すれば対応可能。

 ループの方法をFOR〜NEXTから変えたのは、書いた通りよく落ちるから。
 最初は色々な事ができないと思っていたが、この辺も工夫すれば可能な事や、色々な不具合も分かってきた。
 ゲームについては、1行しか見えないこそ楽しめるものを作りたいと考えている所。

(2013/01/23 追記)
 数字の増減・スクロール 改良版が大幅に間違っていたので書き直し。



タグ:DPC-100 iPhone

posted by 司隆 at 13:52 | Comment(5) | Computer
この記事へのコメント
DPC-100をリリースしております、株式会社DETUNEの佐野と申します。DPC-100をご愛顧頂き本当にありがとうございます。こちらのブログをぜひFacebookページ「Dpc-100」 にてご紹介したいのですが、いかがでしょうか。ご検討頂けると嬉しいです。よろしくお願いいたします。

株式会社DETUNE 佐野信義
Posted by 佐野信義 at 2013年01月22日 17:38
佐野信義さん
コメントありがとうございます。
今になって、久しぶりにポケコンとBASICプログラムの楽しさを
思い出させてもらいまして、感謝しています。

FacebookのDPC-100ページは、私もすでに購読していまして、
プログラムを改良するなど、参考にさせていただきました。

ご紹介についても、こちらからもよろしくお願いいたします。
Posted by 司 隆 at 2013年01月22日 19:00
ご快諾ありがとうございます。早速紹介させて頂きます。これからもDPC-100を引き続きどうぞよろしくお願いいたします。
Posted by 佐野信義 at 2013年01月23日 05:40
はじめまして。

掲載されているプログラムをテキストエディタータにコピペして、ファイル名をacc01.dpcbasicとして保存し、iTune経由でiPhone4Sにアップロードしました。

その後、Load acc01でロードして、RUNするとちゃんと動作しますね。

今後のゲームにも期待しています。
Posted by 土井智晴 at 2013年01月25日 15:32
土井智晴さん
どうも、初めまして。
私のiPhoneは4ですが、他の機種でも動作できて良かったです。

今回のアプリのおかげで、8ビットPCの時代を思い出して、
また色々と作りたくなってきています。

次のゲームも考えてはいるのですが、
アプリがバージョンアップしてから取りかかろうと考えています。
Posted by 司 隆 at 2013年01月25日 19:13
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。