MUGENのこととかいろいろ
未分類 | AI関連 | パレット | ポトレ | キャラ紹介 | MUGEN以外 | AI講座的なもの | その他 | キャラ | 
名の無限
≪2017.06  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 31  2017.08≫
プロフィール

名無し/Nanashi

Author:名無し/Nanashi
MUGENのAIをつくったり

あと自分が他所で名前出すときはこの呼び名に統一します。
他の方が呼ぶ分には名無しで構いません。

公開中のブツのリストなど

AI講座一覧

このブログはリンクフリーです。お気軽にどうぞ。

↓バナー


最新記事
Twitter
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
FC2カウンター
現在の閲覧者数:
検索フォーム
リンク
ブロとも申請フォーム
QRコード
QRコード
--.--.-- --
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告    Top↑

2010.07.01 Thu
:=について
「:=」を使った代入式について




:=を使うと、VarSetを使わずに各ステコンの内部でVar代入が可能です。

基本は、 var() := ○ の書いてあるそれまでのtriggerを満たしているときに、
var() に ○ が代入されるようになっています。


例としては

[State -1, 1]
type = ChangeState
value = 1000
triggerall = RoundState = 2 && var(59) > 0
triggerall = !ishelper && p2dist x >= 0
triggerall = alive && enemynear(var(51)),alive
triggerall = statetype != A && statetype != L
triggerall = p2statetype != L && (ctrl || stateno = [100,101])
triggerall = random%3=0
trigger1 = p2bodydist x = [55,125]
trigger1 = var(2) := 0 || 1 ;条件をみたすときVar(2)に0を代入
trigger2 = p2bodydist x = [125,215]
trigger2 = var(2) := 1 ;条件をみたすときにVar(2)に1を代入

というふうに使います。



0を代入してる部分は、

triggerall = RoundState = 2 && var(59) > 0
triggerall = !ishelper && p2dist x >= 0
triggerall = alive && enemynear(var(51)),alive
triggerall = statetype != A && statetype != L
triggerall = p2statetype != L && (ctrl || stateno = [100,101])
triggerall = random%3=0



trigger1 = p2bodydist x = [55,125]

までの条件が満ちているときに、Var(2)に0を代入しています。



1を代入してる部分は、

triggerall = RoundState = 2 && var(59) > 0
triggerall = !ishelper && p2dist x >= 0
triggerall = alive && enemynear(var(51)),alive
triggerall = statetype != A && statetype != L
triggerall = p2statetype != L && (ctrl || stateno = [100,101])
triggerall = random%3=0



trigger2 = p2bodydist x = [125,215]

までの条件が満ちているときに、Var(2)に1を代入しています


その上でChangeStateを行ないますが、:=を使用している部分もChangeStateの条件の一部なので、

var(2) := ○ の○の部分が1以上でないとChangeStateは行われません。


0を代入したい場合、条件が負扱いになるのを防ぐために「|| 1」を付け加えておきましょう



ちなみに上の記述は、Var(2)が0か1かで技の強弱を判断してるキャラのAIに技を振らせる時の記述で、

ステート側での元々のVar分岐記述にVar(59)<=0を入れておけば、このようにChangeState側で強弱を指定することが出来ます。




もちろん代入式の := ○ の○の部分を複雑化することもできるので、

上の記述を

[State -1, 1]
type = ChangeState
value = 1000
triggerall = RoundState = 2 && var(59) > 0
triggerall = !ishelper && p2dist x >= 0
triggerall = alive && enemynear(var(51)),alive
triggerall = statetype != A && statetype != L
triggerall = p2statetype != L && (ctrl || stateno = [100,101])
triggerall = random%3=0
trigger1 = p2bodydist x = [55,215]
trigger1 = var(2) := ifelse(p2bodydist x <= 125,0,1) || 1

みたいに短縮したりも出来ます。


またどのステコンでも共通で使えるので、

[State -1, 1]
type = Null
value = 1000
triggerall = !ishelper
trigger1 = var(55) := (任意の数) || 1

というふうにNullに使って、単なるVarSetの代わりのスイッチにも使えます。





こちらでやってるChangeState記述短縮のもこの代入式を多用しています。

初めはややこしいですが、代入式を覚えると単純に記述量が少なくなって楽になるので、
興味があったら使い始めてみるといいかもしれません


まぁ覚えなくても別に困らないですがw

スポンサーサイト

AI講座的なもの    Comment(0)   TrackBack(0)   Top↑

Comment

管理者にだけ表示を許可する

Top↑

TrackBack
TrackBackURL
http://nanomugen644.blog54.fc2.com/tb.php/178-067668a4

Top↑

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。