地震発生インクルード(ただし微妙
あんまり些細なことでもトラックバックを送るべきかどうか悩んだ結果、やっぱり些細なことなんで送らないことに。
どの程度から「言及」と言えるのだろうか、今一わからなかったり。
というわけで、元ネタはtonkatiさんのBlogから、簡単に地震発生インクルードを作ってみた。
作った僕自身が言うのだから間違いない。このインクルードは微妙である。
こういうのは、インクルード化せずにシナリオ内で随時調節したほうがいい、というのが僕の持論となりました。そのほうがいくらでも融通が利くしね。
一応以下にソース晒し。この微妙さかげんは実際に実行してみるとよくわかる。
# 書式1:地震インクルード X Y 表示時間 揺れのWaitTime 地震の揺れ幅 # 書式2:地震インクルード UnitID 表示時間 揺れのWaitTime 地震の揺れ幅 地震インクルード: Local CenterX CenterY ExeTime SwingLevel SwingWidth StartTime # 引数がX,Y座標指定なら If IsNumeric(Args(1)) Then CenterX = Args(1) CenterY = Args(2) # 表示時間が指定されていたら If ArgNum > 2 Then ExeTime = Args(3) Else ExeTime = 20 Endif # 揺れのWaitTimeが指定されていたら If ArgNum > 3 Then SwingLevel = 1 / Args(4) Else SwingLevel = 1 Endif # 地震の揺れ幅が指定されていたら If ArgNum > 4 Then SwingWidth = Args(5) Else SwingWidth = 1 Endif # 引数がユニットID指定なら Else CenterX = X(Args(1)) CenterY = Y(Args(1)) # 表示時間が指定されていたら If ArgNum > 1 Then ExeTime = Args(2) Else ExeTime = 20 Endif # 揺れのWaitTimeが指定されていたら If ArgNum > 2 Then SwingLevel = 1 / Args(3) Else SwingLevel = 1 Endif # 地震の揺れ幅が指定されていたら If ArgNum > 3 Then SwingWidth = Args(4) Else SwingWidth = 1 Endif Endif StartTime = Now Do While ( DiffTime(StartTime, Now) < (ExeTime / 10) ) Center (CenterX + SwingWidth) CenterY Wait SwingLevel Center (CenterX - SwingWidth) CenterY Wait SwingLevel Center CenterX CenterY Wait (4 + SwingLevel) Loop Return