Target pointers for off-screen objects

Started by
-1 comments, last by viper110110 10 years, 12 months ago

I have a top down game where things sometimes go off the screen and you want to know where they are to go get them. I want markers on the edge of the screen to show where the target item is. I have tried a couple different strategies and none of them seem to be working. Here is my current one in case that helps.


Vector2 screenRatio = new Vector2(camera.Width, camera.Height);
                        screenRatio.Normalize();
                        Vector2 distance = snakePellets.worldPosition - snake.Head.worldPosition;
                        distance.Normalize();
                        if (distance.X / distance.Y > (float)camera.Width / (float)camera.Height)
                        {
                            snakePellets.worldPosition.X = distance.X < 0 ? camera.position.X + 20 : camera.position.X + camera.Width - 20;
                            snakePellets.worldPosition.Y = MathHelper.Lerp(camera.Height / 2, camera.position.Y + camera.Height - 20, distance.Y / screenRatio.Y);
                        }
                        else
                        {

                            snakePellets.worldPosition.X = MathHelper.Lerp(camera.Width / 2, camera.position.X + camera.Width - 20, distance.X / screenRatio.X);
                            snakePellets.worldPosition.Y = distance.Y < 0 ? camera.position.Y + 20 : camera.position.Y + camera.Height - 20;
                        }

                        camera.draw(spriteBatch, snakePellets);
                        snakePellets.worldPosition = oldPos;

Using c#/xna. The snakePellets is the item I want to make a pointer to. I am currently just moving it to where I want the pointer to be, drawing it, then moving it back. This is all assuming the snake pellet is off the screen.

This topic is closed to new replies.

Advertisement