Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
179 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99184
次のページ(過去)
返信[4]
親投稿
DEFは自分で命令を作るみたいな感じですね。 例えば上記のBUTTON()はプチコンが用意している命令(関数)ですが、こういうのを自分で作れる感じです。もちろん自分で作るのでどんな命令の組み合わせも可能です。 あまり意味はないですが、 LOCATE 0,0:PRINT "TEST" という感じのがたくさん出てくる場合、 DEF LPR X,Y,S$ LOCATE X,Y:PRINT S$ END という命令を作ってしまえば、 LPR 0,0,"TEST" と書けば同じ命令として使えるので短くなるしまとまるので便利だったりとかですが、上記の例だとちょっとまとめるにしては微妙ですが、ある程度の固まりとか共有的な処理は、こういう風にDEF命令として自分で作っちゃえば、後が楽になるしプログラムもスッキリする感じになるって感じです。
1そうだね
プレイ済み
返信[2]
親投稿
DEFはそんなに難しくはないのですが、ただプチコンの場合書式のパターンが多くて、それによって記述ややり方が異なるのがわかりにくく感じるところなのかもしれないですね〜
1そうだね
プレイ済み
返信[5]
親投稿
位置的には入力を求めた6行目以降で、VSYNC前の9行目より前ぐらいならどこでも問題ないんじゃないかと思いますよ。
1そうだね
プレイ済み
返信[3]
親投稿
とりあえずやり方の考え方を書いてみます。まずチャレンジ! 反対向きの魚は定義番号415に用意されているので、SPCHR命令で今の魚をその番号に変更してあげれば反対を向かすことが出来ます。 今の向きは、STICK命令の取得値、SXのX移動量からSX<0なら左、SX>0なら右と判断できます。(0の時は向きの変化無しなのが注意) あとはIFなどを使って向きに合わせてSPCHRを変更してあげれば向きが変わるようになると思いますよ。
1そうだね
プレイ済み
返信[3]
親投稿
別の人の質問の答えにも書いたんですが、範囲に対しての当たり判定ならSPHITRCって命令が使えそうですね。
0そうだね
プレイ済み
返信[4]
親投稿
ゆうたんさんの言う基本形パターンをベースにして、もし1行にする(ENDIFを使わない)タイプの場合は中途半端にせずに全て1行にするというのを基本にすればほとんど問題ないんじゃないかと思います。(混在しようとするとわけわからなくなるしほとんどエラーになると思う)
1そうだね
プレイ済み
返信[5]
親投稿
場所と当たり判定がしたいならSPHITRCが使えるかもしれません。 ただしその場所に2つ以上のスプライトがある場合、1つしかわからないので、全部判定するのは工夫が必要です。 やり方の例としては、スプライトと当たった場合、その当たったスプライトはSPCOLを一時的に無効にしてからもう一度同じ場所を調べて見つからなくなるまで繰り返すという方法があります。
1そうだね
プレイ済み
返信[1]
親投稿
スプライトとして定義できるグラフィックページは1枚だけですね。言われるようにロードして入れ替えたりSP用のグラフィックページを変更する事は出来ますが、複数のグラフィックページを同時に利用してスプライトを倍表示するみたいなことは残念ながら出来ません。
0そうだね
プレイ済み
返信[11]
親投稿
けいさんの言うように使ってみるのが一番ですね〜。 とりあえず補足(?)すると、マップエディタの保存形式には2つあって一つは前からあった全部のレイヤーをまとめて保存する独自形式ですが、新しい方はレイヤー毎に1つのファイルにして、その内容も単純にマップデータを配列にしたシンプルなものだったりします。それで今回のはその新しいレイヤー形式の読み込み用プログラムですね。 BGのパターンとしてBGSCREEN命令でBGのサイズを指定してから、BGデータをファイルから配列にLOAD命令で読み込んで、その配列に読み込んだデータをBGにBGLOAD命令で流し込む、という感じになってるんで、それが16行目〜19行目で行っているので、そこに注目するとわかりやすいかもです。 ちなみにBGのレイヤー(重なるBG数)は最大4つなので、レイヤー番号(この例では変数L)は0〜3までの指定になりますね。
5そうだね
プレイ済み
返信[15]
親投稿
僕も気になってましたが、りゅうNewさんの「STICK OUTは、その手前のSX,SYより前に持ってきた方が良さそうな感じ」に関しては同感です。 ループもそうですが流れを意識して全体を俯瞰してみれるようになると、その辺も気づきやすくなると思います。 あとFOR I=400 TO 400の意味がないと思うので、そこのFORはなくした方がいいんじゃないかな?
2そうだね
プレイ済み
返信[7]
親投稿
こういう時はトレース機能があれば流れを理解しやすいんですけどね〜。 初心者の為にも実装してくれればなー…
0そうだね
プレイ済み
返信[15]
親投稿
たぶん今回売れないと次回はない…
1そうだね
プレイ済み
返信[5]
親投稿
期待してます! 頑張ってください〜
2そうだね
プレイ済み
返信[5]
親投稿
まあフォローを餌(?)にするのは好まれないですが、そんなに強く言わなくても良さそうな気もしますよ〜。フォローは不要ですと言って回答してあげるぐらいでいいんじゃないかな? ただ大ざっぱで答えにくい質問ですね〜。シューティング系を作ってる人は多いので、そういう人の公開キーを探してプログラムを見てみるのもいいかもしれません。
1そうだね
プレイ済み
返信[2]
親投稿
あれ? 合ってるかな? とりあえずどんなエラーかによるかな…
1そうだね
プレイ済み
返信[1]
親投稿
どんなエラーです? たぶん引数が間違っていると思いますが…
1そうだね
プレイ済み
返信[3]
親投稿
プログラムは勉強より楽しいと思うので、やる気さえあればなんとかなりますよー。 それに、もしわからなくてもこれからなら本も出るし、わからなかったら本を買ってみるみたいな感じで始めてもいいんじゃないかとも思います〜
1そうだね
プレイ済み
返信[8]
親投稿
スマフォなので名前を打ち間違えてしまいました。すいません、りゅうまごさん。
0そうだね
プレイ済み
返信[6]
親投稿
厳密にはりょうまごさんの方は値を返すタイプのユーザー定義命令ですね。 関数は()が付くRETURNで値を返すものではないかなと思います。 まあ言い方の違いなので理解していればどっちでもいいような気もしますが…
0そうだね
プレイ済み
返信[1]
親投稿
もし戻り値が必要ないなら定義の方を、 DEF SERIHU S$ として、RETURNをなくして、呼び出し側を、 SERIHU S$ とする方法もありますよ。なんか戻り値は引数の値を返しているだけだったのでこの場合は意味ないかな?と思ったので。 (もちろん意図的に返す場合もありますが)
0そうだね
プレイ済み