比較的それっぽく動くボール。つかんで投げられるよ! @author エスケイ * FITCTOKYOの復習的な。 * コメントいれるのめんどかったから変数に日本語使った。反省している。 esukei forked:2favorite:1lines:74license : MIT License modified : 2009-11-29 01:51:47 Embed Tweet /** * @author エスケイ * FITCTOKYOの復習的な。 * コメントいれるのめんどかったから変数に日本語使った。反省している。 */ package { import flash.display.Sprite; import flash.events.TimerEvent; import flash.events.MouseEvent; import flash.utils.Timer; public class FlashTest extends Sprite { private var X軸の加速度:Number = 0; private var Y軸の加速度:Number = 0; private var X軸の速度:Number = 10; private var Y軸の速度:Number = -10; private var 反発係数:Number = 0.8; private var 空気抵抗:Number = 0.995; private var 重力定数:Number = 0.5; private var ボール:Sprite; private var ボールの半径:Number = 20; private var 一フレーム前のX:Number; private var 一フレーム前のY:Number; private var タイマー:Timer; private var 一フレームあたりの時間:Number = 1000/60; private var マウスで掴まれている:Boolean = false; public function FlashTest() { ボール = new Sprite(); ボール.x = stage.stageWidth / 2; ボール.y = stage.stageHeight / 2; ボール.graphics.beginFill(0xFFFF0000); ボール.graphics.drawCircle(0, 0, ボールの半径); ボール.addEventListener(MouseEvent.MOUSE_DOWN,function(event:MouseEvent):void{ マウスで掴まれている = true; }); ボール.addEventListener(MouseEvent.MOUSE_UP,function(event:MouseEvent):void{ マウスで掴まれている = false; }); addChild(ボール); タイマー = new Timer(一フレームあたりの時間); タイマー.addEventListener(TimerEvent.TIMER, function(event:TimerEvent):void{ if(ボール.x + ボールの半径 > stage.stageWidth) { ボール.x = stage.stageWidth - ボールの半径; X軸の速度 *= -反発係数; } if(ボール.x - ボールの半径 < 0) { ボール.x = ボールの半径; X軸の速度 *= -反発係数; } if(ボール.y + ボールの半径 > stage.stageHeight) { ボール.y = stage.stageHeight - ボールの半径; Y軸の速度 *= -反発係数; } if(ボール.y - ボールの半径 < 0) { ボール.y = ボールの半径; Y軸の速度 *= -反発係数; } if(マウスで掴まれている) { X軸の速度 = mouseX - 一フレーム前のX; Y軸の速度 = mouseY - 一フレーム前のY; } else { X軸の速度 = X軸の速度 * 空気抵抗 + X軸の加速度; Y軸の速度 = Y軸の速度 * 空気抵抗 + (Y軸の加速度 + 重力定数); } ボール.x += X軸の速度; ボール.y += Y軸の速度; 一フレーム前のX = ボール.x; 一フレーム前のY = ボール.y; }); タイマー.start(); } } } Code Fullscreen Preview Fullscreen Laqu MouseEvent addEventListener start MouseEvent.MOUSE_UP mouseY MouseEvent.MOUSE_DOWN mouseX Timer Boolean addChild Sprite Number sort new page view favorite forked pv712 床の摩擦をつけたよ Nicolas forked:1 favorite:3lines:76 (diff:7) pv210 forked from: 比較的それっぽく動くボール。つかん.. hacker_9p8x8mco forked:0 favorite:0lines:74 (diff:53)