DotMagic As3版
@author esukei
*
* DotMagic AS3版
* 中高時代所属してた部活で1年生が必ず作るゲームをふと思い出したので作ってみる。
* 元々作った方が不明なため勝手に移植してしまったので、もしやめてくれ!っていうときはすぐに取り下げます。
*
* 説明:
* スペースキー押してくねくねさせて、白に当たらないように赤を目指す。
* 赤にたどり着くとレベルあがって白が増える。一度でも白に当たるとレベルリセット。
/**
* @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;
}
}
}
}