/* * Copyright 2016 - 2022 Gary Talent (gary@drinkingtea.net). All rights reserved. */ #include using namespace nostalgia; static unsigned spriteX = 72; static unsigned spriteY = 64; static int eventHandler(core::Context *ctx) noexcept { if (core::buttonDown(ctx, core::GamePad_Right)) { spriteX += 2; } else if (core::buttonDown(ctx, core::GamePad_Left)) { spriteX -= 2; } if (core::buttonDown(ctx, core::GamePad_Down)) { spriteY += 2; } else if (core::buttonDown(ctx, core::GamePad_Up)) { spriteY -= 2; } constexpr auto s = "nostalgia"; for (unsigned i = 0; s[i]; ++i) { const auto c = static_cast(s[i] - ('a' - 1)); core::setSprite(ctx, i, spriteX + 8 * (i + 1), spriteY, c); } return 16; } ox::Error run(ox::UniquePtr 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()); }