MUGENのステージ作成例
まぁ、こんな感じで記述すれば、ちと処理も軽くなる?かなぁ?
以上、PosSet応用編でした。
元ネタはこちら
こんどは、ちゃんと表示
出来てるみたいですね。
じゃあ、これならどうでしょう?(間隔はいいかげんです)
[BG 01];;アンドア・ジェネシス
type = anim
ActionNo = 1
layerNo = 0
start = 0,0
delta = 1
trans = None
mask = 1
id=1
[Begin action 1]
2,2, 0,0, 20
2,5, 0,0, 20
[BG 01];;アンドア・ジェネシス
type = anim
ActionNo = 2
layerNo = 0
start = 320,0
delta = 1
trans = None
mask = 1
id=2
[Begin action 2]
2,2, 0,0, 20
2,5, 0,0, 20
[BG 01];;アンドア・ジェネシス
type = anim
ActionNo = 3
layerNo = 0
start = 640,0
delta = 1
trans = None
mask = 1
id=3
[Begin action 3]
2,2, 0,0, 20
2,5, 0,0, 20
[bgctrldef 1]
CtrlID = 1
loopTime = 450
[BGCtrl 10]
type = posset
time = 0
x=0
[BGCtrl 1]
type = velset
time = 0
x = -2
[bgctrldef 2]
CtrlID = 2
loopTime = 900
[BGCtrl 10]
type = posset
time = 0
x=0
[BGCtrl 1]
type = velset
time = 0
x = -2
[bgctrldef 3]
CtrlID = 3
loopTime = 1350
[BGCtrl 10]
type = posset
time = 0
x=0
[BGCtrl 1]
type = velset
time = 0
x = -2
今度はどうでしょうか?
ん??バグってるのが
おわかりでしょうか??
そうです、アニメかけると処理
が追いつかなくなりこのような
2つスプライトが重なってくるなど・・。
ほかの処理を重くする原因と
重なると「消える」という現象
に陥るみたいです。(処理落ち)
[BG 1-1];;;背景
type = normal
spriteno = 1, 1
layerno = 0
start = 0,0
delta = 1
trans = none
mask = 1
[BG 01]
;;アンドア・ジェネシス
type = anim
ActionNo = 1
layerNo = 0
start = 0,0
delta = 1
trans = None
mask = 1
tile = 1,0
tilespacing = 320,0 ;タイル化した画像同士の間隔。
velocity = -2,0 ;画像の移動速度
[Begin action 1]
2,2, 0,0, 20
2,5, 0,0, 20
今度は同じネタでanimしながら、タイルしてみましょう。
ちゃんとタイル表示できてますね。
[BG 1-1];;;背景
type = normal
spriteno = 1, 1
layerno = 0
start = 0,0
delta = 1
trans = none
mask = 1
[BG 1-1]; ;;アンドア・ジェネシス
type = normal
spriteno = 2, 2
layerno = 0
start = 0,0
delta = 1
trans = none
mask = 1
tile = 1,0
tilespacing = 640,0 ;タイル化した画像同士の間隔。
velocity = -2,0 ;画像の移動速度
*******タイルに関する考察*******
実験としてこういうステージを作ってみました。
tipe=normalでの200*200のアンドア・ジェネシスのタイルループ
[BGCtrl] type = Possetの応用
[BG 9-1];;支柱奥
type = normal
spriteno = 9, 1
layerno = 0
start = 20,0 ;;;登録位置は画面外にしてある。
delta = 1,1 ;;;;視差ほんとは少しぐらいあるがあんまり意味がないので1
trans = None
mask = 1
ID=3
[BG 9-1];;支柱前
type = normal
spriteno = 9, 2
layerno = 1 ;;;キャラより手前なので1
start = -120,0
delta = 1,1
trans = None
mask = 1
ID=4
;;支柱
[bgctrldef 1]
looptime = 100 ;;支柱が右画面外から左画面外に通りすぎる時間(ループ)
ctrlid = 3,4
;;;支柱奥
[bgctrl 1]
type = posset ;;ループしてtimeが0の時点で位置が画面右外(初期位置)
time = 0
x = 0
ctrlid = 3
[bgctrl 1-1]
type = velset
time = 1
x = -10 ;;timeが1になると左に10の速さですすむ。
ctrlid = 3
;------------------
;;;支柱手前
[BGCtrl 2-1]
type = posset
time = 0
x = 280 ;;;time=0で奥支柱よりも右にセットされる。
ctrlid = 4
[BGCtrl 2-4]
type = velset
time = 1
x = -12
;;time=1で左に12の速さですすむ。
ctrlid = 4
;;この感じで右画面外から左に進んでゆき、左画面外になったら
;リセットされて、また右から左に進んでいきます。
;この書き方なら、奥の支柱を手前が追い越すことはありません。
さて、まずこちらの画像をご覧ください。
画面はCVS2000proのトレインステージですが、
設定は列車の上での戦いという設定になっています。
足場の奥と手前を通り過ぎる、ポール?にご注目ください。
キャラ位置より手前、と奥の支柱の速度は違います。
奥より手前の方が速度を速めに設定してあります。(自然にみえる)
で、この場合の記述の仕方です。
ぱっと見、「"タイル"かけてループすりゃいいんじゃないの?」と思いがち
ですが、この場合支柱が二本速度が違うというのがネックになってきます。
タイリングした場合、手前の支柱のほうが速度が速いのですから
何回もループするといずれ、追い越してしまう、ということになります。
そこで、書き方です。