Jibble

Author Topic: Show all interactables on keypress  (Read 168 times)

Show all interactables on keypress
« on: 20 Jan 2020, 21:06 »
Hi folks,

The adventure that I currently play has a mechanism where whenever you hit and hold a certain key, all the objects, hotspots, and characters that you can interact with are pointed out with animated arrows.

I wonder how this can be reproduced in AGS.

The straightforward way would be to define an invisible "pointing" object for each object, hotspot, and character in each room. Whenever the player hits the magic key, move the "pointing" objects above the things they point to (beware of characters and objects that are currently moving) and set the "pointing" objects visible. When the player releases the magic key, make all the "pointing" objects invisible again.

There are two downsides to this straightforward approach:
  • It really eats into your reservoir of objects, there can only be so many objects per room.
  • Defining all those "pointing" objects in every room will drive you nuts.

To avoid these issues, you could do "pointing" characters instead of "pointing" objects. But this still has the downside of cluttering the game with about 30 "pointing" characters, and you'd still need to tediously define about 30 "pointing" characters in the editor by hand for each game.

Is there another way to make this happen?

Cassiebsg

  • Cavefish
  • Fleeing the Cylon tyrrany...
    • Cassiebsg worked on one or more games that won an AGS Award!
    •  
    • Cassiebsg worked on one or more games that was nominated for an AGS Award!
Re: Show all interactables on keypress
« Reply #1 on: 20 Jan 2020, 21:55 »
There are those who believe that life here began out there...

eri0o

Re: Show all interactables on keypress
« Reply #2 on: 20 Jan 2020, 22:01 »
I don't implement the rendering but you can get usable information for you handle the rendering in the Arrow Select module:

https://www.adventuregamestudio.co.uk/forums/index.php?topic=57379.0

Re: Show all interactables on keypress
« Reply #3 on: 20 Jan 2020, 22:12 »
Maybe this module is what you're looking for?

Seems to do the job, yes! (Albeit with non-animating pointers).

As far as I understand the code, it creates a transparent overlay dynamically, prints arrow icons at all appropriate positions onto the overlay, then shows the overlay. In that way, it avoids wasting a "pointing" object/character for each thing that needs to be pointed at.

Simple and elegant!