Files
ox/src/nostalgia/player/app.cpp
T
2022-01-13 02:04:29 -06:00

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());
}