For our game the player's occasionally required to enter numbers. Sometimes it's the number of units to buy and in that case typically a number between 1 and 10,000, other times it's goods to buy, in which case the span might be 0-100 instead.
I'm trying to avoid regular numeric keyboard input, both to make it more immersive, and also faster and easier to use.
Below is a sketch of my current method of input:
download bmml source – Wireframes created with Balsamiq Mockups
There's the current amount ("243"), and buttons to increase/decrease that amount by 1 (arrows). There's also the slider which allows for quickly either setting a rough amount or easily selecting the max or min value. The rough value by the slider could then be tweaked using the arrows - or that was the idea anyway.
The problem is I don't like it very much. It's not very pleasant. However I'm unable to find a better one.
This sort of design:
...isn't so good since the range might be large - the number of digits will vary too much.
Not using the slider is bad because who wants to tap 10,000 times to buy an army of 10,000?
Something like this could work, but feels cluttered and unwieldy - and not much of a usability win either:
Am I overlooking any alternatives?
EDIT:
Here's how the current version looks in context when the unit type is tapped. Note that there are several types of units (up to 6), the idea was that the interface allows browsing the different unit types and tap on the it to edit amount.
Purchase is designed to be done in a single sweep, since in the game mechanics a purchase is a single atomic game action.