Well, doing fancy rotation would be a whole other business; but it was fairly simple otherwise. Basically, I just used an array to create a virtual 4X5 grid and spaced to the size of the dot sprite. Something like:
Code: Select all
var i,ii,iii,widhi; i=0;ii=0;iii=0;widhi=sprite_get_height(dot_img)
repeat(4*5)
{
grid_showdot[i]=0
grid_x[i]=widhi*ii
grid_y[i]=widhi*iii
i+=1 ;ii+=1; if ii=4 {ii=0;iii+=1}
}
After that, I just assign positions of each 'dot' for each number/character in a list which is checked every time the number is changed. Then, during the draw phase, it simply checks for which
showdot positions on the grid do not equal zero.
Thinking about it, though, it probably wouldn't be too hard to do some funky scaling and rotation if you dug out the sprite size variable, meddled with it during the draw phase and maybe tagged on some
lengthdir functions. The catch with this particular method is that since it starts from 0,0 , the whole grid would be hinged at the top left; but nothing that difficult to work around.
Another catch with my method is that manually assigning the dot positions (I used an actual 4x5 numeral set to help) for a whole alphabet *would* be pretty tedious.

Sometimes you just gotta do it the brute force way, though.
edit: I tried some of this out tonight and I'm fairly pleased with the results, let me know what you think.

The solution I found was for both vertical and horizontal rows to be odd numbered, so there could be a center dot on which to base the positions of the others on.