質問スレッド
このフォームからは投稿できません。
name
e-mail
url
subject
comment

[新規順タイトル表示] [ツリー表示] [新着順記事] [留意事項] [ワード検索] [過去ログ] [管理用]

記事No: 21532 [関連記事]
タイトルRe: STGゲームにおける自機発射弾ピクチャの消し方
投稿日: 2023/05/22 22:42
投稿者YADO [LerLWW459]

最初の質問が「ピクチャが消えない」だったので、その原因だけを答えましたが、正常に動かす場合は、他にもいくつかの修正が必要です。

●添付されていた画像のピクチャ移動のXY設定が正しくなかった。
(主人公の向きのセルフ変数が設定されていた)

●ピクチャ表示で「スクロールとリンク」にチャックを付ける。
(既に設定されているかもしれない)

●ピクチャの処理時間は「0」。

●ピクチャを消去したら、移動処理(当たり判定の処理)を終了させる。
(消去したあとは表示位置が「X-1、Y-1」となり、画面左上にいる敵の当たり判定が実行してしまう)

●ピクチャ移動は「相対モード」で移動。
(通常のXYでも設定可能だが、「スクロールとリンク」を設定しているので、通常のXY位置にシステム変数[104・105]を加える必要があるため、相対モードの方が設定が楽で分かりやすい)

●当たり判定のコモンの最後にあるピクチャ消去は「ループ中断」の所へ移動。
(ピクチャ消去を最後の行に置いておくと、敵に当たっても当たらなくてもピクチャが消えてしまう)


上記を踏まえた上で設定し直すと、以下のようになります。

コモンイベント「弾丸発射処理」/並列実行
■キー入力:CSelf10[キー][入力待ち] キーボード(100〜) [キーコード[146]のみ判定] ( Cキー )
■変数操作: CSelf15[ピクチャ番号] = 301 + 0
■変数操作+: CSelf11[X] = 主人公 の 画面X座標
■変数操作+: CSelf12[Y] = 主人公 の 画面Y座標
■変数操作: CSelf12[Y] -= 8 + 0
■変数操作+: CSelf20[主人公の向き] = 主人公 の 向き(1〜9)
■ピクチャ表示:CSelf15[ピクチャ番号] [中心]文字列[●] X:CSelf11[X] Y:CSelf12[Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf21[処理時間] = 20 + 0
■回数付きループ [ 20 ]回
|■条件分岐(変数): 【1】 CSelf20[主人公の向き] が 1 と同じ 【2】 CSelf20[主人公の向き] が 2 と同じ 【3】 CSelf20[主人公の向き] が 3 と同じ 【4】 CSelf20[主人公の向き] が 4 と同じ
|-◇分岐: 【1】 [ CSelf20[主人公の向き] が 1 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:-8 Y:8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【2】 [ CSelf20[主人公の向き] が 2 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:0 Y:8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【3】 [ CSelf20[主人公の向き] が 3 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:8 Y:8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【4】 [ CSelf20[主人公の向き] が 4 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:-8 Y:0 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf20[主人公の向き] が 6 と同じ 【2】 CSelf20[主人公の向き] が 7 と同じ 【3】 CSelf20[主人公の向き] が 8 と同じ 【4】 CSelf20[主人公の向き] が 9 と同じ
|-◇分岐: 【1】 [ CSelf20[主人公の向き] が 6 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:8 Y:0 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【2】 [ CSelf20[主人公の向き] が 7 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:-8 Y:-8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【3】 [ CSelf20[主人公の向き] が 8 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:0 Y:-8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|-◇分岐: 【4】 [ CSelf20[主人公の向き] が 9 と同じ ]の場合↓
||■ピクチャ移動:CSelf15[ピクチャ番号] 相対X:8 Y:-8 / 0(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
||■
|◇分岐終了◇
|■イベントの挿入[名]: ["当たり判定"] <コモンEv 216>
|■変数操作+: CSelf16[表示有無] = ピクチャ:CSelf15[ピクチャ番号] の ピクチャが使用中?(1=YES)
|■条件分岐(変数): 【1】 CSelf16[表示有無] が 0 と同じ
|-◇分岐: 【1】 [ CSelf16[表示有無] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf21[処理時間] -= 1 + 0
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
■ピクチャ消去:CSelf15[ピクチャ番号] / 0(0)フレーム
■ウェイト:CSelf21[処理時間] フレーム

WoditorEvCOMMAND_START
[123][3,0]<0>(1600010,4480,146)()
[121][4,0]<0>(1600015,301,0,0)()
[124][4,0]<0>(1600011,4096,-2,6)()
[124][4,0]<0>(1600012,4096,-2,7)()
[121][4,0]<0>(1600012,8,0,512)()
[124][4,0]<0>(1600020,4096,-2,5)()
[150][11,1]<0>(33558560,1600015,0,1,1,1,255,1600011,1600012,100,0)("●")
[121][4,0]<0>(1600021,20,0,0)()
[179][1,0]<0>(20)()
[111][13,0]<1>(4,1600020,1,2,1600020,2,2,1600020,3,2,1600020,4,2)()
[401][1,0]<1>(1)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,-8,8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,0,8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(3)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,8,8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(4)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,-8,0,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[111][13,0]<1>(4,1600020,6,2,1600020,7,2,1600020,8,2,1600020,9,2)()
[401][1,0]<1>(1)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,8,0,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,-8,-8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(3)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,0,-8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[401][1,0]<1>(4)()
[150][13,0]<2>(4263681,1600015,0,0,0,-1000000,-1000000,8,-8,-1000000,-1000000,0,16777216)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[300][2,1]<1>(0,0)("当たり判定")
[124][4,0]<1>(1600016,16384,1600015,9)()
[111][4,0]<1>(1,1600016,0,2)()
[401][1,0]<1>(1)()
[171][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[121][4,0]<1>(1600021,1,0,512)()
[180][1,0]<1>(1)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[150][3,0]<0>(2,1600015,0)()
[180][1,0]<0>(1600021)()
WoditorEvCOMMAND_END

コモンイベント「当たり判定」/呼び出しのみ
■変数操作: CSelf15[ピクチャ番号] = 301 + 0
■変数操作+: CSelf30[ピクチャX] = ピクチャ:CSelf15[ピクチャ番号] の X座標
■変数操作+: CSelf31[ピクチャY] = ピクチャ:CSelf15[ピクチャ番号] の Y座標



■変数操作: CSelf38[イベントID] = 0 + 0
■回数付きループ [ 10 ]回
|■変数操作: CSelf38[イベントID] += 1 + 0
|■変数操作+: CSelf37[影グラフィック番号] = キャラ[CSelf38[イベントID]] の 影グラフィック番号
|■条件分岐(変数): 【1】 CSelf37[影グラフィック番号] が 2 以外
|-◇分岐: 【1】 [ CSelf37[影グラフィック番号] が 2 以外 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■変数操作+: CSelf32[イベントX] = キャラ[CSelf38[イベントID]] の 画面X座標
|■変数操作+: CSelf33[イベントY] = キャラ[CSelf38[イベントID]] の 画面Y座標
|■変数操作: CSelf33[イベントY] -= 5 + 0
|■変数操作: CSelf34[距離X] 絶対値= CSelf30[ピクチャX] - CSelf32[イベントX]
|■変数操作: CSelf35[距離Y] 絶対値= CSelf31[ピクチャY] - CSelf33[イベントY]
|■条件分岐(変数): 【1】 CSelf34[距離X] が 5 以下
|-◇分岐: 【1】 [ CSelf34[距離X] が 5 以下 ]の場合↓
||■条件分岐(変数): 【1】 CSelf35[距離Y] が 10 以下
||-◇分岐: 【1】 [ CSelf35[距離Y] が 10 以下 ]の場合↓
|||■キャラエフェクト:キャラ[CSelf38[イベントID]][フラッシュ] R100/G-50/B-50 (6)フレーム
|||■動作指定:キャラ[CSelf38[イベントID]] / ジャンプ-右0下0
|||■ピクチャ消去:CSelf15[ピクチャ番号] / 0(0)フレーム
|||■ループ中断
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

WoditorEvCOMMAND_START
[121][4,0]<0>(1600015,301,0,0)()
[124][4,0]<0>(1600030,16384,1600015,0)()
[124][4,0]<0>(1600031,16384,1600015,1)()
[103][0,1]<0>()(" ")
[103][0,1]<0>()(" ")
[103][0,1]<0>()(" ")
[121][4,0]<0>(1600038,0,0,0)()
[179][1,0]<0>(10)()
[121][4,0]<1>(1600038,1,0,256)()
[124][4,0]<1>(1600037,4096,1600038,8)()
[111][4,0]<1>(1,1600037,2,5)()
[401][1,0]<1>(1)()
[176][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[124][4,0]<1>(1600032,4096,1600038,6)()
[124][4,0]<1>(1600033,4096,1600038,7)()
[121][4,0]<1>(1600033,5,0,512)()
[121][4,0]<1>(1600034,1600030,1600032,6144)()
[121][4,0]<1>(1600035,1600031,1600033,6144)()
[111][4,0]<1>(1,1600034,5,3)()
[401][1,0]<1>(1)()
[111][4,0]<2>(1,1600035,10,3)()
[401][1,0]<2>(1)()
[290][7,0]<3>(1,6,1600038,0,100,-50,-50)()
[103][1,1]<3>()("【手作業で設定してください】■動作指定:キャラ[CSelf38[イベントID]] / ジャンプ-右0下0")
[150][3,0]<3>(7970,1600015,0)()
[171][0,0]<3>()()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END

※動作指定はイベントコードにできないので、手作業で設定してください。


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ※必須
Eメール
subject 入力禁止
Title 入力禁止
Theme 入力禁止
タイトル (質問内容に沿ったタイトルにしてください、「わかりません」「質問です」はダメ) sage
URL 入力禁止
URL
手動改行 強制改行 図表モード
添付ファイル    (500kBまで)
削除キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
プレビュー   

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No 削除キー