1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Controlo por Teclado Vejam pf

Discussão em 'Programação' iniciada por Godlike_Killer, 2 de Março de 2008. (Respostas: 1; Visualizações: 648)

  1. Godlike_Killer

    Godlike_Killer Power Member

    Após pesquisa concluí (talvez incorrectamente) que um Movimento por teclado com as teclas WASD em Flash se faria do seguinte modo:

    Código:
    
    [FONT=monospace][LIST=1]
    [*]onClipEvent (enterFrame) {
    [*]        if (Key.isDown(Key.getAscii(65)) && Key.isDown(Key.getAscii(87))) {
    [*]                this._rotation -= 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(68)) && Key.isDown(Key.getAscii(87))) {
    [*]                this._rotation += 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(65)) && _root.z > 0.1&& (!Key.isDown(Key.getAscii(87)) ) && (!Key.isDown(Key.getAscii(83)) )) {
    [*]                this._rotation -= 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(68))  && _root.z > 0.1&& (!Key.isDown(Key.getAscii(87)) ) && (!Key.isDown(Key.getAscii(83)) )) {
    [*]                this._rotation += 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(65)) && Key.isDown(Key.getAscii(83))) {
    [*]                this._rotation += 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(68)) && Key.isDown(Key.getAscii(83))) {
    [*]                this._rotation -= 2.6;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(87))) {
    [*]                this._y -= (Math.cos(Math.PI/180 * this._rotation))*_root.z;
    [*]                this._x += (Math.sin(Math.PI/180 * this._rotation))*_root.z;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(83)) ) {
    [*]                this._y -= Math.cos(Math.PI/180 * this._rotation) *_root.z;
    [*]                this._x += Math.sin(Math.PI/180 * this._rotation)*_root.z;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(87))&& !(Key.isDown(Key.getAscii(83)) ) && _root.z > -2&& _root.z < 3) {
    [*]                _root.z += 0.08;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(83)) && !(Key.isDown(Key.getAscii(87)) ) && _root.z > -2&& _root.z < 3) {
    [*]                _root.z -= 0.08;
    [*]        }
    [*]        if ((_root.z > 0.1) && (!Key.isDown(Key.getAscii(87)) )&& (!Key.isDown(Key.getAscii(83)) )) {
    [*]                this._y -= (Math.cos(Math.PI/180 * this._rotation))*_root.z;
    [*]                this._x += (Math.sin(Math.PI/180 * this._rotation))*_root.z;
    [*]                _root.z -= 0.04;
    [*]        }
    [*]        if ((_root.z < -0.1) && (!Key.isDown(Key.getAscii(87)) )&& (!Key.isDown(Key.getAscii(83)) )) {
    [*]                this._y -= (Math.cos(Math.PI/180 * this._rotation))*_root.z;
    [*]                this._x += (Math.sin(Math.PI/180 * this._rotation))*_root.z;
    [*]                _root.z += 0.04;
    [*]        }
    [*]        if ((_root.z < 0.1) && (!Key.isDown(Key.getAscii(87)) ) && (!Key.isDown(Key.getAscii(83)) ) && _root.z >= 0 ) {
    [*]                _root.z = 0;
    [*]        }
    [*]        if ((_root.z > -0.1) && (!Key.isDown(Key.getAscii(87)) ) && (!Key.isDown(Key.getAscii(83)) )&& _root.z <= 0 ) {
    [*]                _root.z = 0;
    [*]        }
    [*]        if (Key.isDown(Key.getAscii(87))&& (Key.isDown(Key.getAscii(83)) )) {
    [*]                _root.z /= 1.1;
    [*]        }
    [*]}[/LIST][/FONT]


    Estou a fazer bem ou não é assim que se procede? Eu estava convencido que era assim, mas como este código não produz movimento, vim procurar aqui ajuda, se me pudessem orientar era óptimo.
    Muito obrigado.
     
  2. mrlinx

    mrlinx Power Member

    É só colocares esse código num movieclip, e deve funcionar perfeitamente....
     

Partilhar esta Página