Space Warp - SoraMame Script
公式Web
Samples
うごかす
とめる
わける
へんかん
//古典的なスペースワーププログラム //Copyright 2012 Yutaka Kachi //MIT License @速度は実数型 = 0.005 @星数は整数型 = 300 @星0は星型[] = 新しい星型[@星数] @中心xは整数型 @中心yは整数型 @サークル半径は整数型 = 130 ---初期設定する{ {幅:300, 高さ:300}のサイズ {ミリ秒:20}のコマ数 @中心x = @幅 / 2 @中心y = @高さ / 2 {開始:@iは整数型 = 0, 条件:@i < @星数, 変化:@i+=1}のくりかえし{ @星0[@i] = 新しい星型 } } ---くり返し描画する{ //{色:0}の背景色 {色:255}の背景色 サークル描く {開始:@iは整数型 = 0, 条件:@i < @星数, 変化:@i+=1}のくりかえし{ @xxは実数 = @星0[@i]の@x * @幅 / 2 + (@幅 - @マウスx) @yyは実数 = @星0[@i]の@y * @高さ / 2 + (@高さ - @マウスy) {色:255}の塗りつぶし色 輪郭なし {x:@xx, y:@yy}に{幅:2, 高さ:2}のマル @星0[@i]、移動する } {位置:@マウスx, 範囲:@幅}で三角マーカー {位置:(@幅 - @マウスy), 範囲:@高さ}で三角マーカー メッセージ描く } ---サークル描く{ {色:0}の塗りつぶし色 輪郭なし {x:@中心x, y:@中心y}に{幅:(@サークル半径 * 2 - 10),高さ:(@サークル半径 * 2 - 10)}のマル 塗りつぶしなし {色:0}の輪郭色 {x:@中心x, y:@中心y}に{幅:@サークル半径 * 2,高さ:@サークル半径 * 2}のマル } ===星型{ @角度は実数型 //星の角度(極座標) @距離は実数型 //星の距離(極座標) @経過時間は整数型 //生成してからの時間 @xは実数型 //星の現在位置x @yは実数型 //星の現在位置y //コンストラクタ +++星型{ 初期化する } ---移動する{ @経過時間 += @速度 @表示距離は実数 = @経過時間 / @距離 @x = @表示距離 * {角度:@角度}でCos @y = @表示距離 * {角度:@角度}でSin もし{条件:(@x < -2) || (@x > 2) || (@y > 2) || (@y < -2)}ならば{ 初期化する } } ---初期化する{ @角度 = {上限:$TWO_PI}の乱数 @距離 = {上限:1}の乱数 @経過時間 = 0.1 } } ---メッセージ描く{ {色:0}の塗りつぶし色 {テキスト:「SPACE WARP」}を{x:5, y:10}にもじ表示する {テキスト:@星0[1]の@角度}を{x:5, y:25}にもじ表示する {テキスト:@星0[1]の@経過時間}を{x:40, y:25}にもじ表示する } ---{位置:@xは実数型, 範囲:@lは実数型}で三角マーカー{ @角度xは実数型 = @x / @l * $TWO_PI @円周1xは実数型 = (@サークル半径 + 2) * {角度:@角度x}のSin + @中心x @円周1yは実数型 = (@サークル半径 + 2) * {角度:@角度x}のCos + @中心y @頂点1axは実数型 = (@サークル半径 + 10) * {角度:(@角度x + $PI / 36)}のSin + @中心x @頂点1ayは実数型 = (@サークル半径 + 10) * {角度:(@角度x + $PI / 36)}のCos + @中心x @頂点1bxは実数型 = (@サークル半径 + 10) * {角度:(@角度x - $PI / 36)}のSin + @中心x @頂点1byは実数型 = (@サークル半径 + 10) * {角度:(@角度x - $PI / 36)}のCos + @中心x {色:255}の塗りつぶし色 {色:0}の輪郭色 {x:@円周1x, y:@円周1y}と{x:@頂点1ax, y:@頂点1ay}と{x:@頂点1bx, y:@頂点1by}とサンカク }
変換コード