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); }