scratch(実験用)
知らないこといっぱいあるので適当に作っては投げ作っては以下略
/**
* Copyright gbone ( http://wonderfl.net/user/gbone )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/14Zw
*/
//
// 知らないこといっぱいあるので適当に作っては投げ作っては以下略
//
package {
//importってたぶんincludeみたいなもの
import flash.display.Sprite;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
//iroirosettei
[SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
//entry point兼ねてるらしい
public class Main extends Sprite
{
//画面大きさとか
private const WIDTH:int = 465;
private const HEIGHT:int = 465;
//toriaezu
private var canvas:BitmapData;
private var time:Number = 12;
//速くなる?わからない
private var x1:Number;
private var y1:Number;
private var dx:Number;
private var dy:Number;
private var sn:Number;
private var cn:Number;
private var t10:Number;
private var col:Number;
//ep
public function Main():void
{
//描画箇所作ってbitmap作成して割り当てるっぽい
canvas = new BitmapData(WIDTH, HEIGHT, false, 0x0);
addChild(new Bitmap(canvas)) as Bitmap;
//CreateThreadみたいなかんじ?
addEventListener(Event.ENTER_FRAME, update);
}
//こいつがなんどもコールされるらしい
private function update(e:Event):void
{
var x:int;
var y:int;
var scale:int = 1;
t10 = time * 0.15;
sn = Math.sin(t10) * 0.5;
cn = Math.cos(t10) * 0.5;
time += 0.01666666 * 1.2;
//inchiki
dx = 2.0 / WIDTH;
dy = 2.0 / HEIGHT;
//draw
canvas.lock();
//canvas.fillRect(canvas.rect, 0x2F0F2F);
//ラスタライザ遅いので何とかしないと
y1 = -1.0;
for(y = 0 ; y < HEIGHT; y += scale) {
x1 = -1.0;
for(x = 0 ; x < WIDTH; x += scale) {
//shader
shader(x1, y1)
var col:int = col * 255;
//yo
canvas.setPixel(x, y, col);
x1 += dx * scale;
}
y1 += dy * scale;
}
canvas.unlock();
}
//とりあえず実験。vectorがあればなあ
private function shader(u:Number, v:Number):void
{
u /= Math.sin(time) * 0.01;
v /= Math.cos(time) * 0.01;
col = Math.cos(Math.sin(u * 10) * Math.sin(v * 10) )* Math.sin(time) + time;
}
}
}