投稿
Daisuke 0909daiki09
プチコン初心者です。ミサイルが撃って操作キャラのY座標の所まで行ったら爆発のアニメーションが入るという感じにしたつもりなのですが、アニメーションが表示されません…IF文の条件分岐の仕方が悪かったのでしょうか…親切な方教えて下さい…
2そうだね
プレイ済み
返信[1]
親投稿
あきと SideBurnsM
@ENEMの中は戦車が動いている間はすぐRETURNして抜けてしまうのでこの書き方だと弾の判定の所にはほとんど行きませんね。 @ENEMとは別に@TAMAというようなラベルを作って弾の処理だけ行う場所を作った方がいいです。 とりゅふさん、弾が210になったら爆発をさせたいように読めますが、AYには何が入っていますか?前も書きましたが、分からないときは今どうなっているか調べるためにPRINT文で表示した方がいいですよ。AYは行き先であって今の弾の座標ではないはずです。
0そうだね
プレイ済み
返信[2]
親投稿
Daisuke 0909daiki09
あきとさん»調べてみたらAYの値は常に0でした…これだとAY=210にはならないと分かりました…
0そうだね
プレイ済み
返信[3]
親投稿
Daisuke 0909daiki09
表示されました!ありがとうございます! でも次は爆発のアニメーションの動きがかなり遅くなって、それがSPANIMのフレーム数を変えても直りません…どうしたらいいですか?
0そうだね
プレイ済み
返信[4]
親投稿
あきと SideBurnsM
LOCATE 0,0:PRINT CK としておくと縦に数字がずらっと並ばずに同じ場所にプリントし続けられますよ。 予想ですが、遅くなっているのではなく何度も爆発し続けているのではないかと思います。爆発の条件のIF文で使っている変数を2ともプリントして見ましょう
0そうだね
プレイ済み
返信[5]
親投稿
あきと SideBurnsM
2つ変数を表示するときはLOCATEをつかって違う場所にしてくださいね。
0そうだね
プレイ済み
返信[6]
親投稿
Daisuke 0909daiki09
試してみます!
0そうだね
プレイ済み
返信[7]
親投稿
Daisuke 0909daiki09
あきとさんの言う通り何度も0になっているのでアニメーションが同じ所に繰り返されていました…
0そうだね
プレイ済み
返信[8]
親投稿
Daisuke 0909daiki09
0になる時が繰り返しある事は分かったのですが、どういうプログラムを組めばいいか分かりません…自分で考えてみたいのでヒントをくれませんか?
0そうだね
プレイ済み
返信[9]
親投稿
あきと SideBurnsM
今、弾がアニメしているとき(CHK==1)とアニメしていない時だけで処理を判定しています。 それだと戦車から弾が撃たれてない時も弾はアニメしていないので爆発が起きてしまいます。または目的の場所に到達したあとSPCHKが0を返すの爆発し続けるでしょう。 最初とりゅふさんは弾が画面下(210だったけど)に届いたら爆発するという判定を書いていたのに今はなくなっていますね。 画面下に弾が届いたら爆発する。そして連続して爆発しないように弾は画面外( 例えば(-32,-32)に飛ばしてしまうというのがいいと思います。
0そうだね
プレイ済み
返信[10]
親投稿
あきと SideBurnsM
うーん、ちょっと文章が長かったですね。 要は弾の移動中・停止中だけではなく別な方法で判定しないと停止==爆発だと最初と同じようにし続けてしまいますよという事です。 ・弾の座標を取得する(スプライトの座標取得は覚えていますね?) ・画面下に来ていたら爆発 ・爆発したら弾はなくなるはずなのでどこかに隠す SPHIDEは見えなくはなるんですが座標は動いてないので恐らく爆発し続けてしまうと思います。
0そうだね
プレイ済み
返信[11]
親投稿
Daisuke 0909daiki09
1時間考えてやっと早く爆発のアニメーションを動かす事が出来ました!あきとさんありがとうございます! でも一つだけ分からない事があります… 画像の所にSPOFS OUTで調べるための変数MX5とMY5を置いた時に 初めのループだけは処理が上手くいかない事は分かっていたのですが 何故か初めのループでX座標8から-の方向に動きました…そんな事は定義していないです…原因を教えて下さい…
0そうだね
プレイ済み
返信[12]
親投稿
あきと SideBurnsM
その書き方だとループのいつでも通るところでMY5はいつも代入されています。 でもAXは戦車が弾を打つときに初めてSPOFS OUTを使って戦車の座標を取得するんですよね。だからそれまではAXは0なんです。
0そうだね
プレイ済み
返信[13]
親投稿
あきと SideBurnsM
失礼MY5じゃなくてMX5ね
0そうだね
プレイ済み
返信[14]
親投稿
Daisuke 0909daiki09
あきとさん»出来ました! でも2回目のループの時にありえない座標が表示されたのですが、どういう事ですか?教えて下さい…
0そうだね
プレイ済み
返信[15]
親投稿
Daisuke 0909daiki09
一番左上がミサイルの座標で、その隣がミサイルのアニメが動いているかどうかの確認です。
0そうだね
プレイ済み
返信[16]
親投稿
あきと SideBurnsM
「202」を表示してから「7」が表示されてるだけでは? 試しにループのすぐ下でCLSを読んでみてください
0そうだね
プレイ済み
返信[17]
親投稿
Daisuke 0909daiki09
おお!あきとさんのおかげでちゃんとした座標になりました! でも7は何処で表示したんでしょう…
0そうだね
プレイ済み
返信[18]
親投稿
あきと SideBurnsM
色々推理しながら書いてきましたが、さすがにこの画面情報だけではわかりませんね。
0そうだね
プレイ済み
返信[19]
親投稿
Daisuke 0909daiki09
あきとさん»すいません…公開キーを発行したので、ダメな所を教えてください…
0そうだね
プレイ済み
返信[20]
親投稿
Daisuke 0909daiki09
書き忘れましたがファイルGAME1が今作っているプログラムなので、そのファイルをダウンロードして下さい。
0そうだね
プレイ済み
返信[21]
親投稿
Daisuke 0909daiki09
↑フォルダでした…
0そうだね
プレイ済み
返信[22]
親投稿
あきと SideBurnsM
落としてみて分かったのですが一番左の文字は7ではなく(だったんですね。Miiverseでは角が丸くなってしまうのでよく文字が見えてませんでした。 プリントはちゃんと動いてるのではないでしょうか。 見て思ったことをいくつか ・主人公と爆発のスプライトを4個ずつ使っているのは意味があるんでしょうか。RNDで爆発の場所をずらしたりすればちょっと派手になるかな…。 ・@TAMAの中で爆発発生の時にMSというフラグを作ってるようですがこのフラグは今は必要無いですね。コメントにしてみましたがちゃんと爆発は一回で止まります。 ・IF MS==FALSE THEN ms=FALSEという代入も意味がないのではずしていいでしょう 次は打ち返しですかね。頑張ってください
0そうだね
プレイ済み
返信[23]
親投稿
あきと SideBurnsM
あとBGのデータは4つまで重ね合わせできるのでこんな画面もつくれますよ。マップツールの右下に「edit 0 1 2 3」という所を触ってみてください
0そうだね
プレイ済み
返信[24]
親投稿
Daisuke 0909daiki09
ありがとうございます! 爆発が4回繰り返されるのは何故そうなるのかは自分でも分かりません…
0そうだね
プレイ済み
返信[25]
親投稿
Daisuke 0909daiki09
あ!SPANIMのループ回数の指定がいつの間にか消えてました!自分で気付けて良かった…
0そうだね
プレイ済み
返信[26]
親投稿
Daisuke 0909daiki09
あきとさん»重ね貼りも出来たんですね!
0そうだね
プレイ済み
返信[27]
親投稿
Daisuke 0909daiki09
あきとさん»ここでまた一つ問題が… 煙のアニメーションが残ってしまいます…どうしたらいいですか?
0そうだね
プレイ済み
返信[28]
親投稿
あきと SideBurnsM
どうすればいいと思いますか? なぜ煙は残っているのでしょうか。 アニメの最後が煙の絵なんですよね。 「何もない絵」にすればいいのでは?
0そうだね
プレイ済み
返信[29]
親投稿
Daisuke 0909daiki09
おお!上手くいきました!ありがとうございます!
1そうだね
プレイ済み