DavidSena 0 Denunciar post Postado Janeiro 23, 2004 Por favor estou tentando desenvolver um projeto onde um carro que trafega por uma série de ruas entre quarteirões nos quais pode entrar em certas garagens .Pois bem ,a duvida é como posso fazer pra delimitar ao carro o que é parede e o que é garagem de forma que ele não ultrapasse as parede so trafegando pelas ruas e so entrando nas garagens.Ate o momento resolvi o problema manualmente separando cada limite de parede como um movieclip tipo : dando um comando que muda o _x e _y do carro caso o carro bata nela mas fica manualmente muito trabalhoso a medida que o projeto fica maior!Alguem tem alguma solução??Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Janeiro 23, 2004 Usa o HitTest, olha vou colocar o movimento total do carro aqui e até um turbo se ele apertar a tecla space rs, coloca a instancia do carro pra "carro" sem aspas , e coloca um monte de movieclips instanciados que serão as parede1, parede2 etc, se o carro bater na parede ele volta pra uma coordenada x e y, mas você tb pode fazer o carrinho parar, dá uma olhada se isso te ajuda: onClipEvent (load) { speed = 10; } onClipEvent (enterFrame) { xcarro = _root.carro._x; ycarro = _root.carro._y; if (Key.isDown(Key.UP)) { with (_root.carro) { _y -= speed; _rotation = 0; } } if (Key.isDown(Key.DOWN)) { with (_root.carro) { _y += speed; _rotation = 180; } } if (Key.isDown(Key.LEFT)) { with (_root.carro) { _x -= speed; _rotation = -90; } } if (Key.isDown(Key.RIGHT)) { with (_root.carro) { _x += speed; _rotation = 90; } } if (Key.isDown(Key.UP) and Key.isDown(Key.RIGHT) or Key.isDown(Key.UP) and Key.isDown(Key.LEFT) or Key.isDown(Key.DOWN) and Key.isDown(Key.RIGHT) or Key.isDown(Key.DOWN) and Key.isDown(Key.LEFT)) { speed = 0; } else { speed = 10; } if (Key.isDown(Key.SPACE)) { speed=25; } if (xcarro<0) { _root.carro._x = 759; } else if (xcarro>760) { _root.carro._x = 1; } if (ycarro<0) { _root.carro._y = 419; } else if (ycarro>420) { _root.carro._y = 1; } if (Key.isDown(Key.SPACE)){ speed = 20 }else{ speed = 10 } if (_root.carro.hitTest(_root.parede1) or _root.carro.hitTest(_root.parede2) or _root.carro.hitTest(_root.parede3) or _root.carro.hitTest(_root.parede4) or _root.carro.hitTest(_root.parede5) or _root.carro.hitTest(_root.parede6)) { with (_root.carro) { _x=51; _y=331; _rotation=0; } } } qquer duvida poste aí novamente. abraço, Carneirinho Compartilhar este post Link para o post Compartilhar em outros sites
DavidSena 0 Denunciar post Postado Janeiro 24, 2004 Muito obrigado Carneirinho eu tinha feito algo semelhante , tinha ficado funcional mas muito trabalhoso manualmente.Não pude utilizar seu codigo todo pois no comando :...if (_root.carro.hitTest(_root.parede1) or _root.carro.hitTest(_root.parede2) or _root.carro.hitTest(_root.parede3) or _root.carro.hitTest(_root.parede4) or _root.carro.hitTest(_root.parede5) or _root.carro.hitTest(_root.parede6)) {with (_root.carro) {_x=51;_y=331;_rotation=0;...quando o carro bate por dentro da parede acaba por atravessá-la para a posição _x=51 , _y=331.Abaei por duplicar a parede pra dentro tb.Poxa mas muito obrigado mesmo pela dica acabei por utilizar a parte do codigo referente ao turbo e qnd clica simultaneamente com 2 setas. Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Janeiro 24, 2004 mas você pode usar o with apenas pra controlar o speedy, tipo se ele batr você coloca speed = 0 entendeu? Compartilhar este post Link para o post Compartilhar em outros sites