トピック

DATAの続きです。

前の投稿でBGをSPに変えました そのSPは、どうやってSP同士を判定するんですか? SPHITSPで判定するんですが、出来ません。
1そうだね
プレイ済み
返信[1]
親投稿
しろ sshiro1shiro
添付の関数呼んでないんじゃないかな。
3そうだね
プレイ済み
返信[2]
親投稿
Soybeanman 2013niconico
とりあえず、SPHITSP(0)を、 SPHITSP(0)>-1にしましょう。
0そうだね
プレイ済み
返信[3]
親投稿
しろさん、関数は、SPCOLのことですか?SPCOLを何処に置いたらいいですか? それが分かりません。 soybeanmanさん やってみました何も変わりません。
0そうだね
プレイ済み
返信[4]
親投稿
Soybeanman 2013niconico
そもそも相手側(MAPのSP)にもSPCOLしてるの?
0そうだね
プレイ済み
返信[5]
親投稿
そのSPCOLが、分からないんです
0そうだね
プレイ済み
返信[6]
親投稿
だにえる haru2016nen
関数での当たり判定をするときは SPCOLで判定の設定をしておかないと 反応しない。 ヘルプにも書いてあるっしょ。
0そうだね
プレイ済み
返信[7]
親投稿
SPCOLで判定するのは、わかっています。ですが、どの関数を入れてあげればいいんですか?
0そうだね
プレイ済み
返信[8]
親投稿
しろ sshiro1shiro
実はSP同士でなくSPとBGの衝突判定の話では無いだろうか?多分SP0はいるけど他はいなさそう。BGは残ってるけど。
0そうだね
プレイ済み
返信[9]
親投稿
BGをSPに変えているのにですか?
0そうだね
プレイ済み
返信[10]
親投稿
TERA(LL) tera0413
前の投稿では、BGのデータをSPで利用できる様にしただけで、(画面上プログラムが見えてませんが、恐らく)まだ、SPを使ってマップの表示をしてない事と思われます。 (BGをSPにしてない) SP 0 と同様にSPSETしたSP毎にSPCOLが必要です。
0そうだね
プレイ済み
返信[11]
親投稿
しろ sshiro1shiro
ついでにBGを表示しないならBGLOADは不要でその代わりにSPSETとSPOFSでC[]の内容を反映しないといけない。つまり衝突判定はまだ先かな。多分SPSETとSPOFSはループで使うと思うけどその時に一緒にSPCOLを使えばいいかな。
0そうだね
プレイ済み
返信[12]
親投稿
え~と、時間がかかりますがc[]の中身をやっていくのをお願いします。
0そうだね
プレイ済み
返信[13]
親投稿
TERA(LL) tera0413
BGチップとSPDEFの番号が一致してるのであれば、DATAの並んでる通りSPを定義して並べていくだけですが・・・ SPの番号とか、一列あたり何個並べるかで適宜調整は必要。
0そうだね
プレイ済み
返信[14]
親投稿
しろ sshiro1shiro
この先は各関数の理解とプログラマーのテクニックなんで、自分から教えれることはないが、今回のお題に対して自分なら添付のように書きます。
1そうだね
プレイ済み
返信[15]
親投稿
しろ sshiro1shiro
しまった…値間違ってた…ついでに意図読み取ってみた、これで電撃イライラ棒完成だな(ねたが古すぎるか…)。
0そうだね
プレイ済み
返信[16]
親投稿
しろさんすごい!! TERA(LL)さん、こんな感じで辺り判定もつけたのに音が鳴りません。どうしてでしょう?
0そうだね
プレイ済み
返信[17]
親投稿
しろ sshiro1shiro
SPヒットのiが分からないけどuだけじゃだめだった?
0そうだね
プレイ済み
返信[18]
親投稿
しろ sshiro1shiro
あとuに1を入れるのはSPCOLの前じゃないとダメじゃないかな(余談だがcプログラマーとしてDATAがREADの後に書けるのが慣れない…処理が前後して読み難い…ベイシックめ〜)。
0そうだね
プレイ済み
返信[19]
親投稿
uだけで一様出来ましたが。 なぜかSPSET U,1なのに1じゃなくて0が動く
0そうだね
プレイ済み
返信[20]
親投稿
しろ sshiro1shiro
3行目を7と9行目で上書きしてるがワザとかな?
0そうだね
プレイ済み
返信[21]
親投稿
上書きと、いいますと?
0そうだね
プレイ済み
返信[22]
親投稿
しろ sshiro1shiro
取り敢えず3行目は11行目に移動だけど7や9行目で使うSPと共通になるのが嫌ならuの値は35位じゃないとダメかな。
0そうだね
プレイ済み
返信[23]
親投稿
しろ sshiro1shiro
質問が前後したな…3行目でSP 1に対してSPSETとSPCOLしているが9行目と11行目ではSP 0から34(当然1も含まれる)までSPSETとSPCOLしてるでしょ。
0そうだね
プレイ済み
返信[24]
親投稿
解決できましたですが ダイレクトモードで実行すると。 左上の上から2行、横二行が判定しません
0そうだね
プレイ済み
返信[25]
親投稿
TERA(LL) tera0413
SPHITSP(U)の戻り値は、SP U の衝突相手です。 IF XXX THENで判定してますが、衝突相手がSPの0番だった場合、IF 0 THENなので条件は成立しません。 (むしろ 衝突無しの時に IF -1 THENなので条件成立してる様に見えますが???)
0そうだね
プレイ済み
返信[26]
親投稿
TERA(LL) tera0413
あ、DATA 0 の時、SPを表示しないか、そもそもそこにSPを置かない処理が必要です。
0そうだね
プレイ済み
返信[27]
親投稿
TERA(LL) tera0413
そのままだと、あたり判定が大きすぎると思われるのでついでに判定を狭くしてあります。
0そうだね
プレイ済み
返信[28]
親投稿
手伝ってくれた人たちありがとうございました おかげで最後まで解決しました。
0そうだね
プレイ済み