Dr. Boy Endless Runner

This is a little game about one creature with three forms.
Every one of them has the capability to fight against one enemy type.
Be careful because the enemies will become faster over time.

The rules are simple, don’t die & have fun.

drboy.hex (37,9 KB)

Controls:
A / B to switch the player
Arrows to walk
To mute the music, press down on the title screen.

The scoreboard is saved on EEPROM idx 216Bytes

Source code: Dr. Boy v1.0.0 [Rust]

7 Likes

A very fun little game!! It reminds me a bit of Pose Mii from Wii Play ^^

1 Like

I looked it up :slight_smile: instant flashbacks to little Zenny ^^ 2008 hehe

1 Like

This is a fun little game! Cool that you made it with your Rust library!

1 Like

It was a fun little project I have never done before, some game development with rust ^^
But now I’m on the mission to get FXdata working in my library because I have a fun idea for a bigger project

1 Like

A small tip: If you fused your overlay_1heart, overlay_2hearts, and overlay_3hearts into a single block of data like so:

pub static overlay_hearts: [u8; _] =
[
	// Width, Height,
	64, 8,
	
	// Frame 0
	0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x00, 0x7a, 0x00, 0x0c, 0x30, 0x40, 0x30, 0x0c,
	0x00, 0x38, 0x54, 0x54, 0x58, 0x00, 0x58, 0x54, 0x54, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x0c, 0x1e, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00,
	
	// Frame 1
	0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x00, 0x7a, 0x00, 0x0c, 0x30, 0x40, 0x30, 0x0c,
	0x00, 0x38, 0x54, 0x54, 0x58, 0x00, 0x58, 0x54, 0x54, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x0c, 0x1e, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1e, 0x0c, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7e,
	0xfc, 0x7e, 0x3f, 0x1e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00,
	
	// Frame 2
	0x00, 0x00, 0x7e, 0x40, 0x40, 0x40, 0x00, 0x7a, 0x00, 0x0c, 0x30, 0x40, 0x30, 0x0c,
	0x00, 0x38, 0x54, 0x54, 0x58, 0x00, 0x58, 0x54, 0x54, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x0c, 0x1e, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1e, 0x0c, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7e,
	0xfc, 0x7e, 0x3f, 0x1e, 0x0c, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7e, 0xfc, 0x7e, 0x3f, 0x1e,
	0x0c, 0x00, 0x00, 0x00, 0x00,
];

Then instead of;

You could have just:

if p.live > 0
{
	sprites::draw_override(0, 0, get_sprite_addr!(overlay_hearts), (p.live - 1));
}

Which should produce less code and thus use less progmem.
(Not that you necessarily need to be worrying about that at the moment.)

1 Like