Space Tunnel - SoraMame Script
公式Web
Samples
うごかす
とめる
わける
へんかん
//横スクロール型デモ //Copyright 2012 Yutaka Kachi //MIT License /* @pjs preload="space_tunnel/dot.gif"; */ /* @pjs preload="space_tunnel/enemy.gif"; */ /* @pjs preload="space_tunnel/ship.gif"; */ @開始フラグは正否型 = $否 @天井yは整数型 @床面yは整数型 @星_個数は整数型 = 20 @星は星型[] = 新しい星型[@星_個数] @敵_個数は整数型 = 8 @敵は敵型[] = 新しい敵型[@敵_個数] @星イメージはPイメージ型 @敵イメージはPイメージ型 @船イメージはPイメージ型 ---初期設定する{ {幅:300, 高さ:300}のサイズ @天井y = 60 @床面y = @高さ - 80 {開始:@iは整数型 = 0 , 条件:@i < @星_個数 ,変化:@i += 1}のくりかえし{ @星[@i] = 新しい星型 } {開始:@iは整数型 = 0 , 条件:@i < @敵_個数 ,変化:@i += 1}のくりかえし{ @敵[@i] = 新しい敵型 } @星イメージ = {ファイル:「space_tunnel/dot.gif」}でイメージ読み込みする @敵イメージ = {ファイル:「space_tunnel/enemy.gif」}でイメージ読み込みする @船イメージ = {ファイル:「space_tunnel/ship.gif」}でイメージ読み込みする {色:0}の背景色 画面表示する {R:255, G:0, B:0}の塗りつぶし色 {もじ:「
」}を{X:@幅 / 3 + 5, Y:@床面y + 50}にもじ表示する } ---くり返し描画する{ もし{条件:@開始フラグ == $正}ならば{ {色:0}の背景色 トンネル調整する {開始:@iは整数型 = 0 , 条件:@i < @星_個数 ,変化:@i += 1}のくりかえし{ @星[@i]、移動する @星[@i]、描く } {開始:@iは整数型 = 0 , 条件:@i < @敵_個数 ,変化:@i += 1}のくりかえし{ @敵[@i]、移動する @敵[@i]、描く } 画面表示する 船表示する } } ---画面表示する{ //上下のバー {R:0, G:120, B:120}の塗りつぶし色 輪郭なし {x:0, y:@天井y - 10}に{幅:@幅, 高さ:10}のシカク {x:0, y:@床面y}に{幅:@幅, 高さ:10}のシカク //バー上面の明るい線 {R:0, G:200, B:200}の輪郭色 {x:0, y:@天井y - 10}に{幅:@幅, 高さ:@天井y - 10}のセン {x:0, y:@床面y}に{幅:@幅, 高さ:@床面y}のセン //バー下面の明るい線 {R:70, G:70, B:70}の輪郭色 {x:0, y:@天井y}に{幅:@幅, 高さ:@天井y}のセン {x:0, y:@床面y + 10}に{幅:@幅, 高さ:@床面y + 10}のセン //上部タイトル {R:0, G:255, B:255}の塗りつぶし色 {もじ:「Space Tunnel」}を{X:@幅 / 3 + 10, Y:30}にもじ表示する //ドラッグエリア 塗りつぶしなし {R:0, G:120, B:120}の輪郭色 {x:10, y:@床面y + 20}に{幅:@幅 - 20, 高さ:@高さ - @床面y - 35 }のシカク } ---クリック時{ @開始フラグ = $正 } ---船表示する{ @クリック領域y = @床面y + 20 もし{条件:@マウスy < @クリック領域y}ならば{ @マウスy2 = 0 } ちがえば { @マウスy2 = @マウスy - @クリック領域y } @船位置y = @マウスy2 / (@高さ - @クリック領域y) * (@床面y - 12 - @天井y ) + @天井y {対象:@船イメージ}で{x:@マウスx, y:@船位置y}にイメージ表示する } ---トンネル調整する{ @天井差分y = (@幅/2 - @マウスx) / @幅 * 30 @天井y = 60 + @天井差分y @床面差分y = (@幅/2 - @マウスx) / @幅 * 40 @床面y = @高さ - 80 - @床面差分y } ===星型{ @位置xは実数型 @位置yは実数型 @速度は実数型 +++星型{ 初期化する @位置x = {下限:@幅, 上限:@幅 * 2}の乱数 } ---移動する{ @位置x -= @速度 もし{条件:@位置x <= 0}ならば{ 初期化する } } ---描く{ もし{条件:(@位置y >= @天井y)&&(@位置y <= @床面y)}ならば{ {対象:@星イメージ}で{x:@位置x, y:@位置y}にイメージ表示する } } ---初期化する{ @位置x = @幅 @位置y = {下限:@天井y, 上限:@床面y}の乱数 @速度 = {上限:0.5}の乱数 + 0.5 } } ===敵型{ @位置xは実数型 @位置yは実数型 @速度xは実数型 @速度yは実数型 @方向yは整数型 +++敵型{ 初期化する @位置x = {下限:@幅, 上限:@幅 * 2}の乱数 } ---移動する{ @位置x -= @速度x もし{条件:@位置x <= -20}ならば{ 初期化する } @位置y += @方向y * @速度y もし{条件:@位置y < @天井y}ならば{ @方向y = 1 } もし{条件:@位置y > @床面y - 14}ならば{ @方向y = -1 @位置y = @床面y - 14 } } ---描く{ {対象:@敵イメージ}で{x:@位置x, y:@位置y}にイメージ表示する } ---初期化する{ @位置x = @幅 @位置y = {下限:@天井y, 上限:@床面y - 14}の乱数 @速度x = {上限:1}の乱数 + 1 @速度y = {上限:0.5}の乱数 + 0.2 @方向y = 1 もし{条件:{上限:10}の乱数 > 5}ならば{ @方向y = -1 } } }
変換コード