Since I made an Ants for the Atari 2600 and I’m busy with Ants for the Odyssey^2, I thought to myself, why not make an Ants for the Virtual Boy? So, here’s the beginning. It wasn’t really a very fun game to begin with, more like a programming exercise, but I’d like to make a version of it for every system I know how to make homebrew games on. Since I know a little on how to do the Virtual Boy, I thought I’d do this. Note that this is a beginning, not the final product, and I hope to have stuff like walls and a timer (and if there’s a timer, there should be lives, too) before I finish it. The premise is simple: Touch the ants. To start a game, press A. I know this game doesn’t have to be 512k, so if someone can please tell me how to make the game smaller in size, I forgot how to do that.
Attachments:
VirtualChris wrote:
I know this game doesn’t have to be 512k, so if someone can please tell me how to make the game smaller in size, I forgot how to do that.
http://www.planetvb.com/modules/news/article.php?storyid=297
But just zipping the ROM would at least shrink the download quite a bit. 7-zip has excellent context menu support to make this super fast.
I don’t have time to try Ants now, but I’m glad you continue to polish your VB (and other console) dev skills! :thumpup:
I’ve run into a little problem: If you get above 99 ants, the counter goes crazy. Is there any way to stop this?
Attachments:
You can use the PrintStr function from Soviet Union 2010 to print numbers over 99.
I use dasi’s posprintf() port. It wouldn’t be hard to cludge another digit into your existing cludge, though…
. . . char ants_str[4]; // Should probably be initialized . . . // TODO: put some range checking here ants_str[0]=(antc/100)+'0'; ants_str[1]=(antc/10)+'0'; ants_str[2]=(antc%10)+'0'; . . .
- This reply was modified 13 years, 8 months ago by RunnerPack.
As with both suggestions, I keep getting an error message that says the following:
“passing arg # of ‘posprintf’ makes pointer from integer without a cast.”
Replace the # with a number from 1-3 and you get my error messages.
You don’t pass the number as the string to be printed, you pass a “formatting string” and the number as an argument.
posprintf(ants_str, "%d", antc);
Or, to limit it to three digits:
posprintf(ants_str, "%03d", antc);
Just search for a printf tutorial.
OK, I tried what you did on the edited post, and I got a number that said 1A0 when it got to 110.
RunnerPack wrote:
ants_str[0]=(antc/100)+'0'; ants_str[1]=(antc/10)+'0'; ants_str[2]=(antc%10)+'0';
This wouldn’t work. What if ‘antc’ is, for example, 110? Then ‘antc/10’ would be 11.
EDIT: VirtualChris already caught it.
It was just a quick example to point in the right direction. I think printf is the way to go, but here’s the right cludge, for posterity:
. . . char ants_str[4]; // Should probably be initialized . . . // TODO: put some range checking here ants_str[0]=(antc/100)+'0'; ants_str[1]=((antc%100)/10)+'0'; ants_str[2]=((antc%100)%10)+'0'; . . .