Vitor Wdson 0 Denunciar post Postado Março 13, 2012 Gente to fazendo um jogo de sinuca mas quando eu vou calcular a força da: ex: max = 150 min = 140 só tem 10 de diferença como q eu faço. to fazendo assim: import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.MouseEvent; import fl.transitions.Tween; import fl.transitions.easing.None; import flash.geom.Rectangle; var power:int = 0; var distancia:int = 0; // Mecher Taco var verif:Timer = new Timer(0,1); var volta:Tween; var area:int = 225 - 175; verif.addEventListener(TimerEvent.TIMER, verifica); stage.addEventListener(MouseEvent.MOUSE_DOWN, clica); function clica(e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_DOWN, clica); stage.addEventListener(MouseEvent.MOUSE_MOVE, meche); stage.addEventListener(MouseEvent.MOUSE_UP, solta); } function verifica(e:TimerEvent):void { taco_linha.taco.startDrag(false, new Rectangle(-225, 0 , 75,0)); } function meche(e:MouseEvent):void { stage.addEventListener(MouseEvent.MOUSE_UP, solta); verif.start(); } function solta(e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, meche); stage.removeEventListener(MouseEvent.MOUSE_UP, solta); stage.addEventListener(MouseEvent.MOUSE_DOWN, clica); verif.stop(); // calculando força power = area - ( area - (taco_linha.taco.x / 3) ); taco_linha.taco.stopDrag(); volta = new Tween(taco_linha.taco, "x", None.easeNone, 0, -175, 1, true); taco_linha.taco.x = 175,20;}// Colisãovar colisao:Boolean = false;var testColi:Timer = new Timer(1);var anima:Tween;testColi.addEventListener(TimerEvent.TIMER, testeColisao);testColi.start();function testeColisao(e:TimerEvent):void { if (taco_linha.taco.hitTestObject(branca)){ distancia = power; colisao = true; } if (colisao == true) { trace ( distancia); anima = new Tween(branca, "x", None.easeOut, branca.x, (taco_linha.linha.x + distancia), 12, false); colisao = false; }} Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Março 14, 2012 Recomendo usar o teronema de pitagoras para calcular a distância. Pois sendo um jogo de sinuca eu acho que depois a linha vai girar conforme o usuario move o mouse. Para calcular com o teronema de pitágoras: Então, para calcular: // hipotenusa² = cateto_oposto² + cateto_adjascente² var ca:Number = Math.abs(bola.x - mouseX); var co:Number = Math.abs(bola.y - mouseY); var somacateto:Number = Math.pow(ca,2) , Math.pow(co,2); var hipotenusa:Number = Math.sqrt(somacateto); assim que eu calcularia. para rotacionar a linha de acordo com o mouse tem esse script:(no segundo post, do brunobispo) http://forum.imaster...7471-movimento/ Como é que você vai aplicar essa força a bola? Vai usar alguma api como a do box2d? Compartilhar este post Link para o post Compartilhar em outros sites