コード例 #1
0
        public static float MouseDirection(SpriteClass sprite)
        {
            Vector2 mouseLocation = MouseLocationInWorld();
            Vector2 direction     = mouseLocation - sprite.Position;

            return((float)Math.Atan2(direction.Y, direction.X));
        }
コード例 #2
0
 public Lidar(SpriteClass mountingPlatform)
 {
     _mountingPlatform = mountingPlatform;
     DistanceReadings  = new List <float>();
     for (int i = 0; i < 360; i++)
     {
         DistanceReadings.Add(float.NaN);
     }
 }
コード例 #3
0
        public static bool IsPickedUpForRotate(SpriteClass sprite)
        {
            MouseState mouseState = Mouse.GetState();

            if (IsMouseIntersectingSprite(sprite) && mouseState.RightButton == ButtonState.Pressed)
            {
                _spritePickedUpForRotate = true;
            }
            else if (mouseState.RightButton == ButtonState.Released)
            {
                _spritePickedUpForRotate = false;
            }

            return(_spritePickedUpForRotate);
        }
コード例 #4
0
        public void DebugMousePosition(SpriteClass sprite)
        {
            Vector2 spriteOriginalPos = sprite.Position;
            Vector2 spriteScreenPos   = Vector2.Zero;

            _camera.ToScreen(ref spriteOriginalPos, out spriteScreenPos);

            Vector2 cameraOriginalPos = _camera.Position;
            Vector2 cameraScreenPos   = Vector2.Zero;

            _camera.ToScreen(ref cameraOriginalPos, out cameraScreenPos);

            Vector2 mouseOriginalScreenPos = MouseLocation();
            Vector2 mouseInWorld           = Vector2.Zero;

            _camera.ToWorld(ref mouseOriginalScreenPos, out mouseInWorld);

            Debug.WriteLine($"Checked if mouse intersects sprite. Mouse screen: {MouseLocation()}, Mouse world: {MouseLocationInWorld()}. Sprite position: {sprite.Position}. SpriteScreenPos: {spriteScreenPos} Camera pos: {_camera.Position}, Camera screenPos {cameraScreenPos}. Screen width: {Screen.Width}, Height: {Screen.Height}");
        }
コード例 #5
0
 public static bool IsMouseIntersectingSprite(SpriteClass sprite)
 {
     return((MouseLocationInWorld() - sprite.Position).Length() < sprite.Texture.Height * sprite.TextureScale);
 }
コード例 #6
0
 public static bool IsPickedUp(SpriteClass sprite)
 {
     return(IsPickedUpForMove(sprite) || IsPickedUpForRotate(sprite));
 }