In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

DotMagic As3版

@author esukei
*
* DotMagic AS3版
* 中高時代所属してた部活で1年生が必ず作るゲームをふと思い出したので作ってみる。 
* 元々作った方が不明なため勝手に移植してしまったので、もしやめてくれ!っていうときはすぐに取り下げます。
*
* 説明:
* スペースキー押してくねくねさせて、白に当たらないように赤を目指す。
* 赤にたどり着くとレベルあがって白が増える。一度でも白に当たるとレベルリセット。
Get Adobe Flash player
by esukei 20 Jul 2009
    Embed
/**
 * @author esukei
 *
 * DotMagic AS3版
 * 中高時代所属してた部活で1年生が必ず作るゲームをふと思い出したので作ってみる。 
 * 元々作った方が不明なため勝手に移植してしまったので、もしやめてくれ!っていうときはすぐに取り下げます。
 *
 * 説明:
 * スペースキー押してくねくねさせて、白に当たらないように赤を目指す。
 * 赤にたどり着くとレベルあがって白が増える。一度でも白に当たるとレベルリセット。
 */
package {
    
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.events.MouseEvent;
    
    public class DotMagic extends Sprite {
        
        private var point:Point;
        private var stageData:BitmapData;
        private var pointerLine:BitmapData;
        private var stageLayer:Bitmap;
        private var pointerLayer:Bitmap;
        private var gameLevel:int = 1;
        private var dx:int;
        private var dy:int;
        
        [SWF(width=465, height=645, frameRate=60, backgroundColor=0x000000)]
        
        public function DotMagic()
        {
            point = new Point();
            pointerLine = new BitmapData(stage.stageWidth,stage.stageHeight,true,0x00000000);
            stageData = new BitmapData(stage.stageWidth,stage.stageHeight,true,0xFF000000);
            stageLayer = new Bitmap( stageData );
            pointerLayer = new Bitmap( pointerLine );
            addChild( stageLayer );
            addChild( pointerLayer )
            
            init();
            
            stage.addEventListener( KeyboardEvent.KEY_DOWN, switchUp);
            stage.addEventListener( KeyboardEvent.KEY_UP, switchDown);
            addEventListener( Event.ENTER_FRAME, main );
        }
        
        private function init():void 
        {
            var rect:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);
            var innerRect:Rectangle = new Rectangle(1,1,stage.stageWidth-2,stage.stageHeight-2);
            var goal:Rectangle = new Rectangle(0,stage.stageHeight / 2 - 40,1,80);
            stageData.fillRect(rect, 0xFFFFFFFF);
            stageData.fillRect(innerRect, 0xFF000000);
            stageData.fillRect(goal, 0xFFFF0000);
            for(var i:int = 0; i < gameLevel * gameLevel * 10; i++){
                stageData.setPixel32( stage.stageWidth * Math.random(),stage.stageHeight * Math.random() , 0xFFFFFFFF );
            }
            pointerLine.fillRect(rect, 0x00000000);
            point.x = stage.stageWidth;
            point.y = stage.stageHeight / 2;
            dx = -1;
            dy = 1;
        }
        
        private function main(event:Event):void
        {
            point.x += dx;
            point.y += dy;
            pointerLine.setPixel32(point.x, point.y, 0xFFFFFFFF);
            
            switch(stageData.getPixel32(point.x+dx,point.y+dy))
            {
                case 0xFFFFFFFF:
                {
                    gameLevel = 1;
                    init();
                    break;
                }
                case 0xFFFF0000:
                {
                    gameLevel++;
                    init();
                    break;
                }
                default :
                {
                    break;
                }
            }
            
        }
        
        private function switchUp(event:KeyboardEvent):void
        {
            if(event.keyCode == 32)
            {
                dy = -1;
            }
        }
        
        private function switchDown(event:KeyboardEvent):void
        {
            if(event.keyCode == 32)
            {
                dy = 1;
            }
        }
    }
}