// イベントリスナーmy_ball.addEventListener(MouseEvent.MOUSE_DOWN, switchOn);stage.addEventListener(MouseEvent.MOUSE_UP, switchOff);stage.addEventListener(MouseEvent.MOUSE_MOVE, moveBox);stage.addEventListener(Event.ENTER_FRAME, throwBox);// パラメータvar sw:Boolean = false;var click_x:int = 0;var click_y:int = 0;var mouseX_bef:int;var mouseY_bef:int;var v_x:Number = 0;var v_y:Number = 0;var rub:Number = 1.01; // 摩擦var ela:Number = 1.2; //弾性率var limitX:int = stage.stageWidth - my_ball.width;var limitY:int = stage.stageHeight - my_ball.height;// マウスダウンするとスイッチON&ズレ分取得function switchOn(event:MouseEvent):void { sw = true; click_x = event.stageX - my_ball.x; click_y = event.stageY - my_ball.y;}// マウスアップするとスイッチfunction switchOff(event:MouseEvent):void { sw = false;}// ボックスを移動する&速度指定function moveBox(event:MouseEvent):void { if(sw) { my_ball.x = stage.mouseX - click_x; my_ball.y = stage.mouseY - click_y; v_x = stage.mouseX - mouseX_bef; v_y = stage.mouseY - mouseY_bef; mouseX_bef = stage.mouseX; mouseY_bef = stage.mouseY; }}// ボールを投げるfunction throwBox(event:Event):void { if(!sw) { // 捕まえられたら止まる // 画面外に行かないように if(my_ball.x < 0) my_ball.x = 0; if(my_ball.x > limitX) my_ball.x = limitX; if(my_ball.y < 0) my_ball.y = 0; if(my_ball.y > limitY) my_ball.y = limitY; // 端っこで跳ね返る if((my_ball.x + v_x) < 0 || (my_ball.x + v_x) > limitX) { v_x = -v_x/ela; } if((my_ball.y + v_y) < 0 || (my_ball.y + v_y) > limitY) { v_y = -v_y/ela; } // 摩擦 v_x = v_x/rub; v_y = v_y/rub; // 移動 my_ball.x += v_x my_ball.y += v_y; // 動き続けないように if(Math.abs(v_x) < 0.01) v_x = 0; if(Math.abs(v_y) < 0.01) v_y = 0; }}
このブログ記事を参照しているブログ一覧: ボールの放り投げ
このブログ記事に対するトラックバックURL: http://www.hecomi.com/mt/mt-tb.cgi/33
Introduction
凹みTipsはHTML、CSS、PHP、ActionScript3.0、JavaScriptからAjaxまで初心者の凹が試行錯誤繰り返しながら勉強していくサイトです。一緒に勉強していきましょう!
Categories
Recent Entries
Monthly Archives