Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel o rei

estou criando um jogo de carro e tenho um problema

Recommended Posts

Tenho um retangulo que é um carro e ele se chama car.

Não é erro de sintaxe, é um problema em relação a virar, fazer a curva.

Indo direto ao assunto: o carro não vai para frente e para tráz, ele simplesmente em qualquer ângulo vai para cima e para baixo nunca pro lado. Resumindo eu quero mudar a posição x do mc car.

 

on(keyPress "<up>")
{
currentY = this._y;
	this._y = currentY - 2;
	
 }

on(keyPress "<Down>")
{
currentY = this._y;
	this._y = currentY + 2;
	
 }

on(keyPress "<Left>")
{

	_root.car._rotation += 5;
 }

on(keyPress "<Right>")
{
_root.car._rotation += 355;
	
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

para alterar a posição x ou y usa:

_root.car.Ypos = 648;

_root.car.Xpos = 426;

 

Eu quero que o carro ande para todos os lados e não só pra frente e pra traz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exemplo de joguinho de carro basico heim...


player.speed = 0;

onEnterFrame = function() {

if (Key.isDown(Key.UP)) {
player.speed += 4;
}
if (Key.isDown(Key.DOWN)) {
player.speed += -0.2;
}
if (Math.abs(player.speed)>10) {
player.speed *= .7;
}
if (Key.isDown(Key.LEFT)) {
player._rotation -= 12;
}
if (Key.isDown(Key.RIGHT)) {
player._rotation += 12;
}
player.speed *= .98;
x = Math.sin(player._rotation*(Math.PI/180))*player.speed;
y = Math.cos(player._rotation*(Math.PI/180))*player.speed*-1;
if (!_root.land.hitTest(player._x+x, player._y+y, true)) {
	player._x += x;
	player._y += y;
} else {
	player.speed *= -.6;
}
}

Melhor que isso só 2 disso :)

Detalhe player é a instancia do carro ... land é a area que o carro tem que correr dentro

E o código é colocado no FRAME e não dentro do objeto.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda mais que expressão é essa :

x = Math.sin(player._rotation*(Math.PI/180))*player.speed;

y = Math.cos(player._rotation*(Math.PI/180))*player.speed*-1;

 

Eu intendi:

player.rotation * (3,14/180)

Mas o que é math.sin e math.cos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Math.sin é o calculo do seno.

Math.cos é o calculo do coseno.

 

De uma estudada na parte de trigonometria no flash, alguns livros trazem esses conceitos, como é o caso do livro do Keith Peters, Foundation ActionScript Animation: Making Things Move

Ótimo livro.

 

Abs

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.