From 53a951ae76eccfe5eaf2815236601819f857af20 Mon Sep 17 00:00:00 2001 From: pradyun Date: Tue, 7 Mar 2023 17:12:49 +1300 Subject: [PATCH] gravity working! --- romfs/gfx/sprites.t3x | Bin 20969 -> 20965 bytes source/main.c | 68 +++++++++++++----------------------------- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/romfs/gfx/sprites.t3x b/romfs/gfx/sprites.t3x index 122b5948782dd4de9c4ff6c34f88289230b627de..7fe076306ace47d84a9ce0ec433bd7e444e51cc8 100644 GIT binary patch delta 11298 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 delta 11475 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, spriteSheet, i); - // C2D_SpriteSetCenter(&thisSprite->spr, 0.5f, 0.5f); - // C2D_SpriteSetPos(&thisSprite->spr, rand() % SCREEN_WIDTH, rand() % SCREEN_HEIGHT); - // // C2D_SpriteSetRotation(&sprite->spr, C3D_Angle(rand()/(float)RAND_MAX)); - // thisSprite->dx = rand()*4.0f/RAND_MAX - 2.0f; - // thisSprite->dy = rand()*4.0f/RAND_MAX - 2.0f; - // } - - // for (size_t i = 0; i < MAX_SPRITES; i++) { - // Sprite* thisSprite = &sprites[i]; - // float x = rand() % SCREEN_WIDTH; - // float y = rand() % SCREEN_HEIGHT; - - // C2D_SpriteFromSheet(&thisSprite->spr, spriteSheet, i); - // C2D_SpriteSetCenter(&thisSprite->spr, 0.5f, 0.5f); - // C2D_SpriteSetPos(&thisSprite->spr, x, y); - // thisSprite->x = x; - // thisSprite->y = y; - // } - - // 17 sprites (i hope) for (size_t i = 0; i < numImages; i++) { Sprite* thisSprite = &sprites[i]; float x = rand() % SCREEN_WIDTH; @@ -68,6 +38,7 @@ static void initSprites() { C2D_SpriteSetPos(&thisSprite->spr, x, y); thisSprite->x = x; thisSprite->y = y; + thisSprite->w = 0; } } @@ -84,6 +55,10 @@ void moveSprite(Sprite *spr, s16 dx, s16 dy) { C2D_SpriteSetPos(&spr->spr, spr->x, spr->y); } +void rotateSprite(Sprite *spr, float dw) { + +} + int main(int argc, char* argv[]) { // Init libs @@ -107,6 +82,10 @@ int main(int argc, char* argv[]) { // Initialize sprites initSprites(); + // init gravity calc vars + float a = 0.4f; // acceleration + float v = 0; // velocity + // set bg properties C2D_SpriteSetPos(&sprites[SPR_BG].spr, 200, 120); // center bg C2D_SpriteSetScale(&sprites[SPR_BG].spr, 2.7778, 2.7907); @@ -117,8 +96,7 @@ int main(int argc, char* argv[]) { Sprite scoreSprite; // Main loop - while (aptMainLoop()) - { + while (aptMainLoop()) { hidScanInput(); // Respond to user input @@ -127,23 +105,17 @@ int main(int argc, char* argv[]) { if (kDown & KEY_START) break; // break in order to return to hbmenu - if (kHeld & KEY_LEFT) { - Sprite *this = &sprites[SPR_BIRD]; - moveSprite(this, -1, 0); - } - if (kHeld & KEY_RIGHT) { - Sprite *this = &sprites[SPR_BIRD]; - moveSprite(this, 1, 0); - } - if (kHeld & KEY_DOWN) { - Sprite *this = &sprites[SPR_BIRD]; - moveSprite(this, 0, 1); - } - if (kHeld & KEY_UP) { - Sprite *this = &sprites[SPR_BIRD]; - moveSprite(this, 0, -1); + + // gravity calcs + v += a; + moveSprite(&sprites[SPR_BIRD], 0, v); + + if (kDown & KEY_A) { + v = -5.5; + moveSprite(&sprites[SPR_BIRD], 0, v); } + // Render the scene C3D_FrameBegin(C3D_FRAME_SYNCDRAW); C2D_SceneBegin(top);