忍者ブログ
なんかもういろいろ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

飛び道具には沢山種類がありますが
今回は、本体から射出される固体系
つまり波動拳のタイプと
レーザー系で行ってみましょう

まずは波動拳タイプから

必要な物は

・飛び道具を撃つ本体の画像
・飛んでいる飛び道具の画像
・当たった時の画像

ですね

それを作った上で

今回使う命令、かつ重要なのは

helper
destroyself

です
他にも作る方法はいっぱいありますけど
一番簡単な方法で

helper : ヘルパーを呼び出す為の命令です
destroyself : ヘルパーを消す為の命令です


では組んでみます

仮に、前述した飛び道具を撃つ画像を1000番
飛び道具自体の画像を1010番
飛び道具が消える画像を1020番に登録したとして話を進めます


;まずは飛び道具を打ち出すステートから
[Statedef 1000]
type = S
movetype = A
physics = S
anim = 1000

[State 1000]
type = Helper
trigger1 = time = 10
helpertype = normal ;ここをplayerにすると画面から出られないヘルパーになります
name = "tobidougu";適当で良いですけど分かりやすい名前を付けましょう
ID = 1010
stateno = 1010;飛び道具のステートナンバーです
pos = 0,-40;射出される位置を指定します x,y の並びになってますxは正数で前方、yは正数で下方向になります
postype = p1;どこを基準にposを指定するかを決めています、この場合プレイヤー1ですね
facing = 1
supermovetime = 0
pausemovetime = 0

[State 1000,1]
type = changestate
trigger1 = time = 30
value = 10
ctrl = 1


これで10フレーム目にステート1010番のヘルパーが出現します

ここまでの内容は

・本体が1000番のアニメ
・ステート1010番を、技が始まって10フレーム目に
 Xが0、Yがー40の位置に出現させる
・30フレームで通常モーションに戻る


;次、飛び道具自体のステートです
[Statedef 1010]
type = A
movetype = A
velset = 4,0;速度の指定ですよ
physics = N;ここをNにしとかないと摩擦で止まっちゃいますし、高い位置で出現すると落ちてきます
anim = 1010

[State 1010,1]
type = hitdef
(略)

;ここでhitoverrideを仕込みます、当身されない様にというのが一つ
;誤作動を減らす為ってのも一つ、また、相手の打撃や飛び道具に触れると
;消えるって場合の為ですね
[State 1010,2]
type = hitoverride
trigger1 = 1
attr = SCA,AA,AP,AT
stateno = 1020;消滅用のステートです
time = 1

[State 1010,2]
type = changestate
trigger1 = movecontact = 1;飛び道具が相手に触れた時、というトリガーです
trigger2 = frontedgebodydist < -10;正面の画面端を10ドット通り過ぎた時、というトリガーです
value = 1020;消滅用ステートですね

;この他、timeのトリガーを使って時間で消したりなんか出来ますね


;さて、次は消滅用のステートです
[Statedef 1020]
type = A
movetype = I
velset = 0,0;止めます
physics = N
anim = 1020

[State 1020]
type = destroyself
trigger1 = animtime = 0;アニメーションが終わった時、というトリガーです


はい、以上で完成ですね

見て分かったかもしれませんが
これでストライカーも作れます
ストライカーはもうちょっと複雑で、これの上位版ですね
ストライカーについてはまた後日書く事にして

次はレーザータイプです

まず、レーザータイプの場合
画面端まで貫通する訳ですから、相手に当たっても消えません
今回は消滅用には、レーザーの根っこが通り過ぎる絵を用意しましょう

さて、最初の射出するステートは同じです、問題は
レーザー用のステートですね

元の1010番とどう違うかを見てみましょう


[Statedef 1010]
type = A
movetype = A
velset = 0,0;速度不要です
physics = N
anim = 1010

[State 1010,1]
type = hitdef
(略)、ですが

今回は

ground.cornerpush.veloff = 0
air.cornerpush.veloff = 0
down.cornerpush.veloff = 0
guard.cornerpush.veloff = 0
airguard.cornerpush.veloff = 0

これをhitdefに付け加えましょう
地上で、空中で、地上ガードで、空中ガードで
画面端で相手にガードされた時押し戻される速度を指定する命令です

これが無いと当てたらレーザーが押し戻されちゃいますよ

[State 1010,2]
type = hitoverride
trigger1 = 1
attr = SCA,AA,AP,AT
stateno = 1020;消滅用のステートです
time = 1

[State 1010,2]
type = changestate
trigger1 = time = 30;この場合、相手に当たって消える、とか、画面端で消える、とかは不要ですね
value = 1020;消滅用ステートですね


次の消滅ステートも同じでOKです
(絵は一緒じゃ駄目ですよ、念の為)


これでレーザーも完成です


当身とかに比べたら大分簡単ですよね
これを覚えれば、ストライカーの呼び出しも出来るようになります

拍手[1回]

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新記事
(04/22)
(04/17)
(04/01)
(03/19)
(11/05)
ブログ内検索
最新コメント
[11/26 ななし]
最新トラックバック
プロフィール
HN:
カス
HP:
自己紹介:
臨海のハチャメチャファイター、ご飯を食べてウンコに変える錬金術師、絵とか描く
アクセス解析
カンダタ

Copyright © [ 描く打ち ] All rights reserved.
Special Template : 忍者ブログ de テンプレート
Special Thanks : 忍者ブログ
Commercial message : [PR]