トピック
??? 258556

スクロール式マップでスプライトの位置を固定したいのですがどうすればいいのですか?

0そうだね
プレイ済み
返信[1]
親投稿
動かす、よりも、動かさない、のほうが簡単です。 座標の数字を変えなければいい。
1そうだね
プレイ済み
返信[2]
親投稿
Hanzo rzsense
マップ(BG)がスクロールしたら、それにつられてスプライトも動かしたい、と言うことでしょうか? もしそうなら、例えば以下のように、SPOFSとBGOFSで指定する座標の移動量を同じにして、符号だけ逆にすればよいと思います。 BX=BX+DX:BY=BY+DY SX=SX-DX:SY=SY-DY BGOFS 0,BX,BY:SPOFS 0,SX,SY
0そうだね
プレイ済み
返信[3]
親投稿
??? 258556
Hanzoさんいっていることの逆のことです。ゲームでまちとかに入ったらマップにつられないで固定されているスプライトのことです(ドラクエ1で言えば道具とかを売ってくれる人)。 それが知りたいんです。
0そうだね
プレイ済み
返信[4]
親投稿
ヨッシー okkun2002
えっと、SXとSYの処理を消せば良いのでは? 違ったらスミマセン
0そうだね
プレイ済み
返信[5]
親投稿
Hanzo rzsense
当方の理解力が乏しくて恐縮です。 ドラクエの道具屋のように、マップ上に固定されて動かないキャラクターは、スプライトではなくBGで描くのも一法です。
0そうだね
プレイ済み
返信[6]
親投稿
あきと SideBurnsM
ショップの店員みたいなキャラクターをNPC( ノンプレイアブルキャラクター)と言いますが、こういうキャラの管理は ・主人公の移動処理 ・背景のスクロール処理 ・NPCの位置補正処理 の順番で処理するといいと思います。
1そうだね
プレイ済み
返信[7]
親投稿
Hanzo rzsense
こういうときは、実際にプログラムを動かしてみるに限ります。 添付プログラムを動かした場合、「イチゴ」の動きは、一回目と二回目、どちらがご質問の意図と合っていますか?私は一回目だと思っていましたが・・・
0そうだね
プレイ済み
返信[8]
親投稿
あきと SideBurnsM
ためしに作ったサンプルです。公開キー【83EXE384】 以前主人公が中央に立っていてBGがスクロールするサンプルプログラムを作ってみたのですがNPCも置いてみました。 プチコンにはBGCOORDという便利な命令があってスプライトの座標とBGのスクロール位置を補正してくれます。 ソースに色々書いてますが、NPCの処理は「NPC_INIT」「NPC_REVISE」だけです。参考にしてください。
2そうだね
プレイ済み
返信[9]
親投稿
??? 258556
皆さんが想像しているプログラムとぼくのプログラムがだいぶ違うと思うのですがどこをどう直せばいいですか?
0そうだね
プレイ済み
返信[10]
親投稿
Hanzo rzsense
ご提示のプログラムは、0番スプライトを画面中央に固定し、BGのスクロール方向に応じて0番スプライトをアニメーションさせるものでしょうか。特に修正すべき点はないように見受けられます。ただ、0番スプライトはプレイヤーキャラであって、道具屋系キャラ(あきとさんがおっしゃるところのNPC)ではないですね。 電車に乗っていると、実際には自分の車両が停車していて隣の車両が動いているのに、その逆と錯覚することがしばしばありますが、???さんと私の間にも、それと同様の認識の相違があるような気がします。 そこで、認識を統一するため、ご面倒をおかけして恐縮ですが、ぜひ、添付リストを入力、RUNしていただきたく。 RUNすると3つのスプライトが表示されます。十字ボタンを適当に操作したとき、???さんの意図と合うのは、3つのうちどのスプライトの動きか、教えていただけますでしょうか。
0そうだね
プレイ済み
返信[11]
親投稿
??? 258556
みかんのスプライトです。
0そうだね
プレイ済み
返信[12]
親投稿
Hanzo rzsense
解りました。ありがとうございます。 私のプログラムでは、草原の上でみかんを動かし、さらにそのみかんごと、草原を動かしています。 具体的には、草原上のみかんの座標をM,Wとし、草原(BG)のスクロール量をX,Yとした場合、みかん(スプライト)の座標の指定時に、M,WからBGスクロール量を引けばよいのです。 つまり、次のような感じです。 BGOFS 0,X,Y SPOFS 2,M-X,W-Y 詳しくは、私のプログラムをご参照ください。
0そうだね
プレイ済み
返信[13]
親投稿
Hanzo rzsense
申し上げ忘れておりました。 私のプログラムにおいて、みかんのスプライトは、管理番号2番のスプライトです。
0そうだね
プレイ済み
返信[14]
親投稿
??? 258556
なかなか理解できない僕に何度も丁寧に教えてくださってありがとうございました。
0そうだね
プレイ済み