42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
/*
|
|
* Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
|
*/
|
|
|
|
#include <nostalgia/core/core.hpp>
|
|
|
|
using namespace nostalgia;
|
|
|
|
static unsigned spriteX = 72;
|
|
static unsigned spriteY = 64;
|
|
|
|
static int eventHandler(core::Context *ctx) noexcept {
|
|
if (core::buttonDown(core::GamePad_Right)) {
|
|
spriteX += 2;
|
|
} else if (core::buttonDown(core::GamePad_Left)) {
|
|
spriteX -= 2;
|
|
}
|
|
if (core::buttonDown(core::GamePad_Down)) {
|
|
spriteY += 2;
|
|
} else if (core::buttonDown(core::GamePad_Up)) {
|
|
spriteY -= 2;
|
|
}
|
|
constexpr auto s = "nostalgia";
|
|
for (unsigned i = 0; s[i]; ++i) {
|
|
const auto c = static_cast<unsigned>(s[i] - ('a' - 1));
|
|
core::setSprite(ctx, i, spriteX + 8 * (i + 1), spriteY, c);
|
|
}
|
|
return 16;
|
|
}
|
|
|
|
ox::Error run(ox::UniquePtr<ox::FileSystem> fs) noexcept {
|
|
oxRequireM(ctx, core::init(std::move(fs)));
|
|
constexpr auto TileSheetAddr = "/TileSheets/Charset.ng";
|
|
constexpr auto PaletteAddr = "/Palettes/Charset.npal";
|
|
oxReturnError(core::loadSpriteTileSheet(ctx.get(), 0, TileSheetAddr, PaletteAddr));
|
|
oxReturnError(core::initConsole(ctx.get()));
|
|
core::puts(ctx.get(), 10, 9, "DOPENESS!!!");
|
|
core::setEventHandler(ctx.get(), eventHandler);
|
|
return core::run(ctx.get());
|
|
}
|
|
|