   Problems with keys in Blitz3d
  Hi all!Before all, I don't know where to write this post so if this isn't the correct place, I'm sorry.Well, I'm programming a asteroids type game but the ship doesn't moves with angles, only with all the directions keys.Ok, if I push down + left the ship moves in that direction, but if in that moment I push the fire key the ship doesn't shoot, although in the other all directions the ship shoot :SWell, here I leave you the code: (Is Blitz3D)....Function MoverNave() If KeyDown(DUP) And KeyDown(DRIGHT) Thenship\Y = ship\Y - ship\Velocidadship\X = ship\X + ship\Velocidadship\Direccion = ARRIBA_DElseIf KeyDown(DLEFT) And KeyDown(DUP) Thenship\Direccion = IZQUIERDA_Aship\Y = ship\Y - ship\Velocidadship\X = ship\X - ship\VelocidadElseIf KeyDown(DRIGHT) And KeyDown(DDOWN) Thenship\X = ship\X + ship\Velocidadship\Y = ship\Y + ship\Velocidadship\Direccion = DERECHA_AElseIf KeyDown(DDOWN) And KeyDown(DLEFT) Thenship\Y = ship\Y + ship\Velocidadship\X = ship\X - ship\Velocidadship\Direccion = ABAJO_IElseIf KeyDown(DUP) Thenship\Y = ship\Y - ship\Velocidadship\Direccion = ARRIBAElseIf KeyDown(DRIGHT) Then ship\X = ship\X + ship\Velocidadship\Direccion = DERECHAElseIf KeyDown(DDOWN) Then ship\Y = ship\Y + ship\Velocidadship\Direccion = ABAJOElseIf KeyDown(DLEFT) Thenship\X = ship\X - ship\Velocidadship\Direccion = IZQUIERDAEndIfIf ship\Y < Y_Inicial Then ship\Y = Y_FinalIf ship\Y > Y_Final Then ship\Y = Y_InicialIf ship\X < X_Inicial Then ship\X = X_FinalIf ship\X > X_Final Then ship\X = X_InicialIf KeyHit(57) Then Disparar()DrawImage ship\Grafico, ship\X, ship\Y, ship\DireccionEnd FunctionFunction Disparar()Municion = Municion + 1PlaySound sndDisparoBala.BULLETS = New BULLETSBala\Grafico = LoadAnimImage("gfx/SpriteSheet.png", 64, 64, 8, 8)Bala\X = ship\XBala\Y = ship\YBala\Velocidad = 4MaskImage Bala\Grafico, 255, 0, 255HandleImage Bala\Grafico, 2, 3If ship\Direccion = ARRIBA_D Then Bala\Direccion = BARRIBA_DIf ship\Direccion = IZQUIERDA_A Then Bala\Direccion = BIZQUIERDA_AIf ship\Direccion = DERECHA_A Then Bala\Direccion = BDERECHA_AIf ship\Direccion = ABAJO_I Then Bala\Direccion = BABAJO_IIf ship\Direccion = ARRIBA Then Bala\Direccion = BARRIBAIf ship\Direccion = DERECHA Then Bala\Direccion = BDERECHAIf ship\Direccion = ABAJO Then Bala\Direccion = BABAJOIf ship\Direccion = IZQUIERDA Then Bala\Direccion = BIZQUIERDAEnd FunctionFunction UpdateBullet()For Bala.BULLETS = Each BULLETSIf Bala\Direccion = BABAJO_I Then Bala\Y = Bala\Y + Bala\VelocidadBala\X = Bala\X - Bala\VelocidadElseIf Bala\Direccion = BARRIBA_D Then Bala\Y = Bala\Y - Bala\VelocidadBala\X = Bala\X + Bala\VelocidadElseIf Bala\Direccion = BDERECHA_A Then Bala\Y = Bala\Y + Bala\VelocidadBala\X = Bala\X + Bala\VelocidadElseIf Bala\Direccion = BIZQUIERDA_A Then Bala\Y = Bala\Y - Bala\VelocidadBala\X = Bala\X - Bala\VelocidadElseIf Bala\Direccion = BARRIBA Then Bala\Y = Bala\Y - Bala\VelocidadElseIf Bala\Direccion = BDERECHA Then Bala\X = Bala\X + Bala\VelocidadElseIf Bala\Direccion = BABAJO Then Bala\Y = Bala\Y + Bala\VelocidadElseIf Bala\Direccion = BIZQUIERDA Then Bala\X = Bala\X - Bala\VelocidadEndIfDrawImage(Bala\Grafico, Bala\X, Bala\Y, 0)If Bala\X > X_Final Then Delete BalaElseIf Bala\X < X_Inicial Then Delete BalaElseIf Bala\Y > Y_Final Then Delete BalaElseIf Bala\Y < Y_Inicial Then Delete BalaEndIfFor rock.ASTEROIDE = Each ASTEROIDE ;Recorremos todos los asteroidesIf Bala <> Null Then ;Si la Bala existe entonces...If ImagesCollide(Bala\Grafico, Bala\X, Bala\Y, 0, rock\Grafico, rock\X, rock\Y, 0) ThenPlaySound sndExplosionExplosionar(rock\X, rock\Y)Colision = 1rock\NivelHP = rock\NivelHP + 1rX = rock\X: rY = rock\YDelete BalaIf rock\NivelHP > 7 Then Asteroides_Destruidos = Asteroides_Destruidos + 1Delete rockEndIfEndIfEndIfNextNextEnd Function...Well, thank you very much and cheers!   
  Have a look at this topic and the links contained therein. It's a pretty common problem.;  Thank you, that was my problem. I will re-assign the fire key to 'A', that key works.Thanks again and cheers!   