Example #1
0
    override public void update()
    {
        mAngle += mIncAngle;

        base.update();

        if (CKeyboard.pressed(CKeyboard.KEY_A))
        {
            turnLeft(ROTATION_SPEED);
        }
        if (CKeyboard.pressed(CKeyboard.KEY_D))
        {
            turnRight(ROTATION_SPEED);
        }

        if (CKeyboard.pressed(CKeyboard.KEY_W) /*|| CMouse.pressed()*/)
        {
            float angRad = CMath.degToRad(getRotation());
            setAccelX(500.0f * Mathf.Cos(angRad));
            setAccelY(500.0f * Mathf.Sin(angRad));

            mFire.setVisible(true);
        }
        else
        {
            setAccelX(0.0f);
            setAccelY(0.0f);

            mFire.setVisible(false);
        }

        if (CKeyboard.firstPress(CKeyboard.SPACE) /*|| CMouse.firstPress()*/)
        {
            CPlayerBullet bullet = new CPlayerBullet();

            float angRad = CMath.degToRad(getRotation());
            bullet.setXY(getX() + Mathf.Cos(angRad) * RADIUS, getY() + Mathf.Sin(angRad) * RADIUS);
            bullet.setVelXY(BULLET_SPEED * Mathf.Cos(angRad), BULLET_SPEED * Mathf.Sin(angRad));
            CBulletManager.inst().add(bullet);
        }

        // Friccion.
        setFriction(0.99f);

        float xMouse = CMouse.getPos().x;
        float yMouse = CMouse.getPos().y;

        //Debug.Log ("Mouse: " + xMouse + "," + yMouse);

        // La nave mira al mouse.
        //lookAt(xMouse, yMouse);

        // Bullet Hell.
        if (CKeyboard.pressed(CKeyboard.KEY_G))
        {
            float         angRad2 = CMath.degToRad(mAngle);
            CPlayerBullet bullet2 = new CPlayerBullet();
            bullet2.setXY(getX() + Mathf.Cos(angRad2) * 30.0f, getY() + Mathf.Sin(angRad2) * 30.0f);
            bullet2.setVelXY(400.0f * Mathf.Cos(angRad2), 400.0f * Mathf.Sin(angRad2));
            CBulletManager.inst().add(bullet2);
        }

        // Posicionar el fuego atras de la nave.
        float angFire = CMath.degToRad(getRotation() + 180);

        mFire.setXY(getX() + Mathf.Cos(angFire) * 26.0f, getY() + Mathf.Sin(angFire) * 26.0f);
        mFire.setRotation(getRotation());
        mFire.update();

        CVector a = new CVector(10, 20);
        CVector b = new CVector(-10, -20);
    }