• 0
Sign in to follow this  
Guest - Cicero -

Detectando Teclas, Como Faço?

Question

Guest - Cicero -

Numa de minhas leituras de apostilas e apostilas pelo mundo da web, resolvi aprender como fazer para movimentar um objeto no FLASH.

Legal...

Mas o bicho pegou na hora de fazer o movimento com perfeição...

A apostila fala...

Se eu quiser mecher o objeto lentamente, para eu o mover de 3 em 3 pixels ou menos, e se quiser rapido, éra só ir aumentando a quantidade de pixesl.

Só que se eu aumentar a quantidade de pixel para aumentar a velocidade, o objeto anda meio que travando. Fica uma coisa meio robotica fica horrivel...

se alguém puder me dar algumas dicas alguma ajuda eu agradeço, porque eu to ficando meio doido com isso.

valeu pessoal...fui.

Share this post


Link to post
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Você usou MovieClip??

• crie um objeto (quadrado, etc) num frame e faça outro keyframe logo após, deixando uns 10 espaços na linha tempo lá em cima...

• selecione os dois keyframes (todos os frames) e clique.

Selecione Create Motion Tween

Após, é só mudar o objeto do segundo keyframe pra algum lugar que ocorrerá a animação....

((Use 12 frames por segundo (estará na barra abaixo

da linha de tempo como 12.0 fps) )))

Você pode arrastar o segundo keyframe para perto do primeiro

(- criando uma animação mais rápida)

ou para mais longe

(- criando uma animação mais devagar)

Vai mechendo no programa que você vai aprendendo...

Share this post


Link to post
Share on other sites
  • 0

Desculpe Thaconde mais acho que o ... quer outro coisa... o movimento deve ser feito por AS atraves do Mouse ou Key (teclas)

Se eu estiver certo, creio eu pelo que pude ver no seu Post... Eu não sei quais AS essas apostila usaram, passarei do jeito que eu sei usando as teclas de setas do teclado...

1º Abra um novo arquivo e crie mais uma camada renomei-e a primeira com o nome action e a segunda de botões.

1º Na primeira camada desenhe o objeto que você quer movimentar e converta-o para um MC e coloque o seguinte action nele:

onClipEvent (load) {

   // Para alterar a velocidade do seu objeto, basta alterar o valor pra mais ou pra mesmo na linha do speed que eu coloquei 10

    speed = 10;

}

onClipEvent (enterFrame) {

  

    if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {

        _x -= speed;

        _rotation = 270;

    }

    if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {

        _x += speed;

        _rotation = 90;

    }

    if (Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {

        _y -= speed;

        _rotation = 0;

    }

    if (Key.isDown(Key.DOWN) && !Key.isDown(Key.UP)) {

        _y += speed;

        _rotation = 180;

    }

  

    if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {

        _rotation = 315;

    }

    if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {

        _rotation = 45;

    }

    if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {

        _rotation = 225;

    }

    if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {

        _rotation = 135;

    }

    

    // Alterando os valores de it voce determina o campo de movimentação do objeto no Palco

    if (_y<-50) {

        _y = 270;

    }

    if (_y>250) {

        _y = -50;

    }

    if (_x<-50) {

        _x = 500;

    }

    if (_x>500) {

        _x = -50;

    }

    

    with (_root.shadow) {

        _x = this._x+3;

        _y = this._y+3;

        _rotation = this._rotation+90;

    }

}

Como eu deixei explicado em forma de comentario no proprio AS para alterar a velocidade do objeto basta mudar pra mais ou pra menos o valor do item speed que eu coloquei como 10.

Nas linhas de comando como

if (_y<-200) {

_y = 431;

Voce delimita até onde o objeto pode ir alterando os valores para mais ou para menos.

2º Na segunda cama desenhe quatro botões indicando as direções: pra cima, pra baixo, pra esquerda e pra direita, ou importe da biblioteca do Flash que tem um mote desse tipo e coloque os seguintes AS nos respectivos botões

Pra cima:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.UP)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para baixo:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.DOWN)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para Esquerda:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.LEFT)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para Direita:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.RIGHT)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Agora é só correr pro abraço!!!! De Ctrl+Enter e teste!

Independente do valor que voce colocar no speed, o movimento será uniforme.

PARA MOVIMENTAR O OBJETO USE AS SETAS DO TECLADO

VEJA ABAIXO DOIS LINKS, UM COM O EXEMPLO PRONTO E O OUTRO COM O .FLA DO EXEMPLO PARA ESTUDO:

EXEMPLO PRONTO

.FLA DO EXEMPLO

QUALQUER DUVIDA POST AE!!!!!!!!!!

Share this post


Link to post
Share on other sites
  • 0
Guest - Cicero -
Desculpe Thaconde mais acho que o ... quer outro coisa... o movimento deve ser feito por AS atraves do Mouse ou Key (teclas)

Se eu estiver certo, creio eu pelo que pude ver no seu Post... Eu não sei quais AS essas apostila usaram, passarei do jeito que eu sei usando as teclas de setas do teclado...

1º Abra um novo arquivo e crie mais uma camada renomei-e a primeira com o nome action e a segunda de botões.

1º Na primeira camada desenhe o objeto que você quer movimentar e converta-o para um MC e coloque o seguinte action nele:

onClipEvent (load) {

   // Para alterar a velocidade do seu objeto, basta alterar o valor pra mais ou pra mesmo na linha do speed que eu coloquei 10

    speed = 10;

}

onClipEvent (enterFrame) {

  

    if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {

        _x -= speed;

        _rotation = 270;

    }

    if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {

        _x += speed;

        _rotation = 90;

    }

    if (Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {

        _y -= speed;

        _rotation = 0;

    }

    if (Key.isDown(Key.DOWN) && !Key.isDown(Key.UP)) {

        _y += speed;

        _rotation = 180;

    }

  

    if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {

        _rotation = 315;

    }

    if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {

        _rotation = 45;

    }

    if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {

        _rotation = 225;

    }

    if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {

        _rotation = 135;

    }

    

    // Alterando os valores de it voce determina o campo de movimentação do objeto no Palco

    if (_y<-200) {

        _y = 431;

    }

    if (_y>431) {

        _y = -200;

    }

    if (_x<-300) {

        _x = 765;

    }

    if (_x>765) {

        _x = -300;

    }

    

    with (_root.shadow) {

        _x = this._x+3;

        _y = this._y+3;

        _rotation = this._rotation+90;

    }

}

Como eu deixei explicado em forma de comentario no proprio AS para alterar a velocidade do objeto basta mudar pra mais ou pra menos o valor do item speed que eu coloquei como 10.

Nas linhas de comando como

if (_y<-200) {

_y = 431;

Voce delimita até onde o objeto pode ir alterando os valores para mais ou para menos.

2º Na segunda cama desenhe quatro botões indicando as direções: pra cima, pra baixo, pra esquerda e pra direita, ou importe da biblioteca do Flash que tem um mote desse tipo e coloque os seguintes AS nos respectivos botões

Pra cima:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.UP)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para baixo:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.DOWN)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para Esquerda:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.LEFT)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Para Direita:

onClipEvent (enterFrame) {

    if (Key.isDown(Key.RIGHT)) {

        gotoAndStop(2);

    } else {

        gotoAndStop(1);

    }

}

Altere o estado dele para Clipe de Filme (MovieClip) e instancie ele como 'Keys', sem as aspas.

Agora é só correr pro abraço!!!! De Ctrl+Enter e teste!

Independente do valor que voce colocar no speed, o movimento será uniforme.

PARA MOVIMENTAR O OBJETO USE AS SETAS DO TECLADO

VEJA ABAIXO DOIS LINKS, UM COM O EXEMPLO PRONTO E O OUTRO COM O .FLA DO EXEMPLO PARA ESTUDO:

EXEMPLO PRONTO

.FLA DO EXEMPLO

QUALQUER DUVIDA POST AE!!!!!!!!!!

Cara valeu pelos exemplos me ajudou muito, sou animador novato que não sabe muito como fazer jogos no flash, por isso peço ajuda no forum

Não tenho nenhuma duvida mas valeu pelas dicas.

falo irmao

Share this post


Link to post
Share on other sites
  • 0

Eu dei uma editado nos codigo de movimento do exemplo para que o tempo de reaparecimento seja mais curto, tinha esquecido de corrigir esse bug.

FWL biggrin.gif

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this