Welcome to Game Development Stack Exchange

Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's built and run by you as part of the Stack Exchange network of Q&A sites. With your help, we're working together to build a library of detailed answers to every question about game development.

We're a little bit different from other sites. Here's how:


Ask questions, get answers, no distractions

This site is all about getting answers. It's not a discussion forum. There's no chit-chat.

Just questions...

...and answers.

up vote

Good answers are voted up and rise to the top.

The best answers show up first so that they are always easy to find.

accept

The person who asked can mark one answer as "accepted".

Accepting doesn't mean it's the best answer, it just means that it worked for the person who asked.

XNA Sprite mouse selection with layered/overlapping sprites

up vote 14 down vote favorite

If I use mouse coordinates to select a sprite does XNA provide a built in way to return the top-most sprite on the screen at a coordinate?

I am trying to highlight the selected sprite, but when iterating through my sprites at the specific mouse location there can be multiple sprites found. The way my game works any one of the sprites found is valid to be on top.

2 Answers

up vote 4 down vote accept

I don't believe XNA has a built in way to do this. You should definitely implement some kind of ordering or layering system so one sprite gains precedence over the others (unless your game needs multiple sprites to be selected at once from the same mouse click). Once a sprite processes the selection no other sprites should be given the chance to.

up vote 3 down vote

It sounds like you need to assign a "depth" or "Z" value to your sprites that defines which is "on top" of each other. Then you would iterate through the sprites as usual but the sprite returned would have the highest "Z" value.


Get answers to practical, detailed questions

Focus on questions about an actual problem you have faced. Include details about what you have tried and exactly what you are trying to do.

Ask about...

  • game design (level design, gameplay, mechanics, etc)
  • asset pipelines (creation, storage, editing, etc)
  • game-specific programming issues (engine architecture, game-related APIs, networking, tools, etc)
  • project management (testing, team management, scheduling, publishing, etc)
  • game industry (careers, trends, technology, etc)

Not all questions work well in our format. Avoid questions that are primarily opinion-based, or that are likely to generate discussion rather than answers.

Questions that need improvement may be closed until someone fixes them.

Don't ask about...

  • Anything not directly related to game development
  • Questions that are primarily opinion-based
  • Questions with too many possible answers or that would require an extremely long answer

Tags make it easy to find interesting questions

All questions are tagged with their subject areas. Each can have up to 5 tags, since a question might be related to several subjects.

Click any tag to see a list of questions with that tag, or go to the tag list to browse for topics that interest you.

XNA Sprite mouse selection with layered/overlapping sprites

up vote 14 down vote

If I use mouse coordinates to select a sprite does XNA provide a built in way to return the top-most sprite on the screen at a coordinate?

I am trying to highlight the selected sprite, but when iterating through my sprites at the specific mouse location there can be multiple sprites found. The way my game works any one of the sprites found is valid to be on top.


You earn reputation when people vote on your posts

Your reputation score goes up when others vote up your questions, answers and edits.

+5 question voted up
+10 answer voted up
+15 answer is accepted
+2 edit approved

As you earn reputation, you'll unlock new privileges like the ability to vote, comment, and even edit other people's posts.

Reputation Privilege
15 Vote up
50 Leave comments
125 Vote down (costs 1 rep on answers)

At the highest levels, you'll have access to special moderation tools. You'll be able to work alongside our community moderators to keep the site focused and helpful.

2000 Edit other people's posts
3000 Vote to close, reopen, or migrate questions
10000 Access to moderation tools
see all privileges

Improve posts by editing or commenting

Our goal is to have the best answers to every question, so if you see questions or answers that can be improved, you can edit them.

Use edits to fix mistakes, improve formatting, or clarify the meaning of a post.

Use comments to ask for more information or clarify a question or answer.

You can always comment on your own questions and answers. Once you earn 50 reputation, you can comment on anybody's post.

Remember: we're all here to learn, so be friendly and helpful!

up vote 9 down vote

I don't believe XNA has a built in way to do this. You should definitely implement some kind of ordering or layering system so one sprite gains precedence over the others (unless your game needs multiple sprites to be selected at once from the same mouse click). Once a sprite processes the selection no other sprites should be given the chance to.

edit

I headed down this path and it will solve my issue. - riv_rec Apr 5 '11 at 15:59

add comment


Unlock badges for special achievements

Badges are special achievements you earn for participating on the site. They come in three levels: bronze, silver, and gold.

In fact, you can earn a badge just for reading this page:

 Informed Read the entire about page
 Student Asked first question with score of 1 or more
 Editor First edit
 Good Answer Answer score of 25 or more
 Civic Duty Voted 300 or more times
 Famous Question Asked a question with 10,000 views

see all badges


Find a question to answer, or ask your own

Looking for more in-depth information on the site? Visit the Help Center

Game Development Stack Exchange is part of the Stack Exchange network

Like this site? Stack Exchange is a network of 118 Q&A sites just like it. Check out the full list of sites.

Stack Exchange