Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>For anyone who's interested, here's my open source, BSD-licenced GUI toolkit for the DS:</p> <p><a href="http://www.sourceforge.net/projects/woopsi" rel="nofollow noreferrer">http://www.sourceforge.net/projects/woopsi</a></p> <p>thing2k's answer is pretty good, but I'd seriously recommend having code to contain child UI elements in the base uiElement class. This is the pattern I've followed in Woopsi.</p> <p>If you <em>don't</em> support this in the base class, you'll run into major problems when you try to implement anything more complex than a textbox and a button. For example:</p> <ul> <li>Tab bars can be modelled as multiple buttons grouped together into a single parent UI element that enforces mutual exclusiveness of selection;</li> <li>Radio button groups (ditto);</li> <li>Scroll bars can be represented as a slider/gutter element and up/down buttons;</li> <li>Scrolling lists can be represented as a container and multiple option UI elements.</li> </ul> <p>Also, it's worth remembering that the DS has a 66MHz CPU and 4MB of RAM, which is used both to store your program and execute it (DS ROMs are loaded into RAM before they are run). You should really be treating it as an embedded system, which means the STL is out. I removed the STL from Woopsi and managed to save 0.5MB. Not a lot by desktop standards, but that's 1/8th of the DS' total available memory consumed by STL junk.</p> <p>I've detailed the entire process of writing the UI on my blog:</p> <p><a href="http://ant.simianzombie.com/blog" rel="nofollow noreferrer">http://ant.simianzombie.com/blog</a></p> <p>It includes descriptions of the two algorithms I came up with for redrawing the screen, which is the trickiest part of creating a GUI (one just splits rectangles up and remembers visible regions; the other uses BSP trees, which is much more efficient and easier to understand), tips for optimisation, etc.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload