> For the complete documentation index, see [llms.txt](https://cell2d.gitbook.io/cell2d-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cell2d.gitbook.io/cell2d-documentation/general/q-and-a.md).

# Q\&A

**Q: I have Cell2D set up. Where do I start?**

A: Start by understanding the CellGame class. You'll probably want to make a subclass of CellGame to represent your game as a whole.

**Q: What's with all of the values of type** `long`**?**

A: Those values are measured in fracunits. See the Frac class for more details.

**Q: How can I make the game wait a certain amount of time before executing some code?**

A: Make an Event out of the code and pass it to an appropriate Thinker's `setTimerValue()` method.

### Space

**Q: How can I let the player interact with a SpaceState by mousing over/clicking on things in it?**

A: Use the CellGame's `getMouseX()` and `getMouseY()` methods to find out where the mouse cursor is on the screen. Then, use the appropriate SpaceState or Viewport's `getSpacePoint()` method to find the corresponding point in the SpaceState's space.

**Q: How can I make a SpaceObject stay at a fixed position on the screen?**

A: If the SpaceObject is just a display of information about the game world, like a health bar, then you should probably use the HUD class instead. If the SpaceObject represents an actual object in the game world, you can use the appropriate SpaceState or Viewport's `getSpacePoint()` method to find out where in the SpaceState's space the SpaceObject needs to be.
