Forked from: chabudai's doraを描いてみた diff:217 doraをぱーてぃくるにしてみた ll_koba_ll forked:7favorite:13lines:168license : All rights reserved modified : 2008-12-22 01:53:45 Embed Tweet // forked from chabudai's doraを描いてみた package { import flash.display.*; import flash.events.*; import flash.geom.*; public class BulletDora extends Sprite { private var SPEED_FO:Number = 0.8; private var canvas_bd:BitmapData; private var ctf:ColorTransform; private var temp:Sprite; public function BulletDora () { addEventListener( Event.ADDED_TO_STAGE, added ); } private function added( e:Event ):void { if ( e.target == this ) { removeEventListener( e.type, arguments.callee ); setup(); } } private function setup():void { canvas_bd = new BitmapData( stage.stageWidth, stage.stageHeight, false, 0x000000 ); addChild( new Bitmap( canvas_bd ) ); ctf = new ColorTransform( SPEED_FO, SPEED_FO, SPEED_FO, 1.0 ); temp = new Sprite(); addEventListener( Event.ENTER_FRAME, update, false, 10 ); } private function update( e:Event ):void { for ( var i:int = 0; i < 3; ++i ) { fire(); } canvas_bd.colorTransform( canvas_bd.rect, ctf ); } private function fire():void { var x:Number = stage.stageWidth / 2; var y:Number = stage.stageHeight / 2; var v:Number = 3*Math.random(); var r:Number = 2*Math.PI * Math.random(); var vx:Number = v * Math.cos( r ); var vy:Number = v * Math.sin( r ); var size:Number = 1 + 4*Math.random(); var color:uint = 0xffffff * Math.random(); var mtx:Matrix = new Matrix(); /* var bullet:Sprite = new Sprite(); bullet.graphics.beginFill( color ); bullet.graphics.drawCircle( 0, 0, size ); bullet.graphics.endFill(); //*/ var bullet:Dora = new Dora(1); temp.addChild( bullet ); bullet.addEventListener( Event.ENTER_FRAME, function( e:Event ):void { v += 0.1; r += 0.03; vx = v * Math.cos( r ); vy = v * Math.sin( r ); x += vx; y += vy; mtx.tx = x; mtx.ty = y; canvas_bd.draw( bullet, mtx ); if ( ( x < 0 ) || ( y < 0 ) || ( x > stage.stageWidth ) || ( y > stage.stageHeight ) ) { bullet.removeEventListener( e.type, arguments.callee ); bullet.graphics.clear(); temp.removeChild( bullet ); bullet = null; } }, false, 1 ); } } } import flash.display.*; import flash.geom.*; class Dora extends Sprite{ public function Dora(num:int) { var sp:Sprite = new Sprite(); //sp.filters = [new GlowFilter(0xBB44BB,0.4,32,32)]; addChild(sp); var head:Sprite = new Sprite(); var w:Number = 94; var h:Number = 82; //頭を描く head.graphics.beginFill(0xffffff * Math.random()); head.graphics.moveTo(-w/2, 0); head.graphics.curveTo(-w/2+2, -h/2+1, 0, -h/2); head.graphics.curveTo(w/2-2, -h/2+1, w/2, 0); head.graphics.curveTo(w/2-1, h/2-1, 0, h/2); head.graphics.curveTo(-w/2+1, h/2-1, -w/2, 0); head.graphics.endFill(); sp.addChild(head); //顔の輪郭を描く var face:Sprite = new Sprite(); face.y = 7; w = 86; h = 67; face.graphics.beginFill(0x000000); face.graphics.moveTo(-w/2, 0); face.graphics.curveTo(-w/2+2, -h/2+1, 0, -h/2); face.graphics.curveTo(w/2-2, -h/2+1, w/2, 0); face.graphics.curveTo(w/2-1, h/2-1, 0, h/2); face.graphics.curveTo( -w/2+1, h/2 - 1, -w / 2, 0); sp.addChild(face); //目を描く var lefteye:Sprite = new Sprite(); lefteye.x = -17.5; lefteye.y = -35; drawOval(lefteye, 17, 19); sp.addChild(lefteye); var eye1:Sprite = new Sprite(); eye1.graphics.beginFill(0x000000); eye1.graphics.drawEllipse(0, 0, 8, 2); eye1.x = -14; eye1.y = -27; sp.addChild(eye1); var righteye:Sprite = new Sprite(); righteye.x = 0.5; righteye.y = -35; drawOval(righteye, 17, 19); sp.addChild(righteye); var eye2:Sprite = new Sprite(); eye2.graphics.beginFill(0x000000); eye2.graphics.drawEllipse(0, 0, 8, 2); eye2.x = 6; eye2.y = -27; sp.addChild(eye2); //鼻を描く var nose:Sprite = new Sprite(); nose.x = -5.5; nose.y = -20; drawOval(nose, 11, 9); sp.addChild(nose); //鼻下を描く var noseline:Sprite = new Sprite(); noseline.graphics.lineStyle(1, 0xFFFFFF); noseline.graphics.moveTo( -0.5, -18); noseline.graphics.lineTo( -0.5, 24); sp.addChild(noseline); //口を描く var mouse:Sprite = new Sprite(); mouse.graphics.lineStyle(1, 0xFFFFFF); mouse.graphics.moveTo( -31, 6); mouse.graphics.curveTo( -24, 24, 0, 24); mouse.graphics.curveTo(24, 24, 31, 6); sp.addChild(mouse); //ヒゲを描く var higeR:Sprite = new Sprite(); higeR.graphics.lineStyle(1, 0xFFFFFF); higeR.graphics.moveTo( -16, -13); higeR.graphics.lineTo( -35, -16); higeR.graphics.moveTo( -17, -9); higeR.graphics.lineTo( -36, -9); higeR.graphics.moveTo( -16, -5); higeR.graphics.lineTo( -35, -2); sp.addChild(higeR); var higeL:Sprite = new Sprite(); higeL.graphics.lineStyle(1, 0xFFFFFF); higeL.graphics.moveTo( 16, -13); higeL.graphics.lineTo( 35, -16); higeL.graphics.moveTo( 17, -9); higeL.graphics.lineTo( 36, -9); higeL.graphics.moveTo( 16, -5); higeL.graphics.lineTo( 35, -2); sp.addChild(higeL); var bmpd:BitmapData = new BitmapData(width, height, true, 0x00ffffff); var m:Matrix = new Matrix(); m.scale(0.5, 0.5); m.translate(width/2, height/2); bmpd.draw(this, m); var b:Bitmap = addChild(new Bitmap(bmpd)) as Bitmap; removeChild(sp); sp = null; b.x -= width/2; b.y -= height/2; } private function drawOval(s:Sprite, w:Number, h:Number):void { s.graphics.beginFill(0xFFFFFF, 100); s.graphics.moveTo(0, h/2); s.graphics.curveTo(0.5, 0.5, w/2, 0); s.graphics.curveTo(w-0.5, 0.5, w, h/2); s.graphics.curveTo(w-0.5, h-0.5, w/2, h); s.graphics.curveTo(0.5, h-0.5, 0, h/2); s.graphics.endFill(); } } Code Fullscreen Preview Fullscreen ashitaka klever bluepix windturbine siouxcitizen.. nyamogera sw_lucchini ikekou atsumo chabudai yaimo : catscolorsproduce chimanaco : particle hacker_wfcn4.. : catscolorsproduce cats colors particle produce curveTo type width height callee addEventListener target drawEllipse removeChild color ty translate tx removeEventListener size lineTo clear scale Event.ADDED_TO_STAGE beginFill sort new page view favorite forked pv308 forked from: doraをぱーてぃくるにしてみた hacker_za80h6yv forked:1 favorite:1lines:168 (diff:1) pv274 forked from: doraをぱーてぃくるにしてみた hiokio forked:0 favorite:1lines:168 (diff:3) pv290 forked from: doraをぱーてぃくるにしてみた kohie_yamashima forked:0 favorite:1lines:168 (diff:1) pv0 forked from: doraをぱーてぃくるにしてみた claytoon forked:0 favorite:0lines:168 (diff:2) pv0 forked from: doraをぱーてぃくるにしてみた claytoon forked:0 favorite:0lines:168 (diff:1) pv0 forked from: doraをぱーてぃくるにしてみた claytoon forked:0 favorite:0lines:168 (diff:1) pv0 forked from: doraをぱーてぃくるにしてみた syoteppachi forked:0 favorite:0lines:168 (diff:1)