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

Jogo de carros em Flash

Discussão em 'Programação' iniciada por Godlike_Killer, 25 de Fevereiro de 2008. (Respostas: 1; Visualizações: 890)

  1. Godlike_Killer

    Godlike_Killer Power Member

    Boa noite, tenho de fazer um jogo de carros, já tenho o código para um jogador, vou deixá-lo aqui para o poderem analisar:

    Código:
    onClipEvent (enterFrame) {
        if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) {
            this._rotation -= 2.6;
        }
        if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP)) {
            this._rotation += 2.6;
        }
        if (Key.isDown(Key.LEFT) && _root.z > 0.1&& (!Key.isDown(Key.UP) ) && (!Key.isDown(Key.DOWN) )) {
            this._rotation -= 2.6;
        }
        if (Key.isDown(Key.RIGHT)  && _root.z > 0.1&& (!Key.isDown(Key.UP) ) && (!Key.isDown(Key.DOWN) )) {
            this._rotation += 2.6;
        }
        if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
            this._rotation += 2.6;
        }
        if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) {
            this._rotation -= 2.6;
        }
        if (Key.isDown(Key.UP)) {
            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.DOWN) ) {
            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.UP)&& !(Key.isDown(Key.DOWN) ) && _root.z > -2&& _root.z < 3) {
            _root.z += 0.08;
        }
        if (Key.isDown(Key.DOWN) && !(Key.isDown(Key.UP) ) && _root.z > -2&& _root.z < 3) {
            _root.z -= 0.08;
        }
        if ((_root.z > 0.1) && (!Key.isDown(Key.UP) )&& (!Key.isDown(Key.DOWN) )) {
            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.UP) )&& (!Key.isDown(Key.DOWN) )) {
            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.UP) ) && (!Key.isDown(Key.DOWN) ) && _root.z >= 0 ) {
            _root.z = 0;
        }
        if ((_root.z > -0.1) && (!Key.isDown(Key.UP) ) && (!Key.isDown(Key.DOWN) )&& _root.z <= 0 ) {
            _root.z = 0;
        }
        if (Key.isDown(Key.UP)&& (Key.isDown(Key.DOWN) )) {
            _root.z /= 1.1;
        }
    }
    
    O jogo tem de ser Multiplayer, o primeiro jogador controla as teclas de direcção.
    Para fazer o mesmo código para o segundo jogador, alterando as teclas de direcção para as teclas W, A, S e D, como devo fazer?

    Os If´s ficarão algo deste género?
    Código:
     if (Key.isDown(Key.A) && Key.isDown(Key.S)) {
    :-D

    Para definir limites tenho de recorrer à função Hit Test não é? Obrigado pela ajuda :)
     
    Última edição: 25 de Fevereiro de 2008
  2. doginthefog

    doginthefog Power Member

    Ya, mais ou menos.. mas nota que não podes ter muitas teclas "Down" ao mesmo tempo (é uma limitação da ceninha que liga o teclado ao PC).. podes por exemplo ter if (Up is down) then if (left is down)...

    Quanto a funcao hit test, ya, podes usar essa funcao ou fazer as coisas manualmente vendo os atributos do objecto.. procura no site a documentacao.. nao me lembro xD
     

Partilhar esta Página