※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!

wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)

 notice: Flash editor updated! Join the development! Thanks to MiniBuilder


forked from : keim_at_Si's Super Mario Synthesizer (Data not completed) [diff(160)]

FAVORITE BY
:
ハマっちゃった
:
:
スコア表示希望
:
これは楽しい!
:
斬新
:
SiONむずかしい
:
gamesionたのしー
:
難しー
:
超絶むずい
FORKED
  1. // forked from miyaoka's Super Mario Cave
  2. // forked from keim_at_Si's Super Mario Synthesizer (Data not completed)
  3. // BGMs are from TSSCP threads.
  4. // SEs are from http://mmltalks.appspot.com/mml/e781c745d6bac989bc13ce18dd5f4ccfb09c78cf
  5. // Translated from http://dic.nicovideo.jp/mml_id/1868
  6. package {
  7.     import flash.display.*;
  8.     import flash.events.*;
  9.     import flash.geom.*;
  10.     import flash.net.URLRequest;
  11.     import flash.system.LoaderContext;
  12.     import flash.utils.ByteArray;
  13.     import flash.utils.Timer;
  14.     import org.si.sion.*;
  15.     import com.bit101.components.*;
  16.     import caurina.transitions.Tweener;
  17.     
  18.     [SWF(backgroundColor='#ffffff', frameRate='60')]
  19.     public class SuperMarioCave2 extends Sprite {
  20.         public var driver:SiONDriver = new SiONDriver();
  21.         public var sounds:SuperMarioSound = new SuperMarioSound();
  22.         
  23.         private var SW:Number = 465;
  24.         private var SH:Number = 465;
  25.         private var perlinPhase:Number = 0;
  26.         private var thPhase:Number = 0;
  27.         private var scroll:Number = 1;
  28.         private var scale:Number = 0.5;
  29.         private var bg:BitmapData = new BitmapData(SW * scale, SH * scale);
  30.         private var trail:BitmapData = new BitmapData(SW, SH, true, 0x00000000);
  31.         private var ct:ColorTransform = new ColorTransform(1111, 0x00, 0xcf, 0xff);
  32.         public var threshold:uint = 0xff;
  33.         public var xPos:Number = 150;
  34.         private var yPos:Number;
  35.         private var yMove:Number;
  36.         public var yAccel:Number = 0.2;
  37.         private var yVct:Number;
  38.         private var perlinX:Number;
  39.         private var perlinY:Number;
  40.         private var imgs:Array = [];
  41.         private var charaSp:Sprite = new Sprite();
  42.         private var powerTimer:Timer;
  43.         
  44.         function SuperMarioCave2() {
  45.             mediaLoad(init);
  46.         }
  47.         private function init():void 
  48.         {
  49.             driver.bpm = 200;
  50.             driver.play();
  51.             
  52.             var bmp:Bitmap = new Bitmap(bg);
  53.             bmp.scaleX = bmp.scaleY = 1 / scale;
  54.             addChild(bmp);
  55.             addChild(new Bitmap(trail));
  56.             
  57.             var charabmp:Bitmap = new Bitmap(Bitmap(imgs[0]).bitmapData.clone());
  58.             charaSp.addChild(charabmp);
  59.             charabmp.x = -charabmp.width / 2;
  60.             charabmp.y = -charabmp.height / 2;
  61.             addChild(charaSp);
  62.             
  63.             powerTimer = new Timer(50000);
  64.             powerTimer.addEventListener(TimerEvent.TIMER, function():void { powerUp()});
  65.             addEventListener(Event.ENTER_FRAME, scrollDrawHandler);
  66.             stageInit();
  67.             
  68.         }
  69.         private function powerUp():void 
  70.         {
  71.             driver.sequenceOn(sounds.powerup , null000);
  72.             Tweener.addTween(charaSp, {
  73.                 scaleX: charaSp.scaleX * 2,
  74.                 scaleY: charaSp.scaleY * 2,
  75.                 time : 1.0
  76.             });
  77.         }
  78.         private function powerDown():void 
  79.         {
  80.             
  81.         }        
  82.         private function stageInit():void 
  83.         {
  84.             yPos = SH * 0.2;
  85.             yMove = 0;
  86.             yVct = 1;
  87.             alpha = 1;
  88.             threshold = 0xff;
  89.             xPos = 0;
  90.             
  91.             Bitmap(charaSp.getChildAt(0)).bitmapData = Bitmap(imgs[Math.floor(Math.random()*imgs.length)]).bitmapData.clone();
  92.             charaSp.x = -100;
  93.             charaSp.rotation = 0;
  94.             charaSp.width = charaSp.height = 32;
  95.             powerTimer.start();
  96.             
  97.             scroll = 3//1 + Math.floor(Math.random() * 2);
  98.             
  99.             perlinX = Math.random() * 0.4 + 0.2;
  100.             perlinY = Math.random() * 0.4 + 0.2;
  101.             yAccel = 0;
  102.             driver.play(sounds.mario1);
  103.             Tweener.addTween(this, {
  104.                 xPos: 150,
  105.                 threshold: 0x50,
  106.                 time: 6.0,
  107.                 yAccel: scroll * 0.06
  108.             });
  109.             stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  110.             addEventListener(Event.ENTER_FRAME, crashCheckHandler);
  111.             addEventListener(Event.ENTER_FRAME, thPhaseHandler);
  112.             
  113.         }
  114.         private function thPhaseHandler(e:Event):void 
  115.         {
  116.             thPhase += Math.PI * 0.01;
  117.         }
  118.         private function mouseDownHandler(e:MouseEvent):void 
  119.         {
  120.             yMove = -yAccel*10;
  121.             yVct = -1;
  122.             driver.sequenceOn(sounds.jump , null000);
  123.             
  124.             stage.addEventListener(MouseEvent.MOUSE_UP, function ():void 
  125.             {
  126.                 yVct = 1;
  127.             });
  128.         }
  129.         private function scrollDrawHandler(e:Event):void 
  130.         {
  131.             bg.lock();
  132.             bg.perlinNoise(SW * perlinX * scale, SH * perlinY * scale, 11falsefalse1true, [new Point(perlinPhase += scroll * scale, 0)]);
  133.             bg.colorTransform(bg.rect, ct);
  134.             bg.threshold(bg, bg.rect, bg.rect.topLeft, ">", 0xff << 24 |
  135.             Math.max(0, Math.min(0xff, (threshold + Math.sin(thPhase) * 0x08))) << 16, 0xffffffff);
  136.             bg.unlock();
  137.             
  138.             var sh:Shape = new Shape();
  139.             var g:Graphics = sh.graphics;
  140.             g.moveTo(xPos -scroll, yPos)
  141.             
  142.             yPos += yMove;
  143.             yMove += yAccel * yVct;
  144.             
  145.             g.lineStyle(5, 0xffffff * Math.random());
  146.             g.lineTo(xPos, yPos);
  147.             charaSp.x = xPos;
  148.             charaSp.y = yPos;
  149.             charaSp.rotation = Math.atan2(yMove, scroll) * 180 / Math.PI + 90;
  150.             
  151.             trail.lock();
  152.             trail.scroll( -scroll, 0);
  153.             trail.draw(sh);
  154. //            trail.setPixel32(xPos, yPos, 0xff000000);
  155.             trail.unlock();
  156.         }
  157.         private function crashCheckHandler(e:Event):void 
  158.         {
  159.             if (yPos < -50 || yPos > SH || bg.getPixel(xPos * scale, yPos * scale) == 0xffffff)
  160.             {
  161.                 driver.play(sounds.miss);
  162.                 yMove = -yAccel * 30;
  163.                 stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  164.                 removeEventListener(Event.ENTER_FRAME, crashCheckHandler);
  165.                 removeEventListener(Event.ENTER_FRAME, thPhaseHandler);
  166.                 thPhase = 0;
  167.                 powerTimer.stop();
  168.                 
  169.                 Tweener.addTween(this, {
  170.                     time: 3.0,
  171.                     alpha: 0.0,
  172.                     threshold: 0x00,
  173.                     transition: "easeInOutCubic",
  174.                     onComplete: stageInit
  175.                 });
  176.             }
  177.         }
  178.         private function mediaLoad(func:Function):void 
  179.         {
  180.             var sh:Shape = new Shape();
  181.             addChild(sh);
  182.             var g:Graphics = sh.graphics;
  183.             g.beginFill(0xdddddd);
  184.             g.drawRect(00, stage.stageWidth, stage.stageHeight);
  185.             var urls:Array = 
  186. [
  187. "http://farm3.static.flickr.com/2650/3839496010_96de330537_o.png"//pem
  188. "http://farm3.static.flickr.com/2444/3839495982_12d0e4ecc8_o.png"//piyo
  189. "http://farm3.static.flickr.com/2608/3839475460_66c5e7637e_o.png" //achamo
  190. //"http://farm4.static.flickr.com/3467/3839485958_a7572aeb61_o.png", //ahiru
  191. //"http://farm3.static.flickr.com/2440/3838696725_a921833d70_o.png" //neko
  192. ];
  193.             var pb:ProgressBar = new ProgressBar(this, stage.stageWidth / 2 - 100, stage.stageHeight / 2);
  194.             pb.width = 200;
  195.             pb.maximum = urls.length;
  196.             pb.value = 0;
  197.             var lb:Label = new Label(this, pb.x, pb.y - 20"loading...");
  198.             var date:String = new Date().valueOf().toString();
  199.                 
  200.             for (var i:int = 0; i < pb.maximum; i++)
  201.             {
  202.                 var loader:Loader = new Loader();
  203.                 loader.name = i.toString();        
  204.                 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (e:Event):void 
  205.                 {
  206.                     imgs[int(e.target.loader.name)] = e.target.loader.content as Bitmap;
  207.                     pb.value++;
  208.                     lb.text = pb.value.toString() + " / " + pb.maximum.toString();
  209.                     if (pb.value == pb.maximum)
  210.                     {
  211.                         lb.text = "loaded.";
  212.                         Tweener.addTween(sh, {
  213.                             time:0.4,
  214.                             alpha:0,
  215.                             transition: "easeInOutCubic",
  216.                             onComplete:function() :void {
  217.                                 removeChild(sh);
  218.                                 removeChild(pb);
  219.                                 pb = null;
  220.                                 removeChild(lb);
  221.                                 lb = null;
  222.                                 func();
  223.                             }
  224.                         });
  225.                     }
  226.                 });
  227.                 loader.load(new URLRequest(urls[i] + "?" + Math.random().toString()), new LoaderContext(true));
  228.             }            
  229.         }
  230.     }
  231. }
  232. import org.si.sion.*;
  233. // this instanse have to be created after creating SiONDrivers instance.
  234. // All SiONData are in bpm of 200.
  235. class SuperMarioSound {
  236.     // bgm
  237.     public var mario1:SiONData;
  238.     public var mario2:SiONData;
  239.     public var mario2start:SiONData;
  240.     public var mario4:SiONData;
  241.     public var areaclear:SiONData;
  242.     public var hurryup:SiONData;
  243.     public var miss:SiONData;
  244.     public var gameover:SiONData;
  245.     
  246.     // sound effect
  247.     public var block:SiONData;
  248.     public var item:SiONData;
  249.     public var iteml:SiONData;
  250.     public var powerup:SiONData;
  251.     public var jump:SiONData;
  252.     public var jumpl:SiONData;
  253.     public var poke:SiONData;
  254.     public var fumi:SiONData;
  255.     public var dom:SiONData;
  256.     public var fire:SiONData;
  257.     public var cion:SiONData;
  258.     public var extend:SiONData;
  259.     public var warp:SiONData;
  260.     public var goal:SiONData;
  261.     public var bonus:SiONData;
  262.     public var firework:SiONData;
  263.     
  264.     
  265.     function SuperMarioSound() {
  266.         var driver:SiONDriver = SiONDriver.mutex;
  267.         var header:String, mml:String;
  268.         header = "t200;#EFFECT0{speaker20};";
  269.         
  270.         // The following 4 lines are avoiding bugs in curren version. 
  271.         // In this version, the sequenceOn() function cannot refer tables in the SiONData, 
  272.         // so we have to define all tables on main SiONData played by SiONDriver.play().
  273.         // In new version(0.57), the sequenceOn() function can refer the tables in SiONData and following mmls are not requeired.
  274.         header += "#TABLE0{(0,128)8};#TABLE1{(0,384)8};#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};";
  275.         header += "#TABLE4{(0,-1280)4};#TABLE5{(0,-1280)6};#TABLE6{(0,-2560)6};#TABLE7{(0,36)36};";
  276.         header += "#TABLE8{14,0,13,0,13,0,12,0,12,,11,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,5,0,5}*8+31;";
  277.         header += "#TABLE9{12,6,13,8,13,3,9,10,15,12,6,11,13,14};";
  278.         
  279.         // MML from TSSCP thread dtm 1-564 modifyed
  280.         mml = header;
  281.         mml += "#A=o6eerercer grrr>grrr;";
  282.         mml += "#B=o6[2crr>grrer rarbra+ar gr24<er24gr24arfg rercd>brr];";
  283.         mml += "#C=o6[2[2rrgf+fd+re r>g+a<cr>a<cd |rrgf+fd+re r<crccrrr]>rrd+rrdrr crr2.];";
  284.         mml += "#D=o6[2ccrcrcdr ecr>agrrr |<ccrcrcde r1];";
  285.         mml += "#E=o6[2ecr>grrg+r a<frf>arrr |br24<ar24ar24ar24gr24fr24 ecr>agrrr]b<frffr24er24dr24 crr2.;";
  286.         mml += "#F=o5f+f+rf+rf+f+r brr2.;";
  287.         mml += "#G=o5[2errcrr>gr r<crdrc+cr cr24gr24br24<cr>ab rarefdrr];";
  288.         mml += "#H=o6[2[2rred+d>br<c r>efgrcef |<rred+d>br<c rfrffrrr]>rrg+rrfrr err2.<];";
  289.         mml += "#I=o5[2g+g+rg+rg+a+r gerecrrr |g+g+rg+rg+a+g r1];";
  290.         mml += "#J=o6[2c>arerrer f<crc>frrr |gr24<fr24fr24fr24er24dr24 c>arferrr]g<drddr24cr24>br24 gerecrrr;";
  291.         mml += "#K=o4ddrdrddr <grrr>grrr;";
  292.         mml += "#L=o4[2grrerrcr rfrgrf+fr er24<cr24er24frde rcr>abgrr];"
  293.         mml += "#M=o4[2[2crrgrr<cr >frr<ccr>fr |crrerrg<c r<grggr>>gr]crg+rra+rr <crr>ggrcr];";
  294.         mml += "#N=o3[3g+rr<d+rrg+r grrcrr>gr];";
  295.         mml += "#O=o4[2crrf+gr<cr >frfr<cc>fr |drrfgrbr grgr<cc>gr]grrggr24ar24br24 <cr>grcrrr;";
  296.         mml += "#X=v15o1q1s38g16r8.;#Y=v10o5q1s36c16;#Z=v8o5q5s34c8r8;";
  297.         mml += "#P=ZYrZYrZZrrZYrYrYr;#Q=XYrrYZYrrY;#R=Yr4rYrZYr8.;";
  298.         mml += "t200;%0@0l8v10q5s34A$BCDABEEDAE;%0@0l8v10q5s34F$GHIFGJJIFJ;%5@3l8v12q8s63K$LMNKLOONKO;";
  299.         mml += "%2@0l16P$[Q]24[P]4[Q]8[R]16[P]4[R]8;";
  300.         mario1 = driver.compile(mml);
  301.         
  302.         // MML from TSSCP thread dtm 1-115 modifyed
  303.         mml = header;
  304.         mml += "#A=[2c<c>>a<a>a+<a+r2.][2>f<f>d<d>d+<d+r2|r4]d+12d12c+12crd+rdr>g+rgr<c+rl12cf+fea+ag+.Rd+.R>b.Ra+.Ra.Rg+.Rr1.;";
  305.         mml += "%1@4v10q5s34l8o5$A;%1@8v12q8s63l8o4$A;";
  306.         mario2 = driver.compile(mml);
  307.         // MML from TSSCP thread dtm 1-115 modifyed
  308.         mml = header;
  309.         mml += "#Y=v10q1s36c16r16; #Z=v8q5s38o5c8;";
  310.         mml += "%1@4v10q5s34l8o6 eerercergrrr>g r2. s63q8l64o7[e>ad<e>ad>gc>f>a+r16]3;";
  311.         mml += "%1@4v10q5s34l8o5 f+f+rf+rf+f+rb;";
  312.         mml += "%1@8v12q8s63l8o4 ddrdrddr<grrr>g;";
  313.         mml += "%2l8o5 ZrYZrYZrZrrZrYYY;";
  314.         mario2start = driver.compile(mml);
  315.         
  316.         // MML from TSSCP thread dtm 1-115 modifyed
  317.         mml = header;
  318.         mml += "o6l8q1s29r64$r16[2dd-cd-de-dd-][2d-cd-dd-dd-c][2fg-fefee-|e]e16;";
  319.         mml += "o5l16q1s31r64$[2gb-gaga-gagb-gbgb-ga][2f+af+a-f+af+b-f+af+b-f+af+a-]";
  320.         mml += "[2a+<d>a+<e->a+<d>a+<d->a+<d>a+<d->a+<c>a+<d->];%5@0q8s63l2o4$e-1dg-f1eb-aee-e";
  321.         mario4 = driver.compile(mml);
  322.         
  323.         // MML from TSSCP thread dtm 1-864 modifyed
  324.         mml = header;
  325.         mml += "%0s63o6l8c>ge<c>ge<c2.c+>g+f<c+>g+f<c+2.d+>a+g<d+>a+g<d+4.l6fffg1.;";
  326.         mml += "%0s63o5l8ec>g<ec>g<ee16e16eeeefc+>g+<fc+>g+<ff16f16ffffgd+>a+<gd+>a+<gg16g16gl6aaab1.;";
  327.         mml += "%5@3s63q6o4l8c2.cc16c16ccccc+2.c+c+16c+16c+c+c+c+a+gd+a+gd+a+a+16a+16a+<l6cccd1.;";
  328.         areaclear = driver.compile(mml);
  329.         // MML from TSSCP thread dtm 2-805 modifyed
  330.         mml = header;
  331.         mml += "l12%0v8s63q7o5 e<drddr> f<d+rd+d+r> f+<ereer fr f2>;";
  332.         mml += "l12%0v8s63q7o5 >e<g+6g+g+6 >f<a6aa6 >f+<a+6a+a+6 br b2;";
  333.         mml += "l12%3v8s63q6o5 >b<b6bb6 c<c6cc6> c+<c+6c+c+6> >g6 g2 <;";
  334.         hurryup = driver.compile(mml);
  335.         
  336.         mml = header;
  337.         mml += "%1@4s39v14q6l8r^2 b<frff6e6d6cr1;";
  338.         mml += "%1@4s27,-45v14q0l8 o4<b16b16b16r16r^4g<drdd6c6>b6gerecr2;";
  339.         mml += "%1@8s41v16q7l8r^2 o4gr4gg6a6b6<c>grgcr2;";
  340.         miss = driver.compile(mml);
  341.         
  342.         mml = header + "#TABLE10{0,32,64,80,104,128};";
  343.         mml += "%1@4s39v14q7l4na10,1o5e8rc8ro4go5f2f^2e8d8e2;";
  344.         mml += "%1@4s63v14q8l4na10,1o6c8ro5g8rea8.b8a8.g+a+g+g2.;";
  345.         mml += "%5@3s38v16q7l4o4g8re8rcs25f2c+2.c2..;";
  346.         gameover = driver.compile(mml);
  347.         mml = "t200;#TABLE8{14,0,13,0,13,0,12,0,12,,11,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,5,0,5}*8+31;";
  348.         mml += "#TABLE9{12,6,13,8,13,3,9,10,15,12,6,11,13,14};";
  349.         mml += "%1@9s63q8o0na8,1nt9,2c4.^32nantx128";
  350.         block = driver.compile(mml);
  351.         item = driver.compile("t200;#A=cggg+g+c+;%1@4s63q8l64o5A(0)A(1)A(2)A(3)");
  352.         iteml = driver.compile("t200;#A=cggg+g+c+;%1@4s63q8l64o5A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)");
  353.         powerup = driver.compile("t200;%1@2s63q8l32o6c>g<ceg<c>g>g+<cd+g+d+g+b+<d+g+d+>>a+<dfa+fa+<dfa+f64");
  354.         jump = driver.compile("t200;#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};%1@4s63q8o5a32@2na2,2np3,2g2");
  355.         jumpl = driver.compile("t200;#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};%1@4s63q8o5d32@2na2,2np3,2c2");
  356.         poke = driver.compile("t200;%1@4s63l128o5b-<cr16f64");
  357.         fumi = driver.compile("t200;#TABLE0{(0,128)8};#TABLE1{(0,384)8};%1@4s63q8l10na0np1o5a<gnanp");
  358.         dom = driver.compile("t200;#TABLE4{(0,-1280)4};%1@4s63q8l64np4,2o4a-16npc+&d+&f&f+");
  359.         fire = driver.compile("t200;%1@4s63q8l64o4g<g<g<g<g");
  360.         cion = driver.compile("t200;%1@4s63q8l16q0s22o6b<e");
  361.         extend = driver.compile("t200;%1@4s63q0s24l9o7eg<ecdq8s63g");
  362.         warp = driver.compile("t200;%1@4s63q8l64o7[e>ad<e>ad>gc>f>a+r16]3");
  363.         goal = driver.compile("t200;#TABLE7{(0,36)36};%1@4s63q8o4nt7,2b-1");
  364.         bonus = driver.compile("t200;%1@4s63q7l64o6[b]80");
  365.         firework = driver.compile("t200;#TABLE5{(0,-1280)6};#TABLE6{(0,-2560)6};%1@4s63q8l64np5,2o4c+8<np6,2c+6np");
  366.     }
  367. }
noswf
  1. // forked from miyaoka's Super Mario Cave
  2. // forked from keim_at_Si's Super Mario Synthesizer (Data not completed)
  3. // BGMs are from TSSCP threads.
  4. // SEs are from http://mmltalks.appspot.com/mml/e781c745d6bac989bc13ce18dd5f4ccfb09c78cf
  5. // Translated from http://dic.nicovideo.jp/mml_id/1868
  6. package {
  7.     import flash.display.*;
  8.     import flash.events.*;
  9.     import flash.geom.*;
  10.     import org.si.sion.*;
  11.     import com.bit101.components.*;
  12.     import caurina.transitions.Tweener;
  13.     
  14.     
  15.     [SWF(backgroundColor='#ffffff', frameRate='60')]
  16.     public class SuperMarioCave extends Sprite {
  17.         public var driver:SiONDriver = new SiONDriver();
  18.         public var sounds:SuperMarioSound = new SuperMarioSound();
  19.         
  20.         private var SW:Number = 465;
  21.         private var SH:Number = 465;
  22.         private var perlinPhase:Number = 0;
  23.         private var thPhase:Number = 0;
  24.         private var scroll:Number = 1;
  25.         private var scale:Number = 0.5;
  26.         private var bg:BitmapData = new BitmapData(SW * scale, SH * scale);
  27.         private var trail:BitmapData = new BitmapData(SW, SH, true, 0x00000000);
  28.         private var ct:ColorTransform = new ColorTransform(1111, 0x00, 0xcf, 0xff);
  29.         public var threshold:uint = 0xff;
  30.         public var xPos:Number = 150;
  31.         private var yPos:Number;
  32.         private var yMove:Number;
  33.         public var yAccel:Number = 0.2;
  34.         private var yVct:Number;
  35.         private var perlinX:Number;
  36.         private var perlinY:Number;
  37.         
  38.         
  39.         function SuperMarioCave() {
  40.             
  41.             driver.bpm = 200;
  42.             driver.play();
  43.             
  44.             var bmp:Bitmap = new Bitmap(bg);
  45.             bmp.scaleX = bmp.scaleY = 1 / scale;
  46.             addChild(bmp);
  47.             addChild(new Bitmap(trail));
  48.             
  49.             addEventListener(Event.ENTER_FRAME, scrollDrawHandler);
  50.             stageInit();
  51.             
  52.         }
  53.         private function stageInit():void 
  54.         {
  55.             yPos = SH * 0.2;
  56.             yMove = 0;
  57.             yVct = 1;
  58.             alpha = 1;
  59.             threshold = 0xff;
  60.             xPos = 0;
  61.             
  62.             scroll = 3//1 + Math.floor(Math.random() * 2);
  63.             
  64.             perlinX = Math.random() * 0.3 + 0.2;
  65.             perlinY = Math.random() * 0.3 + 0.2;
  66.             yAccel = 0;
  67.             driver.play(sounds.mario1);
  68.             Tweener.addTween(this, {
  69.                 xPos: 150,
  70.                 threshold: 0x50,
  71.                 time: 6.0,
  72.                 yAccel: scroll * 0.06
  73.             });
  74.             stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  75.             addEventListener(Event.ENTER_FRAME, crashCheckHandler);
  76.             addEventListener(Event.ENTER_FRAME, thPhaseHandler);
  77.             
  78.         }
  79.         private function thPhaseHandler(e:Event):void 
  80.         {
  81.             thPhase += Math.PI * 0.03;
  82.         }
  83.         private function mouseDownHandler(e:MouseEvent):void 
  84.         {
  85.             yMove = -yAccel*10;
  86.             yVct = -1;
  87.             driver.sequenceOn(sounds.jump , null000);
  88.             
  89.             stage.addEventListener(MouseEvent.MOUSE_UP, function ():void 
  90.             {
  91.                 yVct = 1;
  92.             });
  93.         }
  94.         private function scrollDrawHandler(e:Event):void 
  95.         {
  96.             bg.lock();
  97.             bg.perlinNoise(SW * perlinX * scale, SH * perlinY * scale, 11falsefalse1true, [new Point(perlinPhase += scroll * scale, 0)]);
  98.             bg.colorTransform(bg.rect, ct);
  99.             bg.threshold(bg, bg.rect, bg.rect.topLeft, ">", 0xff << 24 |
  100.             Math.max(0, Math.min(0xff, (threshold + Math.sin(thPhase) * 0x08))) << 16, 0xffffffff);
  101.             bg.unlock();
  102.             
  103.             var sh:Shape = new Shape();
  104.             var g:Graphics = sh.graphics;
  105.             g.moveTo(xPos -scroll, yPos)
  106.             
  107.             yPos += yMove;
  108.             yMove += yAccel * yVct;
  109.             
  110.             g.lineStyle(5, 0xffffff * Math.random());
  111.             g.lineTo(xPos, yPos);
  112.             
  113.             trail.lock();
  114.             trail.scroll( -scroll, 0);
  115.             trail.draw(sh);
  116. //            trail.setPixel32(xPos, yPos, 0xff000000);
  117.             trail.unlock();
  118.         }
  119.         private function crashCheckHandler(e:Event):void 
  120.         {
  121.             if (yPos < -50 || yPos > SH || bg.getPixel(xPos * scale, yPos * scale) == 0xffffff)
  122.             {
  123.                 driver.play(sounds.miss);
  124.                 yMove = -yAccel * 30;
  125.                 stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
  126.                 removeEventListener(Event.ENTER_FRAME, crashCheckHandler);
  127.                 removeEventListener(Event.ENTER_FRAME, thPhaseHandler);
  128.                 thPhase = 0;
  129.                 Tweener.addTween(this, {
  130.                     time: 3.0,
  131.                     alpha: 0.0,
  132.                     threshold: 0x00,
  133.                     transition: "easeInOutCubic",
  134.                     onComplete: stageInit
  135.                 });
  136.             }
  137.         }
  138.     }
  139. }
  140. import org.si.sion.*;
  141. // this instanse have to be created after creating SiONDrivers instance.
  142. // All SiONData are in bpm of 200.
  143. class SuperMarioSound {
  144.     // bgm
  145.     public var mario1:SiONData;
  146.     public var mario2:SiONData;
  147.     public var mario2start:SiONData;
  148.     public var mario4:SiONData;
  149.     public var areaclear:SiONData;
  150.     public var hurryup:SiONData;
  151.     public var miss:SiONData;
  152.     public var gameover:SiONData;
  153.     
  154.     // sound effect
  155.     public var block:SiONData;
  156.     public var item:SiONData;
  157.     public var iteml:SiONData;
  158.     public var powerup:SiONData;
  159.     public var jump:SiONData;
  160.     public var jumpl:SiONData;
  161.     public var poke:SiONData;
  162.     public var fumi:SiONData;
  163.     public var dom:SiONData;
  164.     public var fire:SiONData;
  165.     public var cion:SiONData;
  166.     public var extend:SiONData;
  167.     public var warp:SiONData;
  168.     public var goal:SiONData;
  169.     public var bonus:SiONData;
  170.     public var firework:SiONData;
  171.     
  172.     
  173.     function SuperMarioSound() {
  174.         var driver:SiONDriver = SiONDriver.mutex;
  175.         var header:String, mml:String;
  176.         header = "t200;#EFFECT0{speaker20};";
  177.         
  178.         // The following 4 lines are avoiding bugs in curren version. 
  179.         // In this version, the sequenceOn() function cannot refer tables in the SiONData, 
  180.         // so we have to define all tables on main SiONData played by SiONDriver.play().
  181.         // In new version(0.57), the sequenceOn() function can refer the tables in SiONData and following mmls are not requeired.
  182.         header += "#TABLE0{(0,128)8};#TABLE1{(0,384)8};#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};";
  183.         header += "#TABLE4{(0,-1280)4};#TABLE5{(0,-1280)6};#TABLE6{(0,-2560)6};#TABLE7{(0,36)36};";
  184.         header += "#TABLE8{14,0,13,0,13,0,12,0,12,,11,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,5,0,5}*8+31;";
  185.         header += "#TABLE9{12,6,13,8,13,3,9,10,15,12,6,11,13,14};";
  186.         
  187.         // MML from TSSCP thread dtm 1-564 modifyed
  188.         mml = header;
  189.         mml += "#A=o6eerercer grrr>grrr;";
  190.         mml += "#B=o6[2crr>grrer rarbra+ar gr24<er24gr24arfg rercd>brr];";
  191.         mml += "#C=o6[2[2rrgf+fd+re r>g+a<cr>a<cd |rrgf+fd+re r<crccrrr]>rrd+rrdrr crr2.];";
  192.         mml += "#D=o6[2ccrcrcdr ecr>agrrr |<ccrcrcde r1];";
  193.         mml += "#E=o6[2ecr>grrg+r a<frf>arrr |br24<ar24ar24ar24gr24fr24 ecr>agrrr]b<frffr24er24dr24 crr2.;";
  194.         mml += "#F=o5f+f+rf+rf+f+r brr2.;";
  195.         mml += "#G=o5[2errcrr>gr r<crdrc+cr cr24gr24br24<cr>ab rarefdrr];";
  196.         mml += "#H=o6[2[2rred+d>br<c r>efgrcef |<rred+d>br<c rfrffrrr]>rrg+rrfrr err2.<];";
  197.         mml += "#I=o5[2g+g+rg+rg+a+r gerecrrr |g+g+rg+rg+a+g r1];";
  198.         mml += "#J=o6[2c>arerrer f<crc>frrr |gr24<fr24fr24fr24er24dr24 c>arferrr]g<drddr24cr24>br24 gerecrrr;";
  199.         mml += "#K=o4ddrdrddr <grrr>grrr;";
  200.         mml += "#L=o4[2grrerrcr rfrgrf+fr er24<cr24er24frde rcr>abgrr];"
  201.         mml += "#M=o4[2[2crrgrr<cr >frr<ccr>fr |crrerrg<c r<grggr>>gr]crg+rra+rr <crr>ggrcr];";
  202.         mml += "#N=o3[3g+rr<d+rrg+r grrcrr>gr];";
  203.         mml += "#O=o4[2crrf+gr<cr >frfr<cc>fr |drrfgrbr grgr<cc>gr]grrggr24ar24br24 <cr>grcrrr;";
  204.         mml += "#X=v15o1q1s38g16r8.;#Y=v10o5q1s36c16;#Z=v8o5q5s34c8r8;";
  205.         mml += "#P=ZYrZYrZZrrZYrYrYr;#Q=XYrrYZYrrY;#R=Yr4rYrZYr8.;";
  206.         mml += "t200;%0@0l8v10q5s34A$BCDABEEDAE;%0@0l8v10q5s34F$GHIFGJJIFJ;%5@3l8v12q8s63K$LMNKLOONKO;";
  207.         mml += "%2@0l16P$[Q]24[P]4[Q]8[R]16[P]4[R]8;";
  208.         mario1 = driver.compile(mml);
  209.         
  210.         // MML from TSSCP thread dtm 1-115 modifyed
  211.         mml = header;
  212.         mml += "#A=[2c<c>>a<a>a+<a+r2.][2>f<f>d<d>d+<d+r2|r4]d+12d12c+12crd+rdr>g+rgr<c+rl12cf+fea+ag+.Rd+.R>b.Ra+.Ra.Rg+.Rr1.;";
  213.         mml += "%1@4v10q5s34l8o5$A;%1@8v12q8s63l8o4$A;";
  214.         mario2 = driver.compile(mml);
  215.         // MML from TSSCP thread dtm 1-115 modifyed
  216.         mml = header;
  217.         mml += "#Y=v10q1s36c16r16; #Z=v8q5s38o5c8;";
  218.         mml += "%1@4v10q5s34l8o6 eerercergrrr>g r2. s63q8l64o7[e>ad<e>ad>gc>f>a+r16]3;";
  219.         mml += "%1@4v10q5s34l8o5 f+f+rf+rf+f+rb;";
  220.         mml += "%1@8v12q8s63l8o4 ddrdrddr<grrr>g;";
  221.         mml += "%2l8o5 ZrYZrYZrZrrZrYYY;";
  222.         mario2start = driver.compile(mml);
  223.         
  224.         // MML from TSSCP thread dtm 1-115 modifyed
  225.         mml = header;
  226.         mml += "o6l8q1s29r64$r16[2dd-cd-de-dd-][2d-cd-dd-dd-c][2fg-fefee-|e]e16;";
  227.         mml += "o5l16q1s31r64$[2gb-gaga-gagb-gbgb-ga][2f+af+a-f+af+b-f+af+b-f+af+a-]";
  228.         mml += "[2a+<d>a+<e->a+<d>a+<d->a+<d>a+<d->a+<c>a+<d->];%5@0q8s63l2o4$e-1dg-f1eb-aee-e";
  229.         mario4 = driver.compile(mml);
  230.         
  231.         // MML from TSSCP thread dtm 1-864 modifyed
  232.         mml = header;
  233.         mml += "%0s63o6l8c>ge<c>ge<c2.c+>g+f<c+>g+f<c+2.d+>a+g<d+>a+g<d+4.l6fffg1.;";
  234.         mml += "%0s63o5l8ec>g<ec>g<ee16e16eeeefc+>g+<fc+>g+<ff16f16ffffgd+>a+<gd+>a+<gg16g16gl6aaab1.;";
  235.         mml += "%5@3s63q6o4l8c2.cc16c16ccccc+2.c+c+16c+16c+c+c+c+a+gd+a+gd+a+a+16a+16a+<l6cccd1.;";
  236.         areaclear = driver.compile(mml);
  237.         // MML from TSSCP thread dtm 2-805 modifyed
  238.         mml = header;
  239.         mml += "l12%0v8s63q7o5 e<drddr> f<d+rd+d+r> f+<ereer fr f2>;";
  240.         mml += "l12%0v8s63q7o5 >e<g+6g+g+6 >f<a6aa6 >f+<a+6a+a+6 br b2;";
  241.         mml += "l12%3v8s63q6o5 >b<b6bb6 c<c6cc6> c+<c+6c+c+6> >g6 g2 <;";
  242.         hurryup = driver.compile(mml);
  243.         
  244.         mml = header;
  245.         mml += "%1@4s39v14q6l8r^2 b<frff6e6d6cr1;";
  246.         mml += "%1@4s27,-45v14q0l8 o4<b16b16b16r16r^4g<drdd6c6>b6gerecr2;";
  247.         mml += "%1@8s41v16q7l8r^2 o4gr4gg6a6b6<c>grgcr2;";
  248.         miss = driver.compile(mml);
  249.         
  250.         mml = header + "#TABLE10{0,32,64,80,104,128};";
  251.         mml += "%1@4s39v14q7l4na10,1o5e8rc8ro4go5f2f^2e8d8e2;";
  252.         mml += "%1@4s63v14q8l4na10,1o6c8ro5g8rea8.b8a8.g+a+g+g2.;";
  253.         mml += "%5@3s38v16q7l4o4g8re8rcs25f2c+2.c2..;";
  254.         gameover = driver.compile(mml);
  255.         mml = "t200;#TABLE8{14,0,13,0,13,0,12,0,12,,11,0,9,0,9,0,8,0,8,0,7,0,6,0,6,0,5,0,5}*8+31;";
  256.         mml += "#TABLE9{12,6,13,8,13,3,9,10,15,12,6,11,13,14};";
  257.         mml += "%1@9s63q8o0na8,1nt9,2c4.^32nantx128";
  258.         block = driver.compile(mml);
  259.         item = driver.compile("t200;#A=cggg+g+c+;%1@4s63q8l64o5A(0)A(1)A(2)A(3)");
  260.         iteml = driver.compile("t200;#A=cggg+g+c+;%1@4s63q8l64o5A(0)A(1)A(2)A(3)A(4)A(5)A(6)A(7)");
  261.         powerup = driver.compile("t200;%1@2s63q8l32o6c>g<ceg<c>g>g+<cd+g+d+g+b+<d+g+d+>>a+<dfa+fa+<dfa+f64");
  262.         jump = driver.compile("t200;#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};%1@4s63q8o5a32@2na2,2np3,2g2");
  263.         jumpl = driver.compile("t200;#TABLE2{(128,0)12,0};#TABLE3{(90,934)12};%1@4s63q8o5d32@2na2,2np3,2c2");
  264.         poke = driver.compile("t200;%1@4s63l128o5b-<cr16f64");
  265.         fumi = driver.compile("t200;#TABLE0{(0,128)8};#TABLE1{(0,384)8};%1@4s63q8l10na0np1o5a<gnanp");
  266.         dom = driver.compile("t200;#TABLE4{(0,-1280)4};%1@4s63q8l64np4,2o4a-16npc+&d+&f&f+");
  267.         fire = driver.compile("t200;%1@4s63q8l64o4g<g<g<g<g");
  268.         cion = driver.compile("t200;%1@4s63q8l16q0s22o6b<e");
  269.         extend = driver.compile("t200;%1@4s63q0s24l9o7eg<ecdq8s63g");
  270.         warp = driver.compile("t200;%1@4s63q8l64o7[e>ad<e>ad>gc>f>a+r16]3");
  271.         goal = driver.compile("t200;#TABLE7{(0,36)36};%1@4s63q8o4nt7,2b-1");
  272.         bonus = driver.compile("t200;%1@4s63q7l64o6[b]80");
  273.         firework = driver.compile("t200;#TABLE5{(0,-1280)6};#TABLE6{(0,-2560)6};%1@4s63q8l64np5,2o4c+8<np6,2c+6np");
  274.     }
  275. }
noswf
Get Adobe Flash Player