【練習】バネのある動き?
♥0 |
Line 151 |
Modified 2010-02-16 19:36:55 |
MIT License
archived:2017-03-30 08:52:49
ActionScript3 source code
/**
* Copyright Tamanegi_kenshi ( http://wonderfl.net/user/Tamanegi_kenshi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/n667
*/
package {
import flash.display.Sprite;
import flash.events.*;
import flash.ui.Keyboard;
import flash.filters.DropShadowFilter;
public class FlashTest extends Sprite {
public function FlashTest() {
var vx:Number =0;
var vy:Number =0;
var vx2:Number =0;
var vy2:Number =0;
var vx3:Number =0;
var vy3:Number =0;
var vx4:Number =0;
var vy4:Number =0;
var spring:Number =0.2;
var frict:Number =0.8;
var frict2:Number =0.75;
var frict3:Number =0.7;
var frict4:Number =0.7;
var targetX:Number=0;
var targetY:Number=0;
var targetX2:Number=targetX+20;
var targetY2:Number=targetY+80;
var targetX3:Number=targetX2;
var targetY3:Number=targetY2+70;
var targetX4:Number=targetX2+30;
var targetY4:Number=targetY2+70;
var bar_mc:Sprite =new Sprite();
with(bar_mc.graphics){
lineStyle(2);
beginFill(0xffffff);
drawRect(0,0,100,80);
endFill();
}
var dorp:DropShadowFilter=new DropShadowFilter(180,90,0x000000,0.9,10,10,1);
var filter:Array =new Array();
filter.push(dorp);
var child:Sprite = new Sprite();
with(child.graphics){
lineStyle(2);
beginFill(0xffffff);
drawRect(0,0,60,70);
endFill();
}
var child2:Sprite = new Sprite();
with(child2.graphics){
lineStyle(2);
beginFill(0xffffff);
drawRect(0,0,30,50);
endFill();
}
var child3:Sprite = new Sprite();
with(child3.graphics){
lineStyle(2);
beginFill(0xffffff);
drawRect(0,0,30,50);
endFill();
}
var eye1:Sprite =new Sprite();
with(eye1.graphics){
beginFill(0x000000);
drawCircle(30,35,8);
endFill()
}
var eye2:Sprite =new Sprite();
with(eye2.graphics){
beginFill(0x000000);
drawCircle(70,35,8);
endFill()
}
var mouth:Sprite =new Sprite();
with(mouth.graphics){
beginFill(0x000000);
moveTo(50,55);
lineTo(58,65);
lineTo(42,65);
lineTo(50,55);
endFill()
}
addChild(child2);
addChild(child3);
addChild(child);
bar_mc.addChild(eye1);
bar_mc.addChild(eye2);
bar_mc.addChild(mouth);
addChild(bar_mc);
bar_mc.x =0;
bar_mc.y =0;
addEventListener(Event.ENTER_FRAME,onEnter);
stage.addEventListener(KeyboardEvent.KEY_DOWN,down);
function onEnter(event:Event):void{
var ax:Number =(targetX-bar_mc.x)*spring;
var ay:Number =(targetY-bar_mc.y)*spring;
vx +=ax;
vy +=ay;
vx *=frict;
vy *=frict;
bar_mc.x+=vx;
bar_mc.y+=vy;
var ax2:Number =(targetX2-child.x)*spring;
var ay2:Number =(targetY2-child.y)*spring;
vx2 +=ax2;
vy2 +=ay2;
vx2 *=frict2;
vy2 *=frict2;
child.x+=vx2;
child.y+=vy2;
var ax3:Number =(targetX3-child2.x)*spring;
var ay3:Number =(targetY3-child2.y)*spring;
vx3 +=ax3;
vy3 +=ay3;
vx3 *=frict3;
vy3 *=frict3;
child2.x+=vx3;
child2.y+=vy3;
var ax4:Number =(targetX4-child3.x)*spring;
var ay4:Number =(targetY4-child3.y)*spring;
vx4 +=ax4;
vy4 +=ay4;
vx4 *=frict4;
vy4 *=frict4;
child3.x+=vx4;
child3.y+=vy4;
}
function down(event:KeyboardEvent):void{
if(event.keyCode==Keyboard.LEFT){
targetX -=100;
targetX2 -=100;
targetX3 -=100;
targetX4 -=100;
}else if(event.keyCode==Keyboard.RIGHT){
targetX +=100;
targetX2 +=100;
targetX3 +=100;
targetX4 +=100;
}else if(event.keyCode==Keyboard.DOWN){
targetY +=100;
targetY2 +=100;
targetY3 +=100;
targetY4 +=100;
}else if(event.keyCode==Keyboard.UP){
targetY -=100;
targetY2 -=100;
targetY3 -=100;
targetY4 -=100;
}
}
}
}
}