Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
15 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2551
次のページ(過去)
返信[5]
親投稿
ASA fusuian
3号はmk2より本格的でむずかしいところもあるけど、エディタに色がついたり、ENDIFやDEFが使えるようになって、組みやすくなった面もあります。 あとこのミーバースが、mk2にない3号の初心者向けのところかも知れません。
0そうだね
プレイ済み
返信[1]
親投稿
ASA fusuian
ズバリ、 BGFILL 0, 0,0, 24,14, 99 です!
1そうだね
プレイ済み
返信[1]
親投稿
ASA fusuian
たまにシンタックスエラーが出た行の前の行に本当のエラーがあることがあります。
0そうだね
プレイ済み
返信[4]
親投稿
ASA fusuian
スプライトとBGの間はSPHITSPみたいな便利コマンドはないのです。 でも、BGOFSやBGとSPの座標系の違いとかの変換処理を引き受けて、画面座標から即BGキャラを出せるBGGET(,,1)もかなり便利です。
0そうだね
プレイ済み
返信[5]
親投稿
ASA fusuian
これだけ書いたら、動かしてみたいですね!
0そうだね
プレイ済み
返信[22]
親投稿
ASA fusuian
なんか説明がガチ過ぎましたね、今全部わからなくてもLOADBGは動くし、全然OKですよ! むしろSBMAPがむずかしいデータを吐くのが悪い(笑) ちょっとプログラムを見たら、やっぱりすごいちゃんとできてるんですよ。ゲームのプロが作ったプログラムだから。 でも初心者はBGLOADでサクッと読めないと困りますよね。
0そうだね
プレイ済み
返信[1]
親投稿
ASA fusuian
壁のあるBGレイヤーが0で、16×16ドットの大きさのスプライトが座標X,Yとあるとき、 BG=BGGET(0,X,Y+16,1) とすると、スプライトの下のBGキャラが取れます。 これが0ならBGをスクロールさせます。
0そうだね
プレイ済み
返信[20]
親投稿
ASA fusuian
8+32*8というのは、ヘッダ情報(8の方)とアトリビュート情報(32*8の方)を読み飛ばすということですね。 そのあとに、0〜3レイヤーのBGキャラ情報が入っているのを読み取っています。 アトリビュート情報に何が入っているのかは、まだ読めてません^^; マップツールの反転・回転情報かな、と見当つけています。
0そうだね
プレイ済み
返信[145]
親投稿
ASA fusuian
斬新なメニュー! これはこうげきしないを選ぶと攻撃して、まもらないを選ぶと防御?
0そうだね
プレイ済み
返信[21]
親投稿
ASA fusuian
まずは絵を動かすところからかな?
0そうだね
プレイ済み
返信[19]
親投稿
ASA fusuian
そうなんですよ!ダイレクトモードでも、たとえば SPSET 0,496 とやると、キャラを表示できます。
0そうだね
プレイ済み
返信[143]
親投稿
ASA fusuian
なるほど、今回のプログラムをRPGの戦闘シーンにしようということですね。実はRPG作ったことありませんが、コマンドメニューみたいなのは作りました。1/10の選択式メニューのサンプルを見てみてください!
0そうだね
プレイ済み
返信[15]
親投稿
ASA fusuian
まずは画面半分くらいから、一画面分程度のプログラムリストを打ち込んでみましょう!
0そうだね
プレイ済み
返信[19]
親投稿
ASA fusuian
ちなみにシフト演算子には上シフト<<もあります。 ?1<<1 ?1<<2 ?1<<3 上シフトするたびに値が2倍になっています。 逆に一ケタずつ下シフトすると、値が1/2になっていきます。 ?8>>1 ?4>>1 ?2>>1
0そうだね
プレイ済み
返信[18]
親投稿
ASA fusuian
さて、32ビット整数に、16ビットずつに分かれた二つの整数が入っています。 仮に元の値A%が&H12345678だとします。下の&H5678を取り出すためには、A% AND &HFFFF を計算します。 ダイレクトモードで試してみましょう。 A%=&H12345678 ?A% ?A% AND &HFFFF ?HEX$(A% AND &HFFFF) 次に上の16ビットを取り出すために、シフト演算子>>を使って、上の16ビットを下の16ビットにズラします。(シフトとはずらすこと) ?A% >> 16 ?HEX$(A% >> 16) ?HEX$((A% >> 16) AND &HFFFF)
0そうだね
プレイ済み
返信[17]
親投稿
ASA fusuian
まず16ビットシフトから説明しましょう。SYS/SBMAPのセーブルーチンSAVESUBの最後を見ると、整数型配列W%をセーブしているのがわかります。説明書によると整数型変数は32ビット符号ありと書いてあります。 SBMAPは、この32ビット変数ひとつを、上の16ビット整数と下の16ビット整数に分けて二つのBGキャラを納めています。 16ビットの整数は、0から65,535までの値を記録できます。この65,535を、16進数で表すと&HFFFFになります。 ?HEX$(65535) ?VAL("&HFFFF") 16進数の一ケタは、2進数の4ケタ=4ビットなので、&HFFFFは2進数では1111111111111111です。長いけど1が16個並んでいます。
0そうだね
プレイ済み
返信[15]
親投稿
ASA fusuian
ゆったりmgおかピーさん、横で正の方向に動かす場合は、MOVEBGを改造します。 と言っても25行をX=X+Hにして、59行のMOVEBG -2を2にするだけです。 ただ、マップツールで作るマップデータは横64×縦64キャラ固定なので、森に横25キャラずつ使うと間が14キャラしかありません。横長のマップを作るには、マップツールを改造するか、自作する必要がありそうです。
0そうだね
プレイ済み
返信[14]
親投稿
ASA fusuian
そして、Pはよく見ると配列じゃない、普通の数値変数の宣言です。プチコン3号ではDIMとVARは同じ意味なのです。 これが8+32*8となっているのは、ファイルから読み込んだ配列Bの、頭からこれだけの分は飛ばして読むということです。 本当ならここにマップデータのレイヤーが何枚とか、縦横のキャラ数がいくつとか、そういうデータが入っているはずなんですが、結局全部のマップファイルが4レイヤーで64×64キャラなので、飛ばしても一緒なのです。 そして配列B[P]には、二つ分のキャラ情報が詰め込まれているので、これを10,11行でM[I]とM[I+1]に分けています。
0そうだね
プレイ済み
返信[13]
親投稿
ASA fusuian
nyannziさん、お答えします。 はじめに、4〜16行のDEF LOADBGはユーザー定義命令の設定なので、すぐには実行されません。 プログラムが実際の仕事を始めるのは29行のACLSからです。 そして31行めにLOADBG "TOPVIEW.MAP"が呼ばれます。ここでさっき定義したLOADBGの内容が実行されます。 このときFN$には、"TOPVIEW.MAP"が入ることになります。 だから6行のLOAD文が実際に呼ばれたときには、"TOPVIEW.MAP"が読み込まれます。そして同時に、大きさ0で作った配列Bが拡張されて、その中に"TOPVIEW.MAP"のマップデータがピッタリ収まります。 最後の0は、ファイル読み込み確認のダイアログを出さずに、黙って読み込めという指示です。
0そうだね
プレイ済み
返信[141]
親投稿
ASA fusuian
おお、とうとう完成しましたね! がんばった! しかもかわいいゲームになった! しかもスライム時計もできましたね。この調子でプチコン3号を楽しみましょう! あとSPCOLORは自分では使ったことがなかったので、参考になります。
1そうだね
プレイ済み