Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
次のページ(過去)
返信[33]
親投稿
写したものを全部理解するのはむしろ難しいと思います。写経はその中のごく一部でも身に付けばいいぐらいに考えておいたほうがいいです。 あと、最初はほんとによくわからないところは「そういうもの」と割り切って丸暗記でもかまいません。たとえば「GOTOのループのまえにVSYNC 1を入れる」のは丸暗記で大丈夫です。 今回写してみて、自分なりに理解したところがあれば、それをつかって1から本当に適当なものでいいので何か書いてみるといいかと。 プログラムは自分のわかる範囲から、こつこつ積み上げていくのが大事ですね。いきなり大きいプログラムを書こうとすると挫折してしまいます。
2そうだね
プレイ済み
返信[29]
親投稿
これはnew3DSでしかおきないバグらしく、たぶん次のアップデートで治ると思います。
1そうだね
プレイ済み
返信[27]
親投稿
もしかして、使っているのはnew3DSですか? だとしたら、@LOOP の下の行に GCLSを書くと治るかも・・・?
0そうだね
プレイ済み
返信[19]
親投稿
この例では8x8ですが上画面全体を使うときは、25x15に広げてあげればできます。
0そうだね
プレイ済み
返信[18]
親投稿
DIM MAPTIP[3] MAPTIP[0]=607:MAPTIP[1]=578:MAPTIP[2]=582 DATA 0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0 DATA 0,0,0,0,0,0,0,0,0 DATA 1,1,1,1,1,1,1,1,1 DATA 2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2 DATA 2,2,2,2,2,2,2,2,2 FOR I=0 TO 7 FOR J=0 TO 7 READ ID BGPUT 0,J,I,MAPTIP[ID] NEXT NEXT
0そうだね
プレイ済み
返信[17]
親投稿
マップを書くのはまだともかく、そのブロックの上に載るようなは結構難しいですよ。 さいしょは、見下ろし視点の1画面RPGみたいなものから練習したほうがよいと思います。 マップの書き方はいくつか方法があると思いますが、とりあえずDATA文を使うのが一番手っ取り早いかなと思います。 (続く)
1そうだね
プレイ済み
返信[15]
親投稿
だめだ、ごめんなさい。それだとできないですね。 どうすりゃいいんだ・・・。
0そうだね
プレイ済み
返信[14]
親投稿
こ、これは・・・とてもではないですが、使うことをお勧めできませんね。難しすぎる;;; このデータフォーマットは一朝一夕では理解できません。コメントも少ないし・・・。 どうしても、やろうとするならば、SYS/SBMAPを読み込んで、1364行~1410行までをコピーして自分のプログラムに張り付けて、読み込みたいところで LOADSUB "DAT:ファイル名" と呼べば、読み込めるはず・・・。
0そうだね
プレイ済み
返信[13]
親投稿
あーそれは私もまだやったことないんですよね。ちょっと見てみますね。
0そうだね
プレイ済み
返信[11]
親投稿
はいなんでしょうか?
0そうだね
プレイ済み
返信[18]
親投稿
そしてその下の IF PX<0 THEN PX=0 で左端に引っかかって PX=0 に戻されます。 なのでその下の LOCATE PX,PY:PRINT "┴" では普通にX座標 0に自機が描画されエラーが発生しないのです。 ちょっと、難しかったかもしれませんがどうでしょうか?
0そうだね
プレイ済み
返信[17]
親投稿
じゃぁ、問題のあった左ボタンのほうだけを見てみましょう。 もし元のコードで、一番左端(PX=0)にいたときに左ボタンをおすとPXの値はどうなるでしょうか? IF B AND 4 THEN PX=PX-1 そう、PX=PX-1 → PX=0-1 → PX=-1 となります。 するとその直後の行でおこなっている LOCATE PX,PY のPXに-1が入ってしまいます。LOCATEにマイナス値を入れてしまうとエラーになってしまうのです。 そこで、 IF B AND 4 THEN VX=-1 となおしました。 すると、PXの値はこの時点では変化しないので、エラーは発生しません。 LOCATEの下の行の PX=PX+VX で 初めてPXの移動が発生し、PX=0+-1 → PX=-1 となります。 (続く)
0そうだね
プレイ済み
返信[14]
親投稿
18,19行目を上記のように書き換えたらこのエラーも消えるはずです。 右に移動で途中でとまっちゃうのは、mkIIと3号で画面の広さが違うせいですね。 31と書いてあるところを49に書き換えてみましょう。
0そうだね
プレイ済み
返信[11]
親投稿
18、19行目をそれぞれ IF B AND 4 THEN VX=-1 IF B AND 8 THEN VX=1 と修正してみましょう。 あと1行目の、1,1,0,0,0もその前にあったVISIBLEの続きの文なので消してしまいましょう。
0そうだね
プレイ済み
返信[7]
親投稿
なるほど。下画面サンプルはもともとかなり難易度の高いサンプルなので多少難しくなるのは許容範囲だとおもいます。次にあげるときには修正しときます。 いつかプチコン(BASIC)で育ったプログラマーが10年後にうちの会社・・・とまでは言わないでも、どこかのIT業界で活躍する未来を夢見てますw(自分がBASICで育ったので)
1そうだね
プレイ済み
返信[3]
親投稿
上から順番に 1行目のVISIBLEはmkIIと意味が変わっているので消してしまいましょう。 13行目のVISIBLE 1はVSYNC 1の間違いかと。 15行目のジキの前が「,」になっているので「'」にしましょう。
1そうだね
プレイ済み
返信[4]
親投稿
まず、ジキとか---とかの前につけている「,」は間違いで、正しくは「'」です。プチコン3号でいうと、右下の緑色のほうです。 あと、 IF B AND 8 THEN PX=PX-1 となっていますが、PX=PX+1の間違いですね。 プチコン3号だとCLEARという命令はプログラム中では使えなくなっていますので、代わりに、ACLSとでも書いておきましょう。意味は違いますが、初期化時に読んでおくと安心できる命令の一つです。 プチコン3号だとVISIBLEの命令の仕様が変わっているので、うーん、とりあえずその行は消してしまってかまいません。 最後に、DIM ???の前に「'」をつけて実行してみましょう。
1そうだね
プレイ済み
返信[2]
親投稿
強くてニューゲームってやつですね。1回書き写して実行してみて、もう一回読んでみると新しい発見があるかもしれません。
0そうだね
プレイ済み
返信[5]
親投稿
ジャンプはちょくちょく質問を見かけるので入れてみました。 そろそろBGのサンプルも入れたいのですが、その前に基本のサンプルがまだまだ足りてないし、けど基本は地味で受けは悪そうだしともんもんと考えております。
0そうだね
プレイ済み
返信[3]
親投稿
スプライトの3D化は SPSET 0,0,0 SPOFS 0,200,120,-200 これでイチゴが飛び出てきますよ。(-200が3D具合)
0そうだね
プレイ済み