トピック
HIROα hiroyuki-h4172

質問です

すみません。次の三つの質問に答えてもらえば幸いです。 SPとマップの壁?の当たり判定のプログラムがわかりません。 ネットで調べたりしましたが、苦戦してます…w …なのでわかりやすく説明してもらえば幸いです。 二つ目ですが変数についてで、 DIM HP[1] HP[0]=100 HP[0]=HP[0]-10 的なプログラムを実行したら変数の値が900になるんですけどどういう事でしょうか? わかる方はお願いします。
0そうだね
プレイ済み
返信[1]
親投稿
二つ目の変数の件について答えます。 その変数の数値の確認は ?HP[0] ですか? 多分、前の値が残っているので ?HP[0];" " としてみてください。 それでも900だったら私にはわかりません((
3そうだね
プレイ済み
返信[2]
親投稿
HIROα hiroyuki-h4172
わかりました。ありがとうございます!
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
質問です。 3つ目の質問が見あたりません。
6そうだね
プレイ済み
返信[4]
親投稿
HIROα hiroyuki-h4172
ありがとうございました!解決することができました! おちゃめs»あ、すみません。書いている途中に忘れてしまいました…w
0そうだね
プレイ済み
返信[5]
親投稿
みなつ tksm372
SPとマップの当たり判定というのは、SPとBGの判定でいいのかな~? BGとの判定だとして、まずは簡単な「空白以外は全部当たる」という例で説明しますと~ (1)SPの左上座標をX,Yとしたとき、BGの座標BX,BYを取得します BGCOORD BGレイヤーの番号,X,Y,1 OUT BX,BY (2)BX,BYのBGチップが、空白かどうか調べます。 IF BGGET(BGレイヤーの番号,BX,BY)!=0 THEN 当たり この(1)(2)をあと、 ・SPの右上(X+15,Y) ・SPの左下(X,Y+15) ・SPの右下(X+15,Y+15) の3か所繰り返せばOKです(≧∇≦)b
2そうだね
プレイ済み
返信[6]
親投稿
ツララ LongIceSword
スプライトとスプライト以外の当たり判定で肝になるのは座標系の違いを理解しているかどうかなんじゃないです? 基本的にスプライトの位置はSPSCALE命令で大きさを変えているSPにSPLINKしているとかじゃ無ければドット単位でSPOFSの数値が反映されるはずですから。 みなつさんが説明してくれているBGCOORD命令がズバリこの座標系の違いを画面上のドット単位に補正してくれる命令なんですけど SPの四隅のドット情報を何故調べるのかの理由と仕組みが分かれば、別にマップはBGじゃなくてもグラフィック画面やコンソール画面で作って表示とかでも当たり判定の処理は作れると思いますよ。 後半の説明の内容が行き過ぎ行く行く…(≧Д≦)
1そうだね
プレイ済み
返信[7]
親投稿
HIROα hiroyuki-h4172
ご丁寧な説明ありがとうございます!
0そうだね
プレイ済み
返信[8]
親投稿
HIROα hiroyuki-h4172
「当たり」のところは何ですか?
0そうだね
プレイ済み
返信[9]
親投稿
みなつ tksm372
「当たり」のところは、当たった処理をするところでーす(*´▽`*) THENの後にそのまま当たった時の処理を書くと、4回同じような処理を書かなければいけないので、当たったかどうかを記録しておく変数(フラグと言います)を用意して、 ATARI=0 '←これがフラグです BGCOORD ~:IF ~ THEN ATARI=1 '左上 BGCOORD ~:IF ~ THEN ATARI=1 '左下 BGCOORD ~:IF ~ THEN ATARI=1 '右上 BGCOORD ~:IF ~ THEN ATARI=1 '右下 IF ATATI=1 THEN 当たった時の処理をここに書く ENDIF とするといいかもしれません(*´▽`*)
1そうだね
プレイ済み
返信[10]
親投稿
みなつ tksm372
ア・・・ IFの中、「ATARI=1」じゃなくて「ATARI==1」でした(/ω\)イヤン
1そうだね
プレイ済み
返信[11]
親投稿
ΖΕΧ ZEX256
【DADAXZ3】
1そうだね
プレイ済み
返信[12]
親投稿
HIROα hiroyuki-h4172
色々教えていただきありがとうございます!! あのもうひとつ質問があって、 アイテムを持っている数(ここでは1)のデータをセーブしてまたロードすると0になってしまうのですが、どうしてでしょうか?
0そうだね
プレイ済み
返信[13]
親投稿
ツララ LongIceSword
当たり判定についてはもう疑問点って無いんです? セーブしてロードするってことは具体的に言うと 変数の中身にSAVE命令でファイル名を付けて別ファイルを作って一時退避させて、後で中身を見たり計算で使いたい時にSAVE命令で使った同じ変数にLOAD命令で読み込むって事だと思いますけど HIROαさんはどんな感じにプログラム書かれてます? エラーが出てないとすると普通に考えられる原因は中身を確認するためにPRINT命令の引数にしている配列の添字が違うとか? もしくは表示が900になった質問と同じ原因で、変数の中身を表示する位置の前の表示を消してないせいで見かけが0に見えてるだけとか?
1そうだね
プレイ済み
返信[14]
親投稿
HIROα hiroyuki-h4172
僕のプログラムは……IF命令と変数を掛け合わせたプログラムを凄く使いますね。 それで質問ですが、SPHITSPで当たり判定する部分まではわかるのですが、ぶつかる(通り抜けない)用にするにはどうすればよいですか?
0そうだね
プレイ済み
返信[15]
親投稿
ツララ LongIceSword
セーブとロードに関する質問は自己解決したんです? 意図が上手く伝わってない様なのでズバリ聞きますけど、編集画面をコメントに添付して見せて欲しいって意味でどういうプログラム書かれてるのか聞いたんですけど IF文で変数を掛け合わせるっていうのは条件式にです?それもとTHEN節の実行部分にです? 当たり判定での追加の質問したいならみなつさんを指名した方がいいと思いますよ?
0そうだね
プレイ済み
返信[16]
親投稿
HIROα hiroyuki-h4172
わかりました。 セーブ、ロードのところは解決しました。いってなくてすみません。 画像貼りつけます。 (プログラムはかなりごちゃごちゃしてるのでご了承を……)
0そうだね
プレイ済み
返信[17]
親投稿
HIROα hiroyuki-h4172
はい
0そうだね
プレイ済み
返信[18]
親投稿
HIROα hiroyuki-h4172
すみませんが、閉じたいと思います。 参加しただいた方、本当にありがとうございました!
0そうだね
プレイ済み