トピック
bはかせ kojimadaiti

移動

ただいまSPを使ったキャラで、 アニメ部分はできたので 次は移動をさせようと思うんです。 自分が動くタイプの移動処理は大体 分かるんです。 しかし、自分は方向キーを入力すると 操作キャラは画面中央に固定させて、 周りの背景やモノを動かすタイプに したいのです。 それには大体どういった処理をすれば いいんですかね? 回答お願いします。
4そうだね
プレイ済み
返信[1]
親投稿
bはかせ kojimadaiti
自分が動くタイプはSPOFSでいろいろ すればいいのですが、 背景や自分以外のSPをいっきに 動かす処理が分からないんです。 何か使える命令などないでしょうか?
0そうだね
プレイ済み
返信[2]
親投稿
だにえる haru2016nen
もしも背景がBGなら BGANIMを使うと思うんだけど、 SPを使う場合、 僕ならSPFUNCを使って、 背景SPに、 「押されたボタンと逆の方向にSPOFS をする」 っていう処理を当てる。
3そうだね
プレイ済み
返信[3]
親投稿
だにえる haru2016nen
背景SP全てにSPFUNC'マップの読み込み ↓ @L ボタン取得 CALL SPRITE GOTO@L
2そうだね
プレイ済み
返信[4]
親投稿
だにえる haru2016nen
マザーみたいな?
2そうだね
プレイ済み
返信[5]
親投稿
みんなも言っているように基本的には 1 プレイヤーの移動=BGのスクロールなのでBGOFSやBGANIMでBGを動かす。 2 プレイヤー以外のスプライトは移動方向と逆(つまりBGと一緒)の方向に動かす。 になると思います。2は出現している全ての(プレイヤー以外の)キャラを動かさないとスクロールに同期しないので、FORやSPFUNCなどを使って対象スプライト全てに処理しますが、背景に同期するダミー(透明とか)のスプライトを用意して、そのスプライトにSPLINKすることでダミースプライトを動かすだけで他のスプライトまとめて動かすことも出来ると思います。 やり方は色々ですが好きな方法で試してみるといいと思いますよ。
6そうだね
プレイ済み
返信[6]
親投稿
みむ*mim hidemimtp
BGは自分が移動する時のSPOFSの処理の変わりにBGOFSでBGを動かすだけですが、スプライトは自分以外のすべてのキャラに「スクロールの距離」を加算する必要があります。 例えばスーパーマリオのクリボーが左に1の速度で動いていたとすると、画面が左に2の速度でスクロールすると、クリボーは1+2=3の速度で移動する事になります。  X=X+キャラの横移動速度+横スクロール速度 ですね。すべてのキャラにこの「+スクロール速度」の処理を加えればOKです。 これが基本で、実際に動かす処理はBGHOMEでも~ANIM系でも、SPLINKでも自由に工夫されると良いかと。
2そうだね
プレイ済み
返信[7]
親投稿
bはかせ kojimadaiti
皆さん分かりやすく説明してくださり ありがとうございます! 大体の処理の流れも分かってきたので、 SPFUNC、SPLINK と触れたことのない 命令ばかりですが 少しずつやっていこうと思います。
1そうだね
プレイ済み
返信[8]
親投稿
最後にちょっとだけサンプル。 手抜きですがスクロールの雰囲気はわかるかなと…。 頑張ってください!
2そうだね
プレイ済み
返信[9]
親投稿
bはかせ kojimadaiti
でんぺん さんのサンプル凄い… これだけでぐっとRPGっぽくなりますね。 どうにか仕組みを理解して 使いこなせるように頑張ります。
2そうだね
プレイ済み
返信[10]
親投稿
参考になれば幸いです。ちなみに手抜きなのは、 ・BGとの当たり判定がない。 ・キャラが木の場所に表示される事がある。(ランダムなので) ・アニメーションがSPCHRとSPANIMで統一されてない。 ・サンプルの一部が以前のソースの使い回し。 などがあるので…。ちなみにソースの一部は以前と同じなので以下の解説が役に立つ部分もあります。 日付:2014/12/12 第3回、解説付きサンプル講座。BGスクロールのサンプルになっています。 https://miiverse.nintendo.net/posts/AYIHAAAEAAAFVHwZZdA6Xw またこのプログラムに対する質問などがあったら答えますんで遠慮なく聞いてくださいね。
2そうだね
プレイ済み
返信[11]
親投稿
bはかせ kojimadaiti
時間があったので、 でんぺん さんのプログラムを 自分のプログラムに適当に組み込んでみたら 動いてくれました! 次は当たり判定です…
1そうだね
プレイ済み