Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel o rei

Problema com seno e cosseno

Recommended Posts

O mc mira é virado para o mouse e tem as mesmas coordenadas do mc bola , quando aperto espaço com o ângulo de mira a bola vai na mesma direção do mouse sem parar. O problema é que vai na direção errada.

A parte do script em que estou com problema:

 

if(mira.visible == true){
mira.rotation = Math.round(mira.rotation) ;
var mirarot = mira.rotation ;
var mirarotstr = mirarot.toString;
tecla.text = mira.rotation + "graus"  ;
mira.rotation =  (((Math.atan2(  bola.y - mouseY ,    bola.x - mouseX)) *  180) / Math.PI ) + 90; 
}
function funcm(event:Event){
	mira.x = bola.x ;
	mira.y = bola.y ;

retorna.text = vai.text ; 	

/*if()
{
	
}*/
for(i=0;i<10;i++)
{

	



	var mirarot = ang ;
	
	asy = Math.cos((mirarot * Math.PI)/180);
	seno.text = "seno:" + asx ;
	mirarot = ang ;
		asx = Math.sin((mirarot * Math.PI)/180) ;
	
	cosseno.text = "cosseno: " + asy ;
		if(asx !=0 && mira.visible == false)	
{

bola.x -= asx  / 10 ;
var calcsen = (asx  / 10 );
calcseno.text = calcsen ;

	}
	if(asy !=0 && mira.visible == false)	
{
bola.y +=asy  / 10 ;
var calccosen =  (asy  / 10) ;
calccoseno.text = calccosen ;

	}
	


Eu tenho imagens:

Imagem Postada

O mouse não apareceu mas pela linha vermelha da para saber onde a bola deve passar

Imagem Postada

Mas nem moveu a cordenada y só a x como se não houvesse seno

 

 

Essas linhas são os obstáculos mas eu tirei a colisão para resolver este problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está em como você está movimentando a mira.

Fiz um exemplo somente em AS3.

 

Basta colar no primeiro frame e testar.

 

var mira:MovieClip = new MovieClip();

with( mira.graphics ){
	beginFill(0xFFCC00, 1);
	drawRect(-10, -50, 20, 50);
	endFill();
}

mira.x = stage.stageWidth / 2;
mira.y = stage.stageHeight;

addChild( mira );

addEventListener(Event.ENTER_FRAME, function(e:Event):void {
	mira.rotation =  (Math.atan2(mira.y - mouseY, mira.x - mouseX) * 180 / Math.PI) - 90;
});

stage.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void {
	
	var tiro:MovieClip = new MovieClip();
	with( tiro.graphics ){
		beginFill(0x000000, 1);
		drawCircle(0,0,10);
		endFill();
	}
	
	tiro.x = mira.x;
	tiro.y = mira.y;
	stage.addChildAt( tiro, 0 );
	
	var speedx:Number = (mouseX-tiro.x)/7;
	var speedy:Number = (mouseY-tiro.y)/7;
	
	tiro.addEventListener(Event.ENTER_FRAME, function(e:Event):void {
		e.currentTarget.x += speedx;
		e.currentTarget.y += speedy;
		
		if( e.currentTarget.y < 0 || e.currentTarget.y > stage.stageHeight
		   || e.currentTarget.x < 0 || e.currentTarget.x > stage.stageWidth ){
		
			stage.removeChild( DisplayObject(e.currentTarget) );
			e.currentTarget.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		}
	});
	
});

@braços e fique com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.