marcolixa 0 Denunciar post Postado Agosto 7, 2009 Olá caros colegas,tenho de fazer um pequeno jogo onde tenho de fazer apenas um carrinho andar. Como tal tenho de fazer uma classe com o nome carro.as mas não estou conseguindo,alguem me pode ajudar por favor? o codigo que ja fiz é o seguinte: package { import flash.display.*; import flash.net.URLRequest; import flash.events.*; public class Carro extends Sprite { public function Carro():void { } Public var incrementa:Number = 0; Public var rotacao_carro:Number = carroMC.rotation; Public var posNeg:Number = 1; Public var aceleracao:Number = .05; Public var velocidade:Number = 0; Public var maxvelocidade:Number = 50; Public var carro:Sprite = new Sprite(); Public var keyLeftPressed:Boolean; Public var keyRightPressed:Boolean; Public var keyUpPressed:Boolean; Public var spaceBarPressed:Boolean; addEventListener(Event.ENTER_FRAME,onEnterFrameFunction); stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed); stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased); public function onEnterFrameFunction(event:Event) { carro=carroMC; velocidade = Math.round((incrementa)*5); velocidadetxt.text = String(velocidade); if ((carroMC.rotation < 180)&&(carroMC.rotation >= 0)) { rotacao_carro = carroMC.rotation; posNeg = 1; } if ((carroMC.rotation < 0)&&(carroMC.rotation > -180)) { rotacao_carro = -1 * carroMC.rotation; posNeg = -1; } if (keyRightPressed) { carroMC.rotation += .5*incrementa; carroMC.gotoAndStop(3); } if (keyLeftPressed) { carroMC.rotation -= .5*incrementa; carroMC.gotoAndStop(2); } if (!keyLeftPressed && !keyRightPressed) { carroMC.gotoAndStop(1); } if (keyUpPressed) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } if (spaceBarPressed) { incrementa -= .5*aceleracao; } if (!spaceBarPressed && velocidade < maxvelocidade) { incrementa += aceleracao; } } else { if (incrementa > 0 && spaceBarPressed) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } incrementa -= 4*aceleracao; } else if (incrementa > 0) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } incrementa -= 1.5*aceleracao; } else { incrementa = 0; } } } public function keyPressed(event:KeyboardEvent) { if (event.keyCode == Keyboard.LEFT) { keyLeftPressed = true; } if (event.keyCode == Keyboard.RIGHT) { keyRightPressed = true; } if (event.keyCode == Keyboard.UP) { keyUpPressed = true; } if (event.keyCode == Keyboard.SPACE) { spaceBarPressed = true; } } public function keyReleased(event:KeyboardEvent) { if (event.keyCode == Keyboard.LEFT) { keyLeftPressed = false; } if (event.keyCode == Keyboard.RIGHT) { keyRightPressed = false; } if (event.keyCode == Keyboard.UP) { keyUpPressed = false; } if (event.keyCode == Keyboard.SPACE) { spaceBarPressed = false; } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Agosto 7, 2009 Você quer ajuda em que? Porque parar pra ler esse código todo não dá, seja específico. Abs Compartilhar este post Link para o post Compartilhar em outros sites
marcolixa 0 Denunciar post Postado Agosto 8, 2009 Você quer ajuda em que? Porque parar pra ler esse código todo não dá, seja específico. Abs Quero saber se o class esta bem construida,se é aaasim que se constroi uma class. obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Agosto 8, 2009 Ah só quer saber isso... beleza package { import flash.display.*; import flash.net.URLRequest; import flash.events.*; public class Carro extends Sprite { Public var incrementa:Number = 0; Public var rotacao_carro:Number = carroMC.rotation; Public var posNeg:Number = 1; Public var aceleracao:Number = .05; Public var velocidade:Number = 0; Public var maxvelocidade:Number = 50; Public var carro:Sprite = new Sprite(); Public var keyLeftPressed:Boolean; Public var keyRightPressed:Boolean; Public var keyUpPressed:Boolean; Public var spaceBarPressed:Boolean; addEventListener(Event.ENTER_FRAME,onEnterFrameFunction); stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressed); stage.addEventListener(KeyboardEvent.KEY_UP,keyReleased); public function Carro():void { } public function onEnterFrameFunction(event:Event) { carro=carroMC; velocidade = Math.round((incrementa)*5); velocidadetxt.text = String(velocidade); if ((carroMC.rotation < 180)&&(carroMC.rotation >= 0)) { rotacao_carro = carroMC.rotation; posNeg = 1; } if ((carroMC.rotation < 0)&&(carroMC.rotation > -180)) { rotacao_carro = -1 * carroMC.rotation; posNeg = -1; } if (keyRightPressed) { carroMC.rotation += .5*incrementa; carroMC.gotoAndStop(3); } if (keyLeftPressed) { carroMC.rotation -= .5*incrementa; carroMC.gotoAndStop(2); } if (!keyLeftPressed && !keyRightPressed) { carroMC.gotoAndStop(1); } if (keyUpPressed) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } if (spaceBarPressed) { incrementa -= .5*aceleracao; } if (!spaceBarPressed && velocidade < maxvelocidade) { incrementa += aceleracao; } } else { if (incrementa > 0 && spaceBarPressed) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } incrementa -= 4*aceleracao; } else if (incrementa > 0) { carroMC.y -= ((90-rotacao_carro)/90)*incrementa; if (((carroMC.rotation > 90)&&(carroMC.rotation < 180))||((carroMC.rotation < -90)&&(carroMC.rotation > -180))) { carroMC.x += posNeg * (((((1-(rotacao_carro/360))*360)-180)/90)*incrementa); } if (((carroMC.rotation <= 90)&&(carroMC.rotation > 0))||((carroMC.rotation >= -90)&&(carroMC.rotation < -1))) { carroMC.x += posNeg * ((rotacao_carro)/90)*incrementa; } incrementa -= 1.5*aceleracao; } else { incrementa = 0; } } } public function keyPressed(event:KeyboardEvent) { if (event.keyCode == Keyboard.LEFT) { keyLeftPressed = true; } if (event.keyCode == Keyboard.RIGHT) { keyRightPressed = true; } if (event.keyCode == Keyboard.UP) { keyUpPressed = true; } if (event.keyCode == Keyboard.SPACE) { spaceBarPressed = true; } } public function keyReleased(event:KeyboardEvent) { if (event.keyCode == Keyboard.LEFT) { keyLeftPressed = false; } if (event.keyCode == Keyboard.RIGHT) { keyRightPressed = false; } if (event.keyCode == Keyboard.UP) { keyUpPressed = false; } if (event.keyCode == Keyboard.SPACE) { spaceBarPressed = false; } } } } A única coisa que ainda precisa consertar seria a questão do seu construtor, o que você quer inicializar assim que começa o jogo, deve estar la dentro, ou seja quando você criar um objeto dessa classe alguns atributos precisam ser inicializados nesse momento. Abs Compartilhar este post Link para o post Compartilhar em outros sites
marcolixa 0 Denunciar post Postado Agosto 10, 2009 Me pode explicar como faço isso? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Agosto 10, 2009 Por exemplo se eu crio uma classe pessoa, e essa pessoa tem como atributo o nome por exemplo, eu posso ao criar minha classe ja inicializar o nome desse objeto pessoa.Para isso usa-se o construtor public class Pessoa{ var nome:String; public function Pessoa(novoNome:String){ nome = novoNome; } } Ai na hora de criar o objeto de sua classe você usa o parametro no seu construtor var Pessoa1:Pessoa = new Pessoa("kisuke"); Abs Compartilhar este post Link para o post Compartilhar em outros sites