星空もどき
n88とかでよくやった星っぽい何か
まあこんなにたくさんはだせなかったけど
よく考えてみれば星がこんなに高速で動いていたら困る
あーでもやっぱこれ好きだなぁ
// n88とかでよくやった星っぽい何か
// まあこんなにたくさんはだせなかったけど
// よく考えてみれば星がこんなに高速で動いていたら困る
// あーでもやっぱこれ好きだなぁ
package {
import flash.display.*;
import flash.geom.*;
import flash.events.*;
import flash.text.TextField;
import flash.filters.*;
import frocessing.color.ColorHSV;
[SWF(width="465", height="465", backgroundColor="0x000000")]
public class Main extends Sprite {
public function Main() {
var bg:BackGround = new BackGround(465,465);
addChild(bg);
}
}
}
import flash.display.*;
import flash.geom.*;
import flash.events.*;
class Star
{
public var rect:Rectangle,vy:uint,color:uint;
public function Star( px:uint,py:uint,size:uint,vely:uint,col:uint )
{
rect = new Rectangle( px - size/2,py - size/2,size,size );vy = vely;color = col;
}
public function update( bmp:BitmapData ):void
{
rect.y += vy;
if( rect.y >= bmp.rect.height + 10 )
{
rect.y = -10;
rect.x = Math.random()*465 - rect.width / 2;
}
bmp.fillRect( rect, color );
}
}
class BackGround extends Bitmap
{
private var stars:Vector.<Star>;
private var si:uint=0;
public function BackGround( sx:uint,sy:uint )
{
stars = new Vector.<Star>();
var color:uint;
var i:int;
for(i=0;i<200;++i )
{
// 色の指定は結構適当 赤緑青水色白黄色ぐらいにしぼったほうがいい(n88的な意味で
color = ( uint((Math.random()*2) * 255) << 16 ) | (uint((Math.random()*2) * 255) << 8 ) | uint((Math.random()*2) * 255);
stars.push( new Star( Math.random()*465,Math.random()*465,Math.random()*2+2,Math.random()*8+1,color) );
}
bitmapData = new BitmapData( sx,sy,false,0 );
addEventListener(Event.ENTER_FRAME, update);
}
public function update(e:Event):void
{
var bmp:BitmapData = bitmapData;
bmp.lock();
bmp.fillRect( bmp.rect,0x000000 );
var s:Star;
for each( s in stars )
{
s.update(bmp);
}
bmp.unlock();
}
}