※現在、「wonderfl build flash online」求人コンテンツ制作に関してのアンケートを実施中です!みなさまのお力添えを頂いて、続々とアンケート結果が集まっていますが、まだまだ募集しております。ご協力のほど、どうぞよろしくお願いいたします!
wonderfl運営事務局
→アンケートページ(※ログインしてからお答えいただけるようになっています。)
ゲームっぽくしてみたforked from: なんとかディウスっぽい背景 forked from: ゲームっぽくしてみたforked from: なんとかディウスっぽい背景
- // forked from ton's ゲームっぽくしてみたforked from: なんとかディウスっぽい背景
- // forked from gyuque's なんとかディウスっぽい背景
- // ゲームっぽくしてみた
- // 十字キーで移動
- // スペースキーで弾発射
- // だれか当たり判定つけて><
- package
- {
- import flash.display.*;
- import flash.geom.*;
- import flash.events.*;
- import flash.ui.Keyboard;
- [SWF(width="320", height="240", backgroundColor="0x000000", frameRate="30")]
- public class Nemesis extends Sprite
- {
- public static const W:int = 320;
- public static const H:int = 240;
- private var mScroll:int = 0;
- private var mMyPos:Point;
- private var mBGen:MountainGen = new MountainGen(160);
- private var mTGen:MountainGen = new MountainGen(160, 1);
- private var mBGScreen:BitmapData = new BitmapData(W, H, true, 0);
- private var mBGScreenBmp:Bitmap;
- private var mBGScreenBmp2:Bitmap;
- private var mStarbg:StarBG = new StarBG(W, H, 30);
- private var ship:Ship = new Ship(0x00ffff);
- private var speed:int = 4;
- private var isUp:Boolean = false;
- private var isDown:Boolean = false;
- private var isLeft:Boolean = false;
- private var isRight:Boolean = false;
- private var isShot:Boolean = false;
- function Nemesis()
- {
- addChild(mStarbg);
- mBGScreenBmp = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp);
- mBGScreenBmp2 = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp2);
- addChild(ship);
- ship.x = 40;
- ship.y = H / 2;
- var i:int;
- mBGen.step();
- mTGen.step();
- for (i = 0;i < W;i++) {
- mBGen.step();
- mTGen.step();
- mBGen.draw(mBGScreen, i, 80);
- mTGen.draw(mBGScreen, i, 0, false);
- }
- addEventListener(Event.ENTER_FRAME, tick);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
- }
- private var _clrrc:Rectangle = new Rectangle(0, 0, 1, H);
- private function tick(e:Event):void
- {
- var ox:int = mScroll % W;
- _clrrc.x = ox;
- mBGScreen.fillRect(_clrrc, 0);
- mStarbg.tick();
- mBGen.step();
- mTGen.step();
- mStarbg.draw();
- mBGen.draw(mBGScreen, ox, 80);
- mTGen.draw(mBGScreen, ox, 0, false);
- mBGScreenBmp.x = -ox;
- mBGScreenBmp2.x = W-ox;
- mScroll++;
- ship.y -= isUp? speed : 0;
- ship.y += isDown? speed: 0;
- ship.x -= isLeft? speed: 0;
- ship.x += isRight? speed: 0;
- if (isShot && !(mScroll%5)) {
- var bullet:Bullet = new Bullet(0xff00ff, 3, 20);
- bullet.x = ship.x;
- bullet.y = ship.y;
- addChild(bullet);
- }
- if (ship.x - ship.width< 0) ship.x = ship.width;
- else if (ship.x > W) ship.x = W;
- if (ship.y - ship.height/2 < 0) ship.y = ship.height/2;
- else if (ship.y + ship.height/2 > H) ship.y = H - ship.height/2;
- }
- private function onKeyDownHandler(e:KeyboardEvent):void {
- switch(e.keyCode) {
- case Keyboard.UP: isUp = true; break;
- case Keyboard.DOWN: isDown = true; break;
- case Keyboard.LEFT: isLeft = true; break;
- case Keyboard.RIGHT: isRight = true; break;
- case Keyboard.SPACE: isShot = true; break;
- }
- }
- private function onKeyUpHandler(e:KeyboardEvent):void
- {
- switch(e.keyCode) {
- case Keyboard.UP: isUp = false; break;
- case Keyboard.DOWN: isDown = false; break;
- case Keyboard.LEFT: isLeft = false; break;
- case Keyboard.RIGHT: isRight = false; break;
- case Keyboard.SPACE: isShot = false; break;
- }
- }
- }
- }
- import flash.display.*;
- import flash.events.Event;
- import flash.geom.Point;
- class Ship extends Sprite
- {
- public var color:uint;
- function Ship(color:uint)
- {
- this.color = color;
- this.graphics.lineStyle(0, color);
- this.graphics.lineTo( -30, -10);
- this.graphics.lineTo( -30, 10);
- this.graphics.lineTo(0, 0);
- this.graphics.endFill();
- }
- }
- class Bullet extends Sprite
- {
- public var color:uint;
- public var size:uint;
- public var speed:uint;
- function Bullet(color:uint = 0x0000ff, size:uint = 3, speed:uint = 5)
- {
- this.color = color;
- this.size = size;
- this.speed = speed;
- this.graphics.lineStyle(0, color);
- this.graphics.drawCircle(0, 0, size);
- this.graphics.endFill();
- addEventListener(Event.ENTER_FRAME, updateHandler);
- }
- private function updateHandler(e:Event):void
- {
- this.x += speed;
- if (this.x + size / 2 > Nemesis.W) {
- this.parent.removeChild(this);
- removeEventListener(Event.ENTER_FRAME, updateHandler);
- }
- }
- }
- class MountainGen
- {
- private var mPrevBuffer:Array;
- private var mHeight:int;
- private var mCount:int = 0;
- private var tmpBuffer:Array;
- private var mGenFunc:Function;
- function MountainGen(h:int, generator:int = 0)
- {
- mHeight = h;
- mGenFunc = generator ? genWav2 : genWav;
- mPrevBuffer = new Array(h);
- tmpBuffer = new Array(h);
- }
- public function draw(b:BitmapData, x:int, y:int, rev:Boolean = true):void
- {
- var i:int;
- for (i = 0;i < mHeight;i++) {
- if (tmpBuffer[i]) {
- var c:int = tmpBuffer[i];
- b.setPixel32(x, rev ? (y+mHeight-i) : (y+i), 0xff000000 | (c/3+11) | ((c/5 + 170)<<16) | ((c/2+60) << 8));
- }
- }
- }
- public function step():void
- {
- var t:Number = Number(mCount) * 0.02;
- var h:int = mGenFunc(t) * mHeight;
- var i:int, k:int, m:int;
- for (i = 0;i < mHeight;i++) {
- mPrevBuffer[i] = tmpBuffer[i];
- }
- for (i = 0;i < mHeight;i++) {
- tmpBuffer[i] = (i < h) ? (Math.random()*80 + 80) : 0;
- if (tmpBuffer[i]) {
- if (mPrevBuffer[i])
- tmpBuffer[i] = (tmpBuffer[i] + mPrevBuffer[i]*7)/8;
- if (mPrevBuffer[i] == 0 || i == (h-1)) {
- m = 50;
- for (k = i;k >= 0 && m > 0;k--, m-=4) {
- if (m > 33) m--;
- tmpBuffer[k] += m;
- m += Math.random()*7;
- }
- }
- if (mPrevBuffer[i+1] && i == (h-1)) {
- m = -48;
- for (k = i;k >= 0 && m < 0;k--, m++) {
- tmpBuffer[k] += m;
- if (tmpBuffer[k]<1) tmpBuffer[k] = 1;
- }
- }
- }
- }
- for (i = 0;i < mHeight;i++)
- tmpBuffer[i] = (tmpBuffer[i] < 0) ? 0 : (tmpBuffer[i] > 255) ? 255 : tmpBuffer[i];
- mCount++;
- }
- private static function genWav(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*10) * 0.02;
- v *= Math.cos(t*0.1);
- if (nest < 5)
- v += genWav(t+1, ++nest);
- v = v*0.2 + 0.3;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- private static function genWav2(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*9) * 0.02;
- v *= Math.cos(0.2 + t*0.15);
- if (nest < 5)
- v += genWav2(t+1, ++nest);
- v = v*0.2 + 0.2;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- }
- class StarBG extends Sprite
- {
- private var mWidth:int;
- private var mHeight:int;
- private var mStars:Array;
- private var mStarVs:Array;
- private var mN:int;
- function StarBG(w:int, h:int, n:int)
- {
- mWidth = w;
- mHeight = h;
- mN = n;
- mStars = new Array(n);
- mStarVs = new Array(n);
- for (var i:int = 0;i < n;i++) {
- mStars[i] = new Point(int( Math.random()*w ), int( Math.random()*h ));
- mStarVs[i] = Math.random() + 0.2;
- }
- }
- public function tick():void
- {
- var n:int = mN;
- for (var i:int = 0;i < n;i++) {
- mStars[i].x -= Number(mStarVs[i]);
- if (mStars[i].x < 0) {
- mStars[i].x += mWidth;
- mStars[i].y = int( Math.random()*mHeight );
- }
- }
- }
- public function draw():void
- {
- var g:Graphics = graphics;
- var n:int = mN;
- g.clear();
- for (var i:int = 0;i < n;i++) {
- g.beginFill(0xffffff);
- g.drawCircle( mStars[i].x, mStars[i].y , 0.4);
- }
- }
- }
ゲームっぽくしてみたforked from: なんとかディウスっぽい背景 マルチポー forked from: ゲームっぽくしてみた
- // forked from ton's ゲームっぽくしてみたforked from: なんとかディウスっぽい背景
- // forked from gyuque's なんとかディウスっぽい背景
- // ゲームっぽくしてみた
- // 十字キーで移動
- // スペースキーで弾発射
- // だれか当たり判定つけて><
- package
- {
- import flash.display.*;
- import flash.geom.*;
- import flash.events.*;
- import flash.ui.Keyboard;
- [SWF(width="320", height="240", backgroundColor="0x000000", frameRate="30")]
- public class Nemesis extends Sprite
- {
- public static const W:int = 320;
- public static const H:int = 240;
- public static var KeyMapping:Object = {};
- private var mScroll:int = 0;
- private var mMyPos:Point;
- private var mBGen:MountainGen = new MountainGen(160);
- private var mTGen:MountainGen = new MountainGen(160, 1);
- private var mBBGen:MountainGen = new MountainGen(180, 1, true);
- private var mBBGScreen:BitmapData = new BitmapData(W, H, true, 0);
- private var mBBGScreenBmp:Bitmap;
- private var mBBGScreenBmp2:Bitmap;
- private var mBGScreen:BitmapData = new BitmapData(W, H, true, 0);
- private var mBGScreenBmp:Bitmap;
- private var mBGScreenBmp2:Bitmap;
- private var mStarbg:StarBG = new StarBG(W, H, 30);
- private var ship:Ship = new Ship(0x00ffff, true);
- private var mKeyState:KeyState = new KeyState();
- function Nemesis()
- {
- mapKey(Keyboard.UP, KeyState.K_UP);
- mapKey(Keyboard.DOWN, KeyState.K_DOWN);
- mapKey(Keyboard.LEFT,KeyState.K_LEFT);
- mapKey(Keyboard.RIGHT, KeyState.K_RIGHT);
- mapKey(Keyboard.SPACE, KeyState.K_TRG1);
- setupBG();
- setupShip();
- addEventListener(Event.ENTER_FRAME, tick);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
- }
- private function setupShip():void {
- ship.x = 40;
- ship.y = H / 2;
- var m1:Ship = new Multiple();
- ship.appendMultiple(m1);
- var m2:Ship = new Multiple();
- ship.appendMultiple(m2);
- ship.fillMoveBuffer();
- addChild(m1);
- addChild(m2);
- addChild(ship);
- }
- private function setupBG():void {
- addChild(mStarbg);
- mBBGScreenBmp = new Bitmap(mBBGScreen);
- addChild(mBBGScreenBmp);
- mBBGScreenBmp2 = new Bitmap(mBBGScreen);
- addChild(mBBGScreenBmp2);
- mBGScreenBmp = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp);
- mBGScreenBmp2 = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp2);
- var i:int;
- mBGen.step();
- mTGen.step();
- mBBGen.step();
- for (i = 0;i < W;i++) {
- mBGen.step();
- mTGen.step();
- mBGen.draw(mBGScreen, i, 80);
- mTGen.draw(mBGScreen, i, 0, false);
- mBBGen.step();
- mBBGen.draw(mBBGScreen, i, 60);
- }
- }
- private static function mapKey(raw:uint, _to:uint):void {
- KeyMapping[raw] = _to;
- }
- private var _clrrc:Rectangle = new Rectangle(0, 0, 1, H);
- private function tick(e:Event):void
- {
- var ox:int = mScroll % W;
- var ox2:int = int(mScroll/2) % W;
- _clrrc.x = ox;
- mBGScreen.fillRect(_clrrc, 0);
- mStarbg.tick();
- mBGen.step();
- mTGen.step();
- mStarbg.draw();
- mBGen.draw(mBGScreen, ox, 80);
- mTGen.draw(mBGScreen, ox, 0, false);
- if ((mScroll%2)==1) {
- _clrrc.x = ox2;
- mBBGScreen.fillRect(_clrrc, 0);
- mBBGen.step();
- mBBGen.draw(mBBGScreen, ox2, 60);
- }
- mBGScreenBmp.x = -ox;
- mBGScreenBmp2.x = W-ox;
- mBBGScreenBmp.x = -ox2;
- mBBGScreenBmp2.x = W-ox2;
- ship.moveByKeyState(mKeyState.state);
- ship.tick();
- ship.draw();
- mScroll++;
- }
- private function onKeyDownHandler(e:KeyboardEvent):void {
- if (KeyMapping.hasOwnProperty(e.keyCode))
- mKeyState.setState(KeyMapping[e.keyCode]);
- }
- private function onKeyUpHandler(e:KeyboardEvent):void
- {
- if (KeyMapping.hasOwnProperty(e.keyCode))
- mKeyState.delState(KeyMapping[e.keyCode]);
- }
- }
- }
- import flash.display.*;
- import flash.events.Event;
- import flash.geom.Point;
- class KeyState
- {
- public static const K_UP:uint = 0x01;
- public static const K_DOWN:uint = 0x02;
- public static const K_LEFT:uint = 0x04;
- public static const K_RIGHT:uint = 0x08;
- public static const K_TRG1:uint = 0x10;
- private var mState:uint = 0;
- public function setState(s:uint):void {
- mState |= s;
- }
- public function delState(s:uint):void {
- mState &= ~s;
- }
- public function get state():uint {
- return mState;
- }
- }
- class Ship extends Sprite
- {
- private var speed:int = 4;
- protected var mCount:int = 0;
- private var mMovBuf:PositionRingBuffer;
- private var mMultiples:Array;
- public var color:uint;
- function Ship(color:uint, enable_buf:Boolean = false)
- {
- this.color = color;
- draw();
- if (enable_buf)
- mMovBuf = new PositionRingBuffer(100);
- }
- public function fillMoveBuffer():void {
- for (var i:int = 0;i < 100;i++)
- mMovBuf.push(x, y, false);
- }
- public function appendMultiple(m:Ship):void
- {
- if (!mMultiples) mMultiples = [];
- mMultiples.push(m);
- }
- public function draw():void
- {
- var g:Graphics = graphics;
- g.clear();
- g.lineStyle(0, color);
- g.lineTo( -30, -10);
- g.lineTo( -30, 10);
- g.lineTo(0, 0);
- g.endFill();
- if (mMultiples) {
- for each(var m:Ship in mMultiples)
- m.draw();
- }
- }
- public function moveByKeyState(s:uint):void
- {
- if (s&KeyState.K_UP) y -= speed;
- else if (s&KeyState.K_DOWN) y += speed;
- if (s&KeyState.K_LEFT) x -= speed;
- else if (s&KeyState.K_RIGHT) x += speed;
- if (s&KeyState.K_TRG1)
- fireShot();
- if (x - width< 0) x = width;
- else if (x > Nemesis.W) x = Nemesis.W;
- if (y - height/2 < 0) y = height/2;
- else if (y + height/2 > Nemesis.H) y = Nemesis.H - height/2;
- mMovBuf.push(x, y);
- }
- public function tick():void {
- if (mMultiples) {
- var len:int = mMultiples.length;
- for (var i:int = 0;i < len;i++) {
- mMultiples[i].x = mMovBuf.getX((i+1)*8) - 10;
- mMultiples[i].y = mMovBuf.getY((i+1)*8);
- }
- for each(var m:Ship in mMultiples)
- m.tick();
- }
- mCount++;
- }
- public function fireShot():void {
- if (!(mCount%5)) {
- var bullet:Bullet = new Bullet();
- bullet.x = x;
- bullet.y = y;
- parent.addChild(bullet);
- }
- if (mMultiples) {
- for each(var m:Ship in mMultiples)
- m.fireShot();
- }
- }
- }
- class Multiple extends Ship
- {
- import flash.geom.Matrix;
- public static const GRAD_COLORS:Array = [0xffba33, 0xaa0000];
- public static const GRAD_ALPHAS:Array = [1, 1];
- public static const GRAD_RATIOS:Array = [100, 255];
- private var mGradTrans:Matrix = new Matrix();
- function Multiple()
- {
- super(0);
- }
- public override function draw():void
- {
- var g:Graphics = graphics;
- var r:Number = Math.sin(mCount*0.9)*0.7 + 9;
- mGradTrans.createGradientBox(r*2, r*1.8,0 , -r*1.1, -r*0.9);
- g.clear();
- g.beginGradientFill(GradientType.RADIAL, GRAD_COLORS, GRAD_ALPHAS, GRAD_RATIOS, mGradTrans);
- g.drawEllipse(-r, -r*0.8, r*2, r*1.6);
- g.endFill();
- }
- }
- class PositionRingBuffer
- {
- private var xs:Array;
- private var ys:Array;
- private var length:uint;
- private var pos:int = 0;
- function PositionRingBuffer(len:uint)
- {
- length = len;
- xs = new Array(len);
- ys = new Array(len);
- }
- public function push(x:int, y:int, chk:Boolean = true):void {
- var i:int = (pos + length - 1) % length;
- if (chk) {
- if (xs[i] == x && ys[i] == y) return;
- }
- xs[pos] = x;
- ys[pos] = y;
- pos = ++pos % length;
- }
- public function getX(i:int):int {
- i = (pos - i + length) % length;
- return xs[i];
- }
- public function getY(i:int):int {
- i = (pos - i + length) % length;
- return ys[i];
- }
- }
- class Bullet extends Sprite
- {
- public var color:uint;
- public var size:uint;
- public var speed:uint;
- function Bullet(color:uint = 0xeeddaa, size:uint = 3, speed:uint = 20)
- {
- this.color = color;
- this.size = size;
- this.speed = speed;
- this.graphics.beginFill(color);
- this.graphics.drawEllipse(-size, -size/2, size*1.8, size);
- this.graphics.drawCircle(-size*1.3, 0, size/2);
- this.graphics.drawCircle(-size*1.8, 0, size/3);
- this.graphics.endFill();
- addEventListener(Event.ENTER_FRAME, updateHandler);
- }
- private function updateHandler(e:Event):void
- {
- this.x += speed;
- if (this.x + size / 2 > Nemesis.W) {
- this.parent.removeChild(this);
- removeEventListener(Event.ENTER_FRAME, updateHandler);
- }
- }
- }
- class MountainGen
- {
- private var mPrevBuffer:Array;
- private var mHeight:int;
- private var mCount:int = 0;
- private var tmpBuffer:Array;
- private var mGenFunc:Function;
- private var mDark:Boolean;
- function MountainGen(h:int, generator:int = 0, dark:Boolean = false)
- {
- mDark = dark;
- mHeight = h;
- mGenFunc = generator ? genWav2 : genWav;
- mPrevBuffer = new Array(h);
- tmpBuffer = new Array(h);
- }
- public function draw(b:BitmapData, x:int, y:int, rev:Boolean = true):void
- {
- var i:int;
- for (i = 0;i < mHeight;i++) {
- if (tmpBuffer[i]) {
- var c:int = tmpBuffer[i];
- b.setPixel32(x, rev ? (y+mHeight-i) : (y+i), makeColor(c));
- }
- }
- }
- private function makeColor(c:int):uint
- {
- if (mDark)
- return 0xff000000 | (c/7+5) | ((c/7 + 80)<<16) | ((c/6+50) << 8);
- return 0xff000000 | (c/3+11) | ((c/5 + 170)<<16) | ((c/2+60) << 8);
- }
- public function step():void
- {
- var t:Number = Number(mCount) * 0.02;
- var h:int = mGenFunc(t) * mHeight;
- var i:int, k:int, m:int;
- for (i = 0;i < mHeight;i++) {
- mPrevBuffer[i] = tmpBuffer[i];
- }
- for (i = 0;i < mHeight;i++) {
- tmpBuffer[i] = (i < h) ? (Math.random()*80 + 80) : 0;
- if (tmpBuffer[i]) {
- if (mPrevBuffer[i])
- tmpBuffer[i] = (tmpBuffer[i] + mPrevBuffer[i]*7)/8;
- if (mPrevBuffer[i] == 0 || i == (h-1)) {
- m = 50;
- for (k = i;k >= 0 && m > 0;k--, m-=4) {
- if (m > 33) m--;
- tmpBuffer[k] += m;
- m += Math.random()*7;
- }
- }
- if (mPrevBuffer[i+1] && i == (h-1)) {
- m = -48;
- for (k = i;k >= 0 && m < 0;k--, m++) {
- tmpBuffer[k] += m;
- if (tmpBuffer[k]<1) tmpBuffer[k] = 1;
- }
- }
- }
- }
- for (i = 0;i < mHeight;i++)
- tmpBuffer[i] = (tmpBuffer[i] < 0) ? 0 : (tmpBuffer[i] > 255) ? 255 : tmpBuffer[i];
- mCount++;
- }
- private static function genWav(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.sin(t*3) * 0.1;
- v += Math.cos(0.1 + t*10) * 0.02;
- v *= Math.sin(t*0.1);
- if (nest < 5)
- v += genWav2(t*2.0, 1+nest)*0.5;
- v = v*0.2 + 0.22;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- private static function genWav2(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*9) * 0.02;
- v *= Math.cos(0.2 + t*0.15);
- if (nest < 5)
- v += genWav2(t*2.0, 1+nest)*0.5;
- v = v*0.2 + 0.23;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- }
- class StarBG extends Sprite
- {
- private var mWidth:int;
- private var mHeight:int;
- private var mStars:Array;
- private var mStarVs:Array;
- private var mN:int;
- function StarBG(w:int, h:int, n:int)
- {
- mWidth = w;
- mHeight = h;
- mN = n;
- mStars = new Array(n);
- mStarVs = new Array(n);
- for (var i:int = 0;i < n;i++) {
- mStars[i] = new Point(int( Math.random()*w ), int( Math.random()*h ));
- mStarVs[i] = Math.random() + 0.2;
- }
- }
- public function tick():void
- {
- var n:int = mN;
- for (var i:int = 0;i < n;i++) {
- mStars[i].x -= Number(mStarVs[i]);
- if (mStars[i].x < 0) {
- mStars[i].x += mWidth;
- mStars[i].y = int( Math.random()*mHeight );
- }
- }
- }
- public function draw():void
- {
- var g:Graphics = graphics;
- var n:int = mN;
- g.clear();
- for (var i:int = 0;i < n;i++) {
- g.beginFill(0xffffff);
- g.drawCircle( mStars[i].x, mStars[i].y , 0.4);
- }
- }
- }
ゲームっぽくしてみたforked from: なんとかディウスっぽい背景 この地形を見てるとSFCaveとかの類を思い出す
- // forked from ton's ゲームっぽくしてみたforked from: なんとかディウスっぽい背景
- // forked from gyuque's なんとかディウスっぽい背景
- // キーを押すと上昇、離すと下降します
- package
- {
- import flash.display.*;
- import flash.geom.*;
- import flash.events.*;
- import flash.ui.*;
- [SWF(width="320", height="240", backgroundColor="0x000000", frameRate="30")]
- public class Nemesis extends Sprite
- {
- public static const W:int = 320;
- public static const H:int = 240;
- private var mBGen:MountainGen = new MountainGen(160);
- private var mTGen:MountainGen = new MountainGen(160, 1);
- private var mScreenBmp:Bitmap;
- private var mScreen:BitmapData = new BitmapData(W, H, false, 0);
- private var mStarbg:StarBG = new StarBG(W, H, 50);
- private var mBGScreen:BitmapData = new BitmapData(W, H, true, 0);
- private var player:Player = new Player();
- private var isDown:Boolean = false;
- private var action:String;
- private var count:int;
- function Nemesis()
- {
- mScreenBmp = new Bitmap(mScreen);
- addChild(mScreenBmp);
- player.bmp = new BitmapData(W, H, true, 0);
- var i:int;
- mBGen.step();
- mTGen.step();
- for (i = 0;i < W;i++) {
- mBGen.step();
- mTGen.step();
- mBGen.draw(mBGScreen, i, 80);
- mTGen.draw(mBGScreen, i, 0, false);
- }
- addEventListener(Event.ENTER_FRAME, onEnterFrame);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
- changeAction("play");
- }
- private function onKeyDownHandler(e:KeyboardEvent):void {isDown = true;}
- private function onKeyUpHandler(e:KeyboardEvent):void {isDown = false;}
- private function changeAction(str:String):void
- {
- action = str;
- count = -1;
- }
- private function onEnterFrame(e:Event):void
- {
- switch(action)
- {
- case "play":
- play();
- draw();
- hitcheck();
- break;
- case "miss":
- miss();
- draw();
- break;
- }
- count++;
- }
- private function play():void
- {
- if(count == 0)
- {
- player.x = 70;
- player.y = H / 2;
- player.vx = 3;
- player.vy = -2;
- player.visible = true;
- }
- mStarbg.tick();
- if(isDown == true) {
- player.vy -= 0.25;
- }
- else {
- player.vy += 0.25;
- }
- player.y += player.vy;
- scroll(player.vx);
- }
- private var particles:Array;
- private function miss():void
- {
- if(count == 0)
- {
- player.visible = false;
- particles = new Array();
- for (var i:int = 0; i < 20; i++)
- {
- particles[i] = {
- x : player.x-16 + Math.random()*32,
- y : player.y-16 + Math.random()*32,
- vx : -3 + Math.random()*6,
- vy : -3 + Math.random()*6,
- size : 30
- };
- }
- }
- mStarbg.tick();
- for each(var obj:Object in particles)
- {
- obj.x += obj.vx;
- obj.y += obj.vy;
- obj.vx /= 1.1;
- obj.vy /= 1.1;
- obj.size /= 1.2;
- }
- if(count >= 30)
- {
- particles = new Array();
- changeAction("play");
- }
- }
- private function scroll(vx:Number):void
- {
- player.bmp.scroll(-vx, 0);
- mBGScreen.scroll(-vx, 0);
- mBGScreen.fillRect(new Rectangle(W-vx, 0, vx, H), 0);
- var i:int;
- mBGen.step();
- mTGen.step();
- for (i = 0;i < vx;i++)
- {
- mBGen.step();
- mTGen.step();
- mBGen.draw(mBGScreen, W-vx+i, 80);
- mTGen.draw(mBGScreen, W-vx+i, 0, false);
- }
- }
- private function draw():void
- {
- mScreen.fillRect(mScreen.rect, 0);
- mStarbg.draw(mScreen);
- player.draw();
- mScreen.copyPixels(player.bmp, player.bmp.rect, new Point(0, 0));
- mScreen.copyPixels(mBGScreen, mScreen.rect, new Point(0, 0));
- for each(var obj:Object in particles) {
- mScreen.fillRect(new Rectangle(obj.x-obj.size/2, obj.y-obj.size/2, obj.size, obj.size), 0xFFFFFF);
- }
- }
- private function hitcheck():void
- {
- if(mScreen.getPixel(player.x, player.y) != 0xFFFFFF)
- {
- changeAction("miss");
- }
- }
- }
- }
- import flash.display.*;
- import flash.events.*;
- import flash.geom.*;
- import flash.filters.*;
- class MountainGen
- {
- private var mPrevBuffer:Array;
- private var mHeight:int;
- private var mCount:int = 0;
- private var tmpBuffer:Array;
- private var mGenFunc:Function;
- function MountainGen(h:int, generator:int = 0)
- {
- mHeight = h;
- mGenFunc = generator ? genWav2 : genWav;
- mPrevBuffer = new Array(h);
- tmpBuffer = new Array(h);
- }
- public function draw(b:BitmapData, x:int, y:int, rev:Boolean = true):void
- {
- var i:int;
- for (i = 0;i < mHeight;i++) {
- if (tmpBuffer[i]) {
- var c:int = tmpBuffer[i];
- b.setPixel32(x, rev ? (y+mHeight-i) : (y+i), 0xff000000 | (c/3+11) | ((c/5 + 170)<<16) | ((c/2+60) << 8));
- }
- }
- }
- public function step():void
- {
- var t:Number = Number(mCount) * 0.02;
- var h:int = mGenFunc(t) * mHeight;
- var i:int, k:int, m:int;
- for (i = 0;i < mHeight;i++) {
- mPrevBuffer[i] = tmpBuffer[i];
- }
- for (i = 0;i < mHeight;i++) {
- tmpBuffer[i] = (i < h) ? (Math.random()*80 + 80) : 0;
- if (tmpBuffer[i]) {
- if (mPrevBuffer[i])
- tmpBuffer[i] = (tmpBuffer[i] + mPrevBuffer[i]*7)/8;
- if (mPrevBuffer[i] == 0 || i == (h-1)) {
- m = 50;
- for (k = i;k >= 0 && m > 0;k--, m-=4) {
- if (m > 33) m--;
- tmpBuffer[k] += m;
- m += Math.random()*7;
- }
- }
- if (mPrevBuffer[i+1] && i == (h-1)) {
- m = -48;
- for (k = i;k >= 0 && m < 0;k--, m++) {
- tmpBuffer[k] += m;
- if (tmpBuffer[k]<1) tmpBuffer[k] = 1;
- }
- }
- }
- }
- for (i = 0;i < mHeight;i++)
- tmpBuffer[i] = (tmpBuffer[i] < 0) ? 0 : (tmpBuffer[i] > 255) ? 255 : tmpBuffer[i];
- mCount++;
- }
- private static function genWav(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*10) * 0.02;
- v *= Math.cos(t*0.1);
- if (nest < 5)
- v += genWav(t+1, ++nest);
- v = v*0.2 + 0.3;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- private static function genWav2(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*9) * 0.02;
- v *= Math.cos(0.2 + t*0.15);
- if (nest < 5)
- v += genWav2(t+1, ++nest);
- v = v*0.2 + 0.2;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- }
- class StarBG
- {
- private var mWidth:int;
- private var mHeight:int;
- private var mStars:Array;
- private var mN:int;
- private var mCount:int = 0;
- function StarBG(w:int, h:int, n:int)
- {
- mWidth = w;
- mHeight = h;
- mN = n;
- mStars = new Array(n);
- for (var i:int = 0;i < n;i++) {
- mStars[i] = {
- x : Math.random()*w, y : Math.random()*h, speed : -Math.random()*3-2,
- color : ((Math.random()*0xC0+0x40)<<8)+((Math.random()*0xC0+0x40)<<16)+(Math.random()*0xC0+0x40),
- blink : Math.floor(Math.random())*40+15
- };
- }
- }
- public function tick():void
- {
- var n:int = mN;
- for each(var star:Object in mStars)
- {
- star.x += star.speed;
- if(star.x < 0)
- {
- star.x += mWidth;
- star.y = Math.random()*mHeight;
- star.speed = -Math.random()*3-2;
- }
- }
- mCount++;
- }
- public function draw(b:BitmapData):void
- {
- for each(var star:Object in mStars)
- {
- if((mCount % star.blink) == 1) {
- b.setPixel(star.x, star.y, 0xFFFFFF);
- }
- else {
- b.setPixel(star.x, star.y, star.color);
- }
- }
- }
- }
- class Player
- {
- public var x:Number;
- public var y:Number;
- public var vx:Number;
- public var vy:Number;
- public var bmp:BitmapData;
- public var visible:Boolean;
- public var state:String = "normal";
- public function draw():void
- {
- bmp.colorTransform(bmp.rect, new ColorTransform(0.7, 0.9, 0.98, 1, 0, 0, 0, 0));
- bmp.applyFilter(bmp, bmp.rect, new Point(0, 0), new BlurFilter(0, 2, 1));
- if(visible == true) {
- bmp.fillRect(new Rectangle(x-1, y-Math.abs(vy)/2-2, vx+1, Math.abs(vy)+4), 0xFFFFFFFF);
- }
- }
- }
ゲームっぽくしてみたforked from: なんとかディウスっぽい背景 操作系をよっぱらい方式にしてみた
- // forked from ton's ゲームっぽくしてみたforked from: なんとかディウスっぽい背景
- // forked from gyuque's なんとかディウスっぽい背景
- // ゲームっぽくしてみた
- // 十字キーで移動
- // スペースキーで弾発射
- // だれか当たり判定つけて><
- // 操作系をよっぱらい方式にしてみた
- //十字キー上で上昇、ほっとくと下降します
- package
- {
- import flash.display.*;
- import flash.geom.*;
- import flash.events.*;
- import flash.ui.Keyboard;
- [SWF(width="320", height="240", backgroundColor="0x000000", frameRate="30")]
- public class Nemesis extends Sprite
- {
- public static const W:int = 320;
- public static const H:int = 240;
- private var mScroll:int = 0;
- private var mMyPos:Point;
- private var mBGen:MountainGen = new MountainGen(160);
- private var mTGen:MountainGen = new MountainGen(160, 1);
- private var mBGScreen:BitmapData = new BitmapData(W, H, true, 0);
- private var mBGScreenBmp:Bitmap;
- private var mBGScreenBmp2:Bitmap;
- private var mStarbg:StarBG = new StarBG(W, H, 30);
- private var ship:Ship = new Ship(0x00ffff);
- private var speed:int = 4;
- private var isUp:Boolean = false;
- private var isDown:Boolean = false;
- private var isLeft:Boolean = false;
- private var isRight:Boolean = false;
- private var isShot:Boolean = false;
- function Nemesis()
- {
- addChild(mStarbg);
- mBGScreenBmp = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp);
- mBGScreenBmp2 = new Bitmap(mBGScreen);
- addChild(mBGScreenBmp2);
- addChild(ship);
- ship.x = 40;
- ship.y = H / 2;
- var i:int;
- mBGen.step();
- mTGen.step();
- for (i = 0;i < W;i++) {
- mBGen.step();
- mTGen.step();
- mBGen.draw(mBGScreen, i, 80);
- mTGen.draw(mBGScreen, i, 0, false);
- }
- addEventListener(Event.ENTER_FRAME, tick);
- stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
- stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUpHandler);
- }
- private var _clrrc:Rectangle = new Rectangle(0, 0, 1, H);
- private function tick(e:Event):void
- {
- var ox:int = mScroll % W;
- _clrrc.x = ox;
- mBGScreen.fillRect(_clrrc, 0);
- mStarbg.tick();
- mBGen.step();
- mTGen.step();
- mStarbg.draw();
- mBGen.draw(mBGScreen, ox, 80);
- mTGen.draw(mBGScreen, ox, 0, false);
- mBGScreenBmp.x = -ox;
- mBGScreenBmp2.x = W-ox;
- mScroll++;
- //ship.y -= isUp? speed : 0;
- //ship.y += isDown? speed: 0;
- //上で上昇、ほっとくと下降
- ship.y -= isUp? speed : -speed;
- //ship.y += isDown? speed: 0;
- ship.x -= isLeft? speed: 0;
- ship.x += isRight? speed: 0;
- if (isShot && !(mScroll%5)) {
- var bullet:Bullet = new Bullet(0xff00ff, 3, 20);
- bullet.x = ship.x;
- bullet.y = ship.y;
- addChild(bullet);
- }
- if (ship.x - ship.width< 0) ship.x = ship.width;
- else if (ship.x > W) ship.x = W;
- if (ship.y - ship.height/2 < 0) ship.y = ship.height/2;
- else if (ship.y + ship.height/2 > H) ship.y = H - ship.height/2;
- }
- private function onKeyDownHandler(e:KeyboardEvent):void {
- switch(e.keyCode) {
- case Keyboard.UP: isUp = true; break;
- case Keyboard.DOWN: isDown = true; break;
- case Keyboard.LEFT: isLeft = true; break;
- case Keyboard.RIGHT: isRight = true; break;
- case Keyboard.SPACE: isShot = true; break;
- }
- }
- private function onKeyUpHandler(e:KeyboardEvent):void
- {
- switch(e.keyCode) {
- case Keyboard.UP: isUp = false; break;
- case Keyboard.DOWN: isDown = false; break;
- case Keyboard.LEFT: isLeft = false; break;
- case Keyboard.RIGHT: isRight = false; break;
- case Keyboard.SPACE: isShot = false; break;
- }
- }
- }
- }
- import flash.display.*;
- import flash.events.Event;
- import flash.geom.Point;
- class Ship extends Sprite
- {
- public var color:uint;
- function Ship(color:uint)
- {
- this.color = color;
- this.graphics.lineStyle(0, color);
- this.graphics.lineTo( -30, -10);
- this.graphics.lineTo( -30, 10);
- this.graphics.lineTo(0, 0);
- this.graphics.endFill();
- }
- }
- class Bullet extends Sprite
- {
- public var color:uint;
- public var size:uint;
- public var speed:uint;
- function Bullet(color:uint = 0x0000ff, size:uint = 3, speed:uint = 5)
- {
- this.color = color;
- this.size = size;
- this.speed = speed;
- this.graphics.lineStyle(0, color);
- this.graphics.drawCircle(0, 0, size);
- this.graphics.endFill();
- addEventListener(Event.ENTER_FRAME, updateHandler);
- }
- private function updateHandler(e:Event):void
- {
- this.x += speed;
- if (this.x + size / 2 > Nemesis.W) {
- this.parent.removeChild(this);
- removeEventListener(Event.ENTER_FRAME, updateHandler);
- }
- }
- }
- class MountainGen
- {
- private var mPrevBuffer:Array;
- private var mHeight:int;
- private var mCount:int = 0;
- private var tmpBuffer:Array;
- private var mGenFunc:Function;
- function MountainGen(h:int, generator:int = 0)
- {
- mHeight = h;
- mGenFunc = generator ? genWav2 : genWav;
- mPrevBuffer = new Array(h);
- tmpBuffer = new Array(h);
- }
- public function draw(b:BitmapData, x:int, y:int, rev:Boolean = true):void
- {
- var i:int;
- for (i = 0;i < mHeight;i++) {
- if (tmpBuffer[i]) {
- var c:int = tmpBuffer[i];
- b.setPixel32(x, rev ? (y+mHeight-i) : (y+i), 0xff000000 | (c/3+11) | ((c/5 + 170)<<16) | ((c/2+60) << 8));
- }
- }
- }
- public function step():void
- {
- var t:Number = Number(mCount) * 0.02;
- var h:int = mGenFunc(t) * mHeight;
- var i:int, k:int, m:int;
- for (i = 0;i < mHeight;i++) {
- mPrevBuffer[i] = tmpBuffer[i];
- }
- for (i = 0;i < mHeight;i++) {
- tmpBuffer[i] = (i < h) ? (Math.random()*80 + 80) : 0;
- if (tmpBuffer[i]) {
- if (mPrevBuffer[i])
- tmpBuffer[i] = (tmpBuffer[i] + mPrevBuffer[i]*7)/8;
- if (mPrevBuffer[i] == 0 || i == (h-1)) {
- m = 50;
- for (k = i;k >= 0 && m > 0;k--, m-=4) {
- if (m > 33) m--;
- tmpBuffer[k] += m;
- m += Math.random()*7;
- }
- }
- if (mPrevBuffer[i+1] && i == (h-1)) {
- m = -48;
- for (k = i;k >= 0 && m < 0;k--, m++) {
- tmpBuffer[k] += m;
- if (tmpBuffer[k]<1) tmpBuffer[k] = 1;
- }
- }
- }
- }
- for (i = 0;i < mHeight;i++)
- tmpBuffer[i] = (tmpBuffer[i] < 0) ? 0 : (tmpBuffer[i] > 255) ? 255 : tmpBuffer[i];
- mCount++;
- }
- private static function genWav(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*10) * 0.02;
- v *= Math.cos(t*0.1);
- if (nest < 5)
- v += genWav(t+1, ++nest);
- v = v*0.2 + 0.3;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- private static function genWav2(t:Number, nest:int = 0):Number
- {
- var v:Number = Math.sin(t);
- v += Math.cos(t*3) * 0.1;
- v += Math.cos(0.1 + t*9) * 0.02;
- v *= Math.cos(0.2 + t*0.15);
- if (nest < 5)
- v += genWav2(t+1, ++nest);
- v = v*0.2 + 0.2;
- return (v<0) ? 0 : (v>1) ? 1 : v;
- }
- }
- class StarBG extends Sprite
- {
- private var mWidth:int;
- private var mHeight:int;
- private var mStars:Array;
- private var mStarVs:Array;
- private var mN:int;
- function StarBG(w:int, h:int, n:int)
- {
- mWidth = w;
- mHeight = h;
- mN = n;
- mStars = new Array(n);
- mStarVs = new Array(n);
- for (var i:int = 0;i < n;i++) {
- mStars[i] = new Point(int( Math.random()*w ), int( Math.random()*h ));
- mStarVs[i] = Math.random() + 0.2;
- }
- }
- public function tick():void
- {
- var n:int = mN;
- for (var i:int = 0;i < n;i++) {
- mStars[i].x -= Number(mStarVs[i]);
- if (mStars[i].x < 0) {
- mStars[i].x += mWidth;
- mStars[i].y = int( Math.random()*mHeight );
- }
- }
- }
- public function draw():void
- {
- var g:Graphics = graphics;
- var n:int = mN;
- g.clear();
- for (var i:int = 0;i < n;i++) {
- g.beginFill(0xffffff);
- g.drawCircle( mStars[i].x, mStars[i].y , 0.4);
- }
- }
- }
notice: 



