投稿
りょうま R-S1437
初心者です!シューティングゲームの攻撃などはどうすればよろしいのでしょうか?
1そうだね
プレイ済み
返信[1]
親投稿
うちゅうじん kunieda.hnh
弾のスプライトを何個か用意して、ボタンを押している間、数フレームごとにSPANIMで自機から画面の外まで弾を飛ばす。
0そうだね
プレイ済み
返信[2]
親投稿
りょうま R-S1437
ありがとうございます!
0そうだね
プレイ済み
返信[3]
親投稿
りょうま R-S1437
できれば、もう少し詳しく書いてもらえますか?
0そうだね
プレイ済み
返信[4]
親投稿
うちゅうじん kunieda.hnh
ではAボタンを押すと1つ弾を表示するというプログラムは作れますか?(動かさなくていい)
0そうだね
プレイ済み
返信[5]
親投稿
りょうま R-S1437
すみませんそこからお願いします
0そうだね
プレイ済み
返信[6]
親投稿
うちゅうじん kunieda.hnh
じゃあサンプルを。 ACLS SPSET 0,1342 SPHIDE 0 X=200 Y=180 @LOOP B=BUTTON() IF B AND 16 THEN SPOFS 0,X,Y:SPSHOW 0 VSYNC 1 GOTO @LOOP
0そうだね
プレイ済み
返信[7]
親投稿
うちゅうじん kunieda.hnh
これでAを押すと画面の下のほうに弾が表示されるはずです。質問があれば言ってください。
0そうだね
プレイ済み
返信[8]
親投稿
りょうま R-S1437
ありがとうございます。試してみます。あとこれは、最初から書くのですか?
0そうだね
プレイ済み
返信[9]
親投稿
うちゅうじん kunieda.hnh
もちろんEDITの1行目からです。
0そうだね
プレイ済み
返信[10]
親投稿
りょうま R-S1437
こうなりました
0そうだね
プレイ済み
返信[11]
親投稿
うちゅうじん kunieda.hnh
あと、もし私のサンプル内の命令が理解出来なかったならば、まだゲームを作る段階ではありません。プチコンの初心者講座がミーバースやネット上にあるのでそこで勉強することをお勧めします。
0そうだね
プレイ済み
返信[12]
親投稿
りょうま R-S1437
すみません、これであっていますか?
0そうだね
プレイ済み
返信[13]
親投稿
りょうま R-S1437
すみません、できました。
0そうだね
プレイ済み
返信[14]
親投稿
うちゅうじん kunieda.hnh
じゃあ完成形を。
0そうだね
プレイ済み
返信[15]
親投稿
うちゅうじん kunieda.hnh
これは私の作った弾幕STGから取り出したものです。
0そうだね
プレイ済み
返信[16]
親投稿
うちゅうじん kunieda.hnh
わからない命令があればヘルプを見るか、質問してください。
0そうだね
プレイ済み
返信[17]
親投稿
りょうま R-S1437
本当にありがとうございす!
0そうだね
プレイ済み
返信[18]
親投稿
りょうま R-S1437
すみませんこれは、どこが間違っていますか?一応確認したんですけど・・・
0そうだね
プレイ済み
返信[19]
親投稿
りょうま R-S1437
THEN without ENDIF in25と出てきました。僕の調べた限りでは、わからないんですけど、わかりますか?
0そうだね
プレイ済み
返信[20]
親投稿
うちゅうじん kunieda.hnh
IF文は IF 条件 THEN 条件を満たしたときの命令 というように1行で表すか、 IF 条件 THEN 条件を満たしたときの命令 ENDIF というように複数行で表す方法の2種類があります。 りょうまさんの場合IF THENのあとに何も書かずに次の行に進んでいるためプチコンは後者と判断しています。IF文のあとにENDIFがないためエラーとなっています。
0そうだね
プレイ済み
返信[21]
親投稿
うちゅうじん kunieda.hnh
解決法は2つ 18,19行目を IF (T MOD 4)!=0 THEN RETURN とするか、 IF (T MOD 4)!=0 THEN RETURN ENDIF とするかです。 条件を満たしたときの命令が1つや2つなら前者、たくさんあって1行にしたくないときは後者の方法をとると良いです。この場合は前者が適しています。
0そうだね
プレイ済み
返信[22]
親投稿
りょうま R-S1437
ありがとうございます。一度やってみます。
0そうだね
プレイ済み
返信[23]
親投稿
りょうま R-S1437
やっとできました。手伝っていただきありがとうございました。あとたまを出すボタンをAからYに変えたのとたまをうったときにBEEP 10がなるようにしてあとたまを変えさしていただきました。わざわざ手伝っていただきありがとうございました。
0そうだね
プレイ済み
返信[24]
親投稿
りょうま R-S1437
すみません、さいしょの画像のにたまをだす機能を付けたいのですが自機の設定を抜いた部分はどこでしょうか?またしても、初歩的な質問ですが、申し訳ありません。
0そうだね
プレイ済み
返信[25]
親投稿
うちゅうじん kunieda.hnh
自機の設定は3,4,5行目だけです。そこをいじれば、自機の座標とキャラ番号を変えられます。
0そうだね
プレイ済み
返信[26]
親投稿
りょうま R-S1437
ありがとうございます。最初の画像のやっに他のをくっつけてみます。
0そうだね
プレイ済み
返信[27]
親投稿
りょうま R-S1437
重要なことを忘れてました、弾を横にうつにはどうすればいいのでしょうか?
0そうだね
プレイ済み
返信[28]
親投稿
うちゅうじん kunieda.hnh
SPANIMを使います。 SPANIM S,"XY",-W,X,Y,1 と打つと、管理番号Sの座標をWフレーム後までに(X,Y)の位置に動かすという意味になります。 横に動かすには、Y座標を変えずにX座標を画面の外まで動せばよいので、 SPANIM MSP+1,"XY",-MX/8,400,MY+補正,1 となります。
0そうだね
プレイ済み
返信[29]
親投稿
うちゅうじん kunieda.hnh
間違えました。 SPANIM MSP+1,"XY",-(400-MX)/8,400,MY+補正,1 です。
0そうだね
プレイ済み
返信[30]
親投稿
りょうま R-S1437
すみません「補正」というところには、なにを入れればいいのでしょうか?
0そうだね
プレイ済み
返信[31]
親投稿
うちゅうじん kunieda.hnh
ちなみに… "XY"は0と書いてもOKです。 ""内の文字を変えると、キャラ番号や回転などのアニメーションに出来ます。 (400-MX)/8は弾が1フレームで8ドット進むとしたときに発射位置から画面外へ出るまでのフレーム数です。8の部分が弾の速さとなります。 最後の1という数字はループ回数を表します。 2以上にすると、発射位置から画面の外まで移動することをその数だけ繰り返します。 0にすると無限ループになります。 キャラ番号のアニメーションのときはここを0にしたりします。
0そうだね
プレイ済み
返信[32]
親投稿
りょうま R-S1437
分かりやすく解説していただきありがとうございます。とても勉強になります!
0そうだね
プレイ済み
返信[33]
親投稿
うちゅうじん kunieda.hnh
コメントがかぶってしまいましたねw 補正についてですが、 補正がないと、SPRITEの上のほうから発射されてしまうと思うので、MYに数字を足して調整するのです。 SPOFS MSP+1,MX+補正2,MY+補正 とするのを忘れずに。
0そうだね
プレイ済み
返信[34]
親投稿
りょうま R-S1437
これであっていますか?このまま始めると、左上に弾が表示されて撃った弾も画面右端で止まってしまいます。どうしたら良いでしょうか?
0そうだね
プレイ済み
返信[35]
親投稿
うちゅうじん kunieda.hnh
弾を大きなスプライトにして、SPHOMEで基準点を変えたことが原因です。 8行目を変えて、最初は画面の外の位置に置く。そして最後にアニメーションが画面の外で終わるように、400の値を変えればOK。
0そうだね
プレイ済み
返信[36]
親投稿
りょうま R-S1437
できました!ありがとうございます。 あと、弾の当たり判定などは、どうすればよいのでしょうか?
0そうだね
プレイ済み
返信[37]
親投稿
うちゅうじん kunieda.hnh
SPHITSPを使います。2パターンあります。 変数=SPHITSP(管理番号) で指定したスプライトと衝突した別のスプライトの管理番号を返します。(衝突してないときは-1) 変数=SPHITSP(管理番号,相手の管理番号) 2つのスプライトが衝突していたら1、していなかったら0を返す。 衝突した弾があれば、その弾をSPHIDEで見えなくするか、SPOFSで画面の外に移すかして、ダメージの処理をすればOK。
0そうだね
プレイ済み
返信[38]
親投稿
うちゅうじん kunieda.hnh
あとここまで教えておいて言うのはおかしいかもしれませんが、 私は初代プチコンの初心者講座で基礎を学んだあとは独学(ヘルプとのにらめっこ)でプログラミングしています。なので、教えている方法があっているかどうかは正直わかりません。 (サンプルとして提案した方法も私が自分で考えた方法なので本当はもっと良い方法があるかもしれません。)
0そうだね
プレイ済み
返信[39]
親投稿
うちゅうじん kunieda.hnh
そのため質問はコミュニティ全体に向けてすることをオススメします。たくさんの人が回答してくれて、正しい知識を身につけることが出来ると思います。 私が一人で教えるのは不安なので。
0そうだね
プレイ済み
返信[40]
親投稿
りょうま R-S1437
分かりました次からは、そうします。最後に先程のものを詳しくかいていただけないでしょうか。あと、今まで教えてくださってありがとうございました。
0そうだね
プレイ済み
返信[41]
親投稿
うちゅうじん kunieda.hnh
@LOOP 他の処理 HIT=SPHITSP(敵) IF HIT==自分の弾 THEN GOSUB @D GOTO @LOOP @D SPOFS あたった弾,410,0 敵のHPを減らす ダメージ音ならす 敵のHP0なら敵も消す RETURN 敵と当たっているものを探して、自分の弾と当たったら、ダメージの処理へ行くという感じです。
0そうだね
プレイ済み
返信[42]
親投稿
りょうま R-S1437
すみません。もう少し詳しくできますか?
0そうだね
プレイ済み
返信[43]
親投稿
うちゅうじん kunieda.hnh
これ以上詳しくとなるとプログラムを丸々書かなくてはいけません。やはり全く理解出来ていないようですね。プチコンmk2の初心者講座で基礎を勉強しましょう。その後ここのコメントを見直せば理解出来るはずです。
0そうだね
プレイ済み
返信[44]
親投稿
うちゅうじん kunieda.hnh
プチコンmk2はプチコン3号の前作で、命令の仕方が違うところもありますが、とても勉強になると思います。初心者講座はmk2の公式サイトにあります。
0そうだね
プレイ済み
返信[45]
親投稿
りょうま R-S1437
ありがとうございます。少しずつでも見ていってしっかり覚えます。あと返信が遅れて誠に申し訳ありません。
0そうだね
プレイ済み