//---------------------------------------------------------------------------------
// Ported to the Atomic Game Engine
// Originally written for XNA by Michael Hoffman
// Find the full tutorial at: http://gamedev.tutsplus.com/series/vector-shooter-xna/
//----------------------------------------------------------------------------------
using System;
using AtomicEngine;
namespace AtomicBlaster
{
static class ShipInput
{
private static bool isAimingWithMouse = false;
public static void Update()
{
isAimingWithMouse = true;
}
public static Vector2 GetMovementDirection()
{
var input = AtomicNET.GetSubsystem();
Vector2 direction = new Vector2(0, 0);
if (input.GetKeyDown((int) SDL.SDL_Keycode.SDLK_a))
direction.X -= 1;
if (input.GetKeyDown((int)SDL.SDL_Keycode.SDLK_d))
direction.X += 1;
if (input.GetKeyDown((int)SDL.SDL_Keycode.SDLK_s))
direction.Y -= 1;
if (input.GetKeyDown((int)SDL.SDL_Keycode.SDLK_w))
direction.Y += 1;
// Clamp the length of the vector to a maximum of 1.
if (direction.LengthSquared > 1)
direction.Normalize();
return direction;
}
public static Vector2 GetAimDirection()
{
return GetMouseAimDirection();
}
private static Vector2 GetMouseAimDirection()
{
var input = AtomicNET.GetSubsystem();
Vector2 direction = new Vector2((float)input.GetMousePosition().X, (float)input.GetMousePosition().Y);
Vector2 shipPos = PlayerShip.Instance.Position;
shipPos.Y = GameRoot.ScreenBounds.Height - shipPos.Y;
direction -= shipPos;
direction.Y = -direction.Y;
if (direction == Vector2.Zero)
return Vector2.Zero;
else
return Vector2.Normalize(direction);
}
public static bool WasBombButtonPressed()
{
var input = AtomicNET.GetSubsystem();
return input.GetKeyPress((int)SDL.SDL_Keycode.SDLK_SPACE);
}
}
}