移動途中でもノックバックするコモン

ウディタの動作指定でアクションゲーム作るときって、
キャラの移動中にダメージ喰らって、ノックバックさせたい時ってあるじゃないですか。
ピクチャ処理を使えばできるっぽいので紹介してみます。

画像


原理としては
1.キャラを「場所移動」コマンドで強制的に移動+透明化
2.ピクチャでノックバックエフェクトを描画
3.キャラの透明化を解除

以上

「2.」を省略すれば処理はより簡易になるかと

---------------------------------
コモン配布はきまぐれのため、とりあえずコードを。
1時間くらいで作ったから細かいミスあるかも

画像


▼ --------------------------------------
▼ 初期処理
▼ --------------------------------------
■変数操作: CSelf11[ピクチャID] = CSelf3[ピクチャ番号] + 0
■変数操作+: CSelf14[キャラX] = キャラ[CSelf0[対象EV]] の X座標(標準)
■変数操作+: CSelf15[キャラY] = キャラ[CSelf0[対象EV]] の Y座標(標準)
■変数操作+: CSelf10[向き] = キャラ[CSelf0[対象EV]] の 向き(1~9)
■条件分岐(変数): 【1】Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 0と同じ 【2】Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 1と同じ 【3】Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 2と同じ
-◇分岐: 【1】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 0と同じ ]の場合↓
|■変数操作: CSelf22[1マスサイズ] = 16 + 0
|■
-◇分岐: 【2】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 1と同じ ]の場合↓
|■変数操作: CSelf22[1マスサイズ] = 32 + 0
|■
-◇分岐: 【3】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600) が 2と同じ ]の場合↓
|■変数操作: CSelf22[1マスサイズ] = 40 + 0
|■
◇分岐終了◇
■変数操作: CSelf23[半マスサイズ] = CSelf22[1マスサイズ] / 2
▼ --------------------------------------
▼ メイン
▼ --------------------------------------
▼ ピクチャ表示
■変数操作: CSelf20[移動X]~CSelf21[移動Y] = 0 + 0
■変数操作+: CSelf12[ピクチャX] = キャラ[CSelf0[対象EV]] の 画面X座標
■変数操作+: CSelf13[ピクチャY] = キャラ[CSelf0[対象EV]] の 画面Y座標
■変数操作: CSelf12[ピクチャX] += CSelf23[半マスサイズ] - 1
■変数操作: CSelf13[ピクチャY] -= 1 + 0
■条件分岐(変数): 【1】CSelf1[画像パターン] が 0と同じ
-◇分岐: 【1】 [ CSelf1[画像パターン] が 0と同じ ]の場合↓
|■変数操作: CSelf17[横分割数] = 3 + 0
|■変数操作: CSelf18[縦分割数] = 4 + 0
|■条件分岐(変数): 【1】CSelf10[向き] が 8と同じ 【2】CSelf10[向き] が 2と同じ
|-◇分岐: 【1】 [ CSelf10[向き] が 8と同じ ]の場合↓
| |■変数操作: CSelf16[パターンID] = 11 + 0
| |■変数操作: CSelf21[移動Y] = CSelf13[ピクチャY] % CSelf22[1マスサイズ]
| |■変数操作: CSelf15[キャラY] += 1 + 0
| |■
|-◇分岐: 【2】 [ CSelf10[向き] が 2と同じ ]の場合↓
| |■変数操作: CSelf16[パターンID] = 2 + 0
| |■変数操作: CSelf21[移動Y] = CSelf13[ピクチャY] % CSelf22[1マスサイズ]
| |■変数操作: CSelf21[移動Y] *= -1 + 0
| |■変数操作: CSelf15[キャラY] -= 1 + 0
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】CSelf10[向き] が 4と同じ 【2】CSelf10[向き] が 6と同じ
|-◇分岐: 【1】 [ CSelf10[向き] が 4と同じ ]の場合↓
| |■変数操作: CSelf16[パターンID] = 5 + 0
| |■変数操作: CSelf20[移動X] = CSelf12[ピクチャX] % CSelf22[1マスサイズ]
| |■変数操作: CSelf14[キャラX] += 1 + 0
| |■
|-◇分岐: 【2】 [ CSelf10[向き] が 6と同じ ]の場合↓
| |■変数操作: CSelf16[パターンID] = 8 + 0
| |■変数操作: CSelf20[移動X] = CSelf12[ピクチャX] % CSelf22[1マスサイズ]
| |■変数操作: CSelf14[キャラX] -= 1 + 0
| |■変数操作: CSelf20[移動X] *= -1 + 0
| |■
|◇分岐終了◇
|■
◇分岐終了◇
■変数操作: CSelf12[ピクチャX] -= CSelf23[半マスサイズ] - 1
■変数操作: CSelf13[ピクチャY] += 1 + 0
■変数操作: CSelf13[ピクチャY] -= CSelf23[半マスサイズ] + 0
▼ EV透明退避
■場所移動:Ev[CSelf0[対象EV]] X:CSelf14[キャラX] Y:CSelf15[キャラY] [トランジションなし]
■動作指定:キャラ[CSelf0[対象EV]] / 不透明度設定 0 / ウェイト 1フレーム
▼ ピクチャ移動
■ピクチャ表示:CSelf11[ピクチャID] [中心]ファイル(CSelf5[キャラ画像]) X:CSelf12[ピクチャX] Y:CSelf13[ピクチャY] / 0(0)フレーム / パターン CSelf16[パターンID] / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ移動:CSelf11[ピクチャID] 相対X:CSelf20[移動X] Y:CSelf21[移動Y] / CSelf2[処理フレーム](0)フレーム / パターン 同値 / 透 同値 / 通常 / 角 同値 / 拡 同値 / カラー 同値
■変数操作: CSelf4 = CSelf2[処理フレーム] + 1
■ピクチャ消去:CSelf11[ピクチャID] / 0(CSelf4)フレーム
▼ EV復活
■変数操作: V0[一時変数] = CSelf2[処理フレーム] + 0
■動作指定:[ウェイト] キャラ[CSelf0[対象EV]] / ウェイト V0[一時変数]フレーム / 不透明度設定 255
▼ --------------------------------------
▼ 終了
▼ --------------------------------------

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック