mirror of
https://github.com/italicsjenga/agb.git
synced 2025-01-10 09:01:34 +11:00
Update the pong example to have the same comments as there are now in the template
This commit is contained in:
parent
f178bfc1af
commit
b6b3cf2491
|
@ -1,21 +1,25 @@
|
|||
// Games made using `agb` are no_std which means you don't have access to the standard
|
||||
// rust library. This is because the game boy advance doesn't really have an operating
|
||||
// system, so most of the content of the standard library doesn't apply.
|
||||
//
|
||||
// Provided you haven't disabled it, agb does provide an allocator, so it is possible
|
||||
// to use both the `core` and the `alloc` built in crates.
|
||||
#![no_std]
|
||||
// `agb` defines its own `main` function, so you must declare your game's main function
|
||||
// using the #[agb::entry] proc macro. Failing to do so will cause failure in linking
|
||||
// which won't be a particularly clear error message.
|
||||
#![no_main]
|
||||
|
||||
// This is required in order to ensure that the panic handler defined in `agb` is set
|
||||
// up correctly.
|
||||
extern crate agb;
|
||||
use agb::{display, syscall};
|
||||
|
||||
// The main function must take 0 arguments and never return. The agb::entry decorator
|
||||
// ensures that everything is in order. `agb` will call this after setting up the stack
|
||||
// and interrupt handlers correctly.
|
||||
#[agb::entry]
|
||||
fn main() -> ! {
|
||||
let mut gba = agb::Gba::new();
|
||||
let mut bitmap = gba.display.video.bitmap3();
|
||||
|
||||
for x in 0..display::WIDTH {
|
||||
let y = syscall::sqrt(x << 6);
|
||||
let y = (display::HEIGHT - y).clamp(0, display::HEIGHT - 1);
|
||||
bitmap.draw_point(x, y, 0x001F);
|
||||
}
|
||||
|
||||
loop {
|
||||
syscall::halt();
|
||||
}
|
||||
loop {}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue