カエルバウンド

by naokey0221
import flash.display.MovieClip;
♥0 | Line 255 | Modified 2010-06-14 22:21:52 | MIT License
play

ActionScript3 source code

/**
 * Copyright naokey0221 ( http://wonderfl.net/user/naokey0221 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/cWu3
 */

package
{
	//import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	
	public class FroAnime extends Sprite
	{
		//カエルのクラス
		private var _frog :frog ;
		private var _frog2 :frog ;
		private var _frog3 :frog ;
		
		
		public function FroAnime()
		{
			
			
			_frog = new frog(0x33FF00);
			_frog.addEventListener(MouseEvent.CLICK, onClick);
			_frog.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
			_frog.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); 
			_frog.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
			_frog.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
			//_frog.givVel(40);
			_frog.x = -100;
			_frog.y = 10; 
			addChild( _frog );        // 表示リストに追加

			
			_frog2 = new frog(0xff3333);
			_frog2.addEventListener(MouseEvent.CLICK, onClick2);
			_frog2.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
			_frog2.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); 
			_frog2.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
			_frog2.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
            //_frog2.givVel(40);
			_frog2.x = 50; 
			_frog2.y = 10;   		
			addChild( _frog2 );

			_frog3 = new frog(0x0033ff);
			_frog3.addEventListener(MouseEvent.CLICK, onClick3);
			_frog3.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
			_frog3.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);  
			_frog3.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown);
			_frog3.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
             //_frog3.givVel(40);
			_frog3.x = 220; 
			_frog3.y = 10;   		
			addChild( _frog3 );
			
			
			// 1フレーム毎に実行する処理にmoveCarを追加する
			addEventListener(Event.ENTER_FRAME, movefrog);	
		}
		private function onClick(e:MouseEvent): void
		{ 
			//_frog.count+=1;
			//_frog2.count+=1;
			//_frog3.count+=1;
			
			 //if(_frog.count%2==1)
			  _frog.givVel(40); 
			 //else if(_frog.count%2==0)
			 /*{
				 _frog.givVel(0);
			 }*/
		}
		private function onClick2(e:MouseEvent): void
		{ 
	        _frog2.givVel(40);
		}
		private function onClick3(e:MouseEvent): void
		{ 
			_frog3.givVel(40);
		}
		
		
		
		private function onMouseOver(e:MouseEvent):void 
		{ 
			_frog.over(); 
			_frog2.over();
			_frog3.over();
		} 
		
		private function onMouseOut(e:MouseEvent):void 
		{ 
			_frog.out();
			_frog2.out();
			_frog3.out();
		} 
		
		
		private function onMouseDown(e:MouseEvent):void
		{
			e.currentTarget.startDrag();
		}
		
		//マウス・アップ時にドラッグ終了
		private function onMouseUp(e:MouseEvent):void
		{
			e.currentTarget.stopDrag();
		}
		
		
		private function movefrog(e:Event):void 
		{
			_frog.move();           // カエルを動かす
			_frog2.move();
			_frog3.move();
		}
		
		 
		
		
	}
	
	
}




import flash.display.MovieClip;
import flash.display.Sprite;


class frog extends Sprite
{	
	
	
   // syosoku= 0
	private var _syosoku:int = 0;
	private var _time:Number=0.0;
	private var _tmp:Number=0.0;
	private var _velocity:Number=0.0
	public var count:int=0;
	private var _over:Sprite;
	
	
	
	public function frog(fillColor:uint)
	{
		// 描画
		_draw(fillColor);
		
		// マウス・オーバー時に表示させるSpriteのインスタンスを生成 
		_over = new Sprite();
		
		//_over._draw(0xFFFF33);
		// 非表示に設定 
		_over.visible = false; 
		// 表示リストに追加 
		addChild(_over); 
		
		// マウス・カーソルを手のカーソルに変える 
		buttonMode = true; 
	
	}
	
	public function over():void { 
		// マウス・オーバー時の画像を表示 
		_over.visible = true; 
	} 
	
	public function out():void { 
		// マウス・オーバー時の画像を非表示 
		_over.visible = false; 
	} 

	
	
	
	
	// ガソリンを入れる。
	public function givVel(_amount:int):void {
		if (_amount < 0) {     // もしガソリンの量が0以下だったら
			return;            // 何もしないで、ここで終了
		}
		
		_syosoku += _amount;       // $amountだけ_gasの量を増やす
	}
	
	// 車を動かす
	public function move():void {
		
		_velocity=_syosoku-9.8*_time;
		_tmp=10-(_velocity*_time+(1/2)*9.8*_time*_time);                       
	
		 
		  //_velocity=-1*_velocity;
		  
			  // y=-_tmp;
		  //y=10-(_velocity*_time+(1/2)*9.8*_time*_time);
		  //y=0.0;
		  //}
		if(y>=10)
		{
		  _time=0.0		
		  //y=_tmp;
		}
		
		 y=_tmp;  
		_time+=0.5;
		_syosoku*=0.99;
	}

	
	
	
	
	
	
	
	private function _draw(fillColor:uint):void
	{
		//顔
	    //myCircle1=new DrawCircle(200,200,50,30,0x33FF00,0);
		graphics.beginFill(fillColor)
		graphics.moveTo(200+50,200);
		for(var d:int =0 ;d<360 ;d++)
		{
			var radian:Number =(d/*+keisya*/)*Math.PI/180;
			graphics.lineTo(
				200+50*Math.cos(radian),
				200+30*Math.sin(radian))
		}
		graphics.endFill()
		
		
		
        //myCircle2=new DrawCircle(180,170,10,10,0x000000,0);
		graphics.beginFill(0x000000)
		graphics.moveTo(180+10,170);
		for(var d:int =0 ;d<360 ;d++)
		{
			var radian:Number =(d/*+keisya*/)*Math.PI/180;
			graphics.lineTo(
				180+10*Math.cos(radian),
				170+10*Math.sin(radian))
		}
		graphics.endFill()
 	    
		
			
		//myCircle3=new DrawCircle(220,170,10,10,0x000000,0);
		graphics.beginFill(0x000000)
		graphics.moveTo(220+10,170);
		for(var d:int =0 ;d<360 ;d++)
		{
			var radian:Number =(d/*+keisya*/)*Math.PI/180;
			graphics.lineTo(
				220+10*Math.cos(radian),
				170+10*Math.sin(radian))
		}
		graphics.endFill()

		
		
	    //myCircle4=new LineDrawer(3,191,200,193,199,0x996633);
		graphics.lineStyle(3,0x996633);
		graphics.moveTo(191,200);
		graphics.lineTo(193,199);
      
		
		
		
		
		
		
		//myCircle5=new LineDrawer(3,209,200,207,199,0x996633);
		graphics.lineStyle(3,0x996633);
		graphics.moveTo(209,200);
		graphics.lineTo(207,199);

			
		
		
		//腕
		// myLines1=new LineDrawer(8,170,210,150,230,0x33FF00);
		graphics.lineStyle(8,fillColor);
		graphics.moveTo(170,210);
		graphics.lineTo(150,230);
		 
		//myLines2=new LineDrawer(8,230,210,250,230,0x33FF00);	
		graphics.lineStyle(8,fillColor);
		graphics.moveTo(230,210);
		graphics.lineTo(250,230); 
		
		//myLines3=new LineDrawer(8,150,230,170,250,0x33FF00);
		graphics.lineStyle(8,fillColor);
		graphics.moveTo(150,230);
		graphics.lineTo(170,250); 
		
		//myLines4=new LineDrawer(8,250,230,230,250,0x33FF00);	
		graphics.lineStyle(8,fillColor);
		graphics.moveTo(250,230);
		graphics.lineTo(230,250);
		
		
		//手
		//myLines5=new LinesDrawerR(170,250,0x33FF00,6);
		graphics.lineStyle(3,fillColor);
        for(var d:int=-30;d<=60;d+=30 )
		{
			graphics.moveTo(170,250);
			var radian:Number =d*Math.PI/180;
			graphics.lineTo(
				170+8*Math.cos(radian),
				250+8*Math.sin(radian))
		
		}
        //myLines6=new LinesDrawerL(230,250,0x33FF00,6);	
		graphics.lineStyle(3,fillColor);
		for(var d:int=120;d<=210;d+=30 )
		{
			graphics.moveTo(230,250);
			var radian:Number =d*Math.PI/180;
			graphics.lineTo(
				230+8*Math.cos(radian),
				250+8*Math.sin(radian))
			
		}
	}
   	
		
}


class LineDrawer extends MovieClip
{
	public function LineDrawer(bold:int, centerX:Number,centerY:Number,gx:Number,gy:Number,color:int)
	{
		graphics.lineStyle(bold,/*0x33FF00*/color);
		graphics.moveTo(centerX,centerY);
		graphics.lineTo(gx,gy);
		
		
	}	
	
	
	
}
class LinesDrawerR extends MovieClip
{
	public function LinesDrawerR(centerX:Number,centerY:Number,color:int,length:int)
	{
		graphics.lineStyle(3,color);
				
		for(var d:int=-30;d<=60;d+=30 )
		{
			graphics.moveTo(centerX,centerY);
			var radian:Number =d*Math.PI/180;
			graphics.lineTo(
				centerX+8*Math.cos(radian),
				centerY+8*Math.sin(radian))
			//graphics.lineTo(centerX+8/*length*/ ,centerY+8/*length*/);
		}
		
	}	
	
	
	
}

class LinesDrawerL extends MovieClip
{
	public function LinesDrawerL(centerX:Number,centerY:Number,color:int,length:int)
	{
		graphics.lineStyle(3,color);
	    for(var d:int=120;d<=210;d+=30 )
		{
			graphics.moveTo(centerX,centerY);
			var radian:Number =d*Math.PI/180;
			graphics.lineTo(
				centerX+8*Math.cos(radian),
				centerY+8*Math.sin(radian))
			//graphics.lineTo(centerX+8/*length*/ ,centerY+8/*length*/);
		}	
		
		
		
	}	
	
	
	
}


class DrawCircle extends MovieClip
{
	public function DrawCircle(centerX:Number,centerY:Number,r:Number,r2:Number,color:int,keisya:int)
	{
		
		
		graphics.beginFill(color)
		graphics.moveTo(centerX+r,centerY);
		for(var d:int =0 ;d<360 ;d++)
		{
			var radian:Number =(d+keisya)*Math.PI/180;
			graphics.lineTo(
				centerX+r*Math.cos(radian),
				centerY+r2*Math.sin(radian))
		}
		graphics.endFill()
	}
}