2024-12-12

メガドライブ知識ゼロの超初心者がなにか開発をしてみる日記 6

あとワークエリアは流石にu8 buf[16]; とかしておいて

「(s16)(((s16*)buf)+0) は x で…+2 は y で…」なんてやってられないので

(snip)

とかで this = (HOGE)buf; してから this->x とか this->y とか にしたらだいぶ見た目がふつうになったンゴ!

(わかる人ならこれで大丈夫だと思うけど)いくらなんでも説明が雑すぎたので集合知のためにもう少し詳しく残しておきますね。

typedef struct {
    Map *map;
    s16 x, y;
    s16 n, c;
    s16 w, h;
} TH_REGISTER_MAP, *TH_LPREGISTER_MAP;
u8 g_pThisRegister[16];
void thDemo_WallpaperInit(void)
{
/*
    s16 *reg = (s16*)g_pThisRegister;

    *(reg + 0) = 0;
    *(reg + 1) = 0;
    *(reg + 2) = 256;
    *(reg + 3) = 160;
**/
    TH_LPREGISTER_MAP reg = (TH_LPREGISTER_MAP)g_pThisRegister;
    reg-> map = g_pMaps[1];
    reg-> x = 0;
    reg-> y = 0;
    reg-> w = 256;
    reg-> h = 160;
}
void thDemo_WallpaperMain(void)
{
/*
    Map *map = g_pMaps[1];
    TH_LPREGISTER_S16 reg = (TH_LPREGISTER_S16)g_pThisRegister;

    *(reg + 0) = *(reg + 0) + 1;
    *(reg + 1) = *(reg + 1) + 1;
    MAP_scrollTo(map, ((*(reg + 0)) % (*(reg + 2))), ((*(reg + 1)) % (*(reg + 3))));
**/
    TH_LPREGISTER_MAP reg = (TH_LPREGISTER_MAP)g_pThisRegister;
    reg->x++;
    reg->y++;
    MAP_scrollTo(reg->map, (reg->x) % (reg->w), (reg->y) % (reg->h));

}

プログラマーじゃないと意味不明から詳しく書く必要はなかったかもしれないけどどうかな?

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん