From 24016660ff7851c9bcea028ff1645ebce6bc3189 Mon Sep 17 00:00:00 2001 From: SlyVTT Date: Tue, 30 May 2023 23:29:36 +0200 Subject: [PATCH] added a new table - still some bugs to track --- CMakeLists.txt | 2 + TODO.txt | 10 +- assets-cg/abyss.png | Bin 0 -> 60152 bytes assets-cg/example.png | Bin 3816 -> 0 bytes assets-cg/font_pinball.png | Bin 0 -> 21316 bytes assets-cg/fxconv-metadata.txt | 5 + assets-cg/icon-cg.xcf | Bin 55168 -> 0 bytes fxlink-image-2023.05.30-21h28-1.png | Bin 0 -> 30740 bytes src/main.cpp | 362 +++++++++++++++------------- src/pinball_entities.h | 8 +- src/tables.h | 270 +++++++++++++++++++-- src/utilities.h | 20 ++ 12 files changed, 488 insertions(+), 189 deletions(-) create mode 100644 assets-cg/abyss.png delete mode 100644 assets-cg/example.png create mode 100644 assets-cg/font_pinball.png delete mode 100644 assets-cg/icon-cg.xcf create mode 100644 fxlink-image-2023.05.30-21h28-1.png diff --git a/CMakeLists.txt b/CMakeLists.txt index d1c0e0c..a8e4a72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,8 @@ set(ASSETS set(ASSETS_cg assets-cg/font.png + assets-cg/font_pinball.png + assets-cg/abyss.png # ... ) diff --git a/TODO.txt b/TODO.txt index 8a092de..5a830a0 100644 --- a/TODO.txt +++ b/TODO.txt @@ -10,7 +10,13 @@ Add targets and enable bonus Add the possibilty to have connected tables using a kind on tunnel -Add ball launcher with user controle initial velocity +Add ball launcher with user control initial velocity + +Add "Board Importation" system with "scanf" feature + +[DONE] Create a "Pinball" font + +Create text effect like : +- rolling texts -Add Board Importation system with "scanf" feature diff --git a/assets-cg/abyss.png b/assets-cg/abyss.png new file mode 100644 index 0000000000000000000000000000000000000000..e378366b276c95da716cf0a8475dd5fb31be5ad3 GIT binary patch literal 60152 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 z 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 a6gT^a+04OkE#O;og}v=Qn^LRq;{E_OX_;04 literal 0 HcmV?d00001 diff --git a/assets-cg/fxconv-metadata.txt b/assets-cg/fxconv-metadata.txt index 5e3f5a8..8dd4e20 100644 --- a/assets-cg/fxconv-metadata.txt +++ b/assets-cg/fxconv-metadata.txt @@ -1,3 +1,8 @@ +abyss.png: + type: bopti-image + name_regex: img_abyss + profile: p8 + *.png: type: bopti-image name_regex: (.*)\.png img_\1 diff --git a/assets-cg/icon-cg.xcf b/assets-cg/icon-cg.xcf deleted file mode 100644 index 5b854f07eac00072a519754783db3331323791d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55168 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 Ol}iESO+rylvHuUZ)lew_ diff --git a/fxlink-image-2023.05.30-21h28-1.png b/fxlink-image-2023.05.30-21h28-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfa1c6d5f1c7262b81908e8b032e63384e33e95 GIT binary patch literal 30740 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 X_qXg!abI9a00000NkvXXu0mjf#_}r_ literal 0 HcmV?d00001 diff --git a/src/main.cpp b/src/main.cpp index 33e143e..7091829 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,5 @@ +#include "gint/display-cg.h" +#include "gint/display.h" #include "parameters.h" #include @@ -29,8 +31,8 @@ #include -#include #include "tables.h" +#include bool screenshot = false; bool record = false; @@ -62,30 +64,38 @@ libnum::num32 simWidth; libnum::num32 simHeight; /* return the scaled x component of a vector */ -uint16_t CX(Vector2D pos) { return (int) (pos.x * cScale); } +uint16_t CX(Vector2D pos) { return (int)(pos.x * cScale) + 25; } /* return the scaled y component of a vector */ -uint16_t CY(Vector2D pos) { return (int) (libnum::num32(azrp_height) - pos.y * cScale); } - -/* create the pinball board */ -void SetupScene( int which_table ) { - - if (which_table==0) Setup_Table_0(); - else if (which_table==1) Setup_Table_1(); - else if (which_table==2) Setup_Table_2(); - else Setup_Table_0(); +uint16_t CY(Vector2D pos) { + return (int)(libnum::num32(azrp_height) - pos.y * cScale); } -void HandleBallBallCollision( Ball *ball1, Ball *ball2 ) -{ - libnum::num32 restitution = MIN( ball1->restitution, ball2->restitution ); +/* create the pinball board */ +void SetupScene(int which_table) { + + if (which_table == 0) + Setup_Table_0(); + else if (which_table == 1) + Setup_Table_1(); + else if (which_table == 2) + Setup_Table_2(); + else if (which_table == 3) + Setup_Table_3(); + else + Setup_Table_0(); +} + +void HandleBallBallCollision(Ball *ball1, Ball *ball2) { + libnum::num32 restitution = MIN(ball1->restitution, ball2->restitution); Vector2D dir = ball2->pos - ball1->pos; libnum::num32 d = dir.Length(); - if ( d==libnum::num32(0) || d > (ball1->radius + ball2->radius) ) return; + if (d == libnum::num32(0) || d > (ball1->radius + ball2->radius)) + return; dir.Normalise(); - libnum::num32 corr = (ball1->radius + ball2->radius-d) / libnum::num32(2); + libnum::num32 corr = (ball1->radius + ball2->radius - d) / libnum::num32(2); ball1->pos.Add(dir, -corr); ball2->pos.Add(dir, corr); @@ -95,42 +105,43 @@ void HandleBallBallCollision( Ball *ball1, Ball *ball2 ) libnum::num32 m1 = ball1->mass; libnum::num32 m2 = ball2->mass; - libnum::num32 newV1 = (m1*v1 + m2*v2 - m2*(v1-v2)*restitution / (m1+m2) ); - libnum::num32 newV2 = (m1*v1 + m2*v2 - m1*(v2-v1)*restitution / (m1+m2) ); + libnum::num32 newV1 = + (m1 * v1 + m2 * v2 - m2 * (v1 - v2) * restitution / (m1 + m2)); + libnum::num32 newV2 = + (m1 * v1 + m2 * v2 - m1 * (v2 - v1) * restitution / (m1 + m2)); - ball1->vel.Add(dir, newV1-v1 ); - ball2->vel.Add(dir, newV2-v2 ); + ball1->vel.Add(dir, newV1 - v1); + ball2->vel.Add(dir, newV2 - v2); } -void HandleBallObstacleCollision( Ball *ball, Obstacle obstacle ) -{ +void HandleBallObstacleCollision(Ball *ball, Obstacle obstacle) { Vector2D dir = ball->pos - obstacle.pos; libnum::num32 d = dir.Length(); - if ( d==libnum::num32(0) || d > (ball->radius + obstacle.radius) ) return; + if (d == libnum::num32(0) || d > (ball->radius + obstacle.radius)) + return; dir.Normalise(); - libnum::num32 corr = ball->radius + obstacle.radius-d; + libnum::num32 corr = ball->radius + obstacle.radius - d; ball->pos.Add(dir, corr); libnum::num32 v = ball->vel.Dot(dir); - ball->vel.Add(dir, obstacle.pushVel-v ); - - MyPinball.score++; + ball->vel.Add(dir, obstacle.pushVel - v); + + MyPinball.score += obstacle.points; } -void HandleBallIslandCollision( Ball *ball, std::vector island, libnum::num32 rad ) -{ +void HandleBallIslandCollision(Ball *ball, std::vector island, + libnum::num32 rad) { int mod = island.size(); - for(int i=0; ipos, island[i], island[(i+1)%mod] ); - + for (int i = 0; i < mod; i++) { + Vector2D closest = + ClosestPointOnSegment(ball->pos, island[i], island[(i + 1) % mod]); + Vector2D dir; - dir.SubtractVectors( ball->pos, closest ); + dir.SubtractVectors(ball->pos, closest); libnum::num32 d = dir.Length(); - if (!( d==libnum::num32(0) || d > (ball->radius + rad) )) - { + if (!(d == libnum::num32(0) || d > (ball->radius + rad))) { dir.Normalise(); libnum::num32 corr = ball->radius + rad - d; @@ -139,52 +150,51 @@ void HandleBallIslandCollision( Ball *ball, std::vector island, libnum /* Update velocity */ Vector2D radius = closest.Clone(); - radius.Add( dir, rad ); - radius.Subtract( island[i], libnum::num32(1) ); - - libnum::num32 v = ball->vel.Dot( dir ); + radius.Add(dir, rad); + radius.Subtract(island[i], libnum::num32(1)); + + libnum::num32 v = ball->vel.Dot(dir); libnum::num32 newV = ABS(v) * ball->restitution; - ball->vel.Add( dir, newV - v ); + ball->vel.Add(dir, newV - v); } } } +void HandleBallFlipperCollision(Ball *ball, Flipper flipper) { + Vector2D closest = + ClosestPointOnSegment(ball->pos, flipper.pos, flipper.getTip()); -void HandleBallFlipperCollision( Ball *ball, Flipper flipper ) -{ - Vector2D closest = ClosestPointOnSegment( ball->pos, flipper.pos, flipper.getTip() ); - Vector2D dir; - dir.SubtractVectors( ball->pos, closest ); + dir.SubtractVectors(ball->pos, closest); libnum::num32 d = dir.Length(); - if ( d==libnum::num32(0) || d > (ball->radius + flipper.radius) ) return; + if (d == libnum::num32(0) || d > (ball->radius + flipper.radius)) + return; dir.Normalise(); - libnum::num32 corr = ball->radius + flipper.radius-d; + libnum::num32 corr = ball->radius + flipper.radius - d; ball->pos.Add(dir, corr); /* Update velocity */ Vector2D radius = closest.Clone(); - radius.Add( dir, flipper.radius ); - radius.Subtract( flipper.pos, libnum::num32(1) ); - + radius.Add(dir, flipper.radius); + radius.Subtract(flipper.pos, libnum::num32(1)); + Vector2D surfaceVel = radius.PerpCW(); - surfaceVel.Scale( flipper.currentAngularVelocity ); + surfaceVel.Scale(flipper.currentAngularVelocity); - libnum::num32 v = ball->vel.Dot( dir ); - libnum::num32 newV = surfaceVel.Dot( dir ); + libnum::num32 v = ball->vel.Dot(dir); + libnum::num32 newV = surfaceVel.Dot(dir); - ball->vel.Add( dir, newV - v ); + ball->vel.Add(dir, newV - v); } - -void HandleBallBorderCollision( Ball *ball, std::vector border ) -{ +void HandleBallBorderCollision(Ball *ball, std::vector border) { int mod = border.size(); - if (mod<3) return; + if (mod < 3) + return; /* Find closest segment */ @@ -192,18 +202,16 @@ void HandleBallBorderCollision( Ball *ball, std::vector border ) libnum::num32 minDist = libnum::num32(0); - for( int i=0; ipos, a, b ); + Vector2D b = border[(i + 1) % mod]; + Vector2D c = ClosestPointOnSegment(ball->pos, a, b); d.SubtractVectors(ball->pos, c); libnum::num32 dist = d.Length(); - if (i==0 || dist border ) /* Push out */ - d.SubtractVectors( ball->pos, closest ); + d.SubtractVectors(ball->pos, closest); libnum::num32 dist = d.Length(); - if (dist == libnum::num32(0)) - { - d.Set( normal ); + if (dist == libnum::num32(0)) { + d.Set(normal); dist = normal.Length(); } d.Normalise(); - if( d.Dot( normal ) >= libnum::num32(0) ) - { - if ( dist > ball->radius ) return; + if (d.Dot(normal) >= libnum::num32(0)) { + if (dist > ball->radius) + return; - ball->pos.Add( d, ball->radius - dist ); - } - else ball->pos.Add( d, -(ball->radius + dist) ); - + ball->pos.Add(d, ball->radius - dist); + } else + ball->pos.Add(d, -(ball->radius + dist)); /* Update velocity */ - libnum::num32 v = ball->vel.Dot( d ); + libnum::num32 v = ball->vel.Dot(d); libnum::num32 newV = ABS(v) * ball->restitution; - ball->vel.Add( d, newV - v ); + ball->vel.Add(d, newV - v); } - - static void hook_prefrag(int id, void *fragment, int size) { if (!screenshot && !record) return; @@ -270,29 +274,39 @@ static void hook_prefrag(int id, void *fragment, int size) { } } -static void update(float dt) -{ - MyPinball.dt = libnum::num32( dt ); +static void update(float dt) { + MyPinball.dt = libnum::num32(dt); + for (int i = 0; i < MyPinball.flippers.size(); i++) + MyPinball.flippers[i].Simulate(MyPinball.dt); - for( int i=0; i= 2) { + for (int j = 0; j < MyPinball.balls.size(); j++) + HandleBallBallCollision(&MyPinball.balls[i], &MyPinball.balls[j]); } - for( int j=0; jwidth - 25, 5, + MyPinball.sideimage, DIMAGE_NONE); + int mod = MyPinball.borders.size(); - for( int i=0; ifree_memory + extram_stats->free_memory); + azrp_draw_text(150, 0, "FPS = %.0f - Mem Free = %d", + (float)(1.0f / elapsedTime), + _uram_stats->free_memory + extram_stats->free_memory); - azrp_draw_text(150, 20, "Score : %d", MyPinball.score ); + azrp_draw_pinball(220, 200, RGB565_DEEPPURPLE, "Score:%d", MyPinball.score); + /* + azrp_draw_text(150, 40, "Ball1 : " ); + azrp_draw_text(200, 40, "X = : %.2f", (float) MyPinball.balls[0].pos.x ); + azrp_draw_text(200, 50, "Y = : %.2f", (float) MyPinball.balls[0].pos.y ); - azrp_draw_text(150, 40, "Ball1 : " ); - azrp_draw_text(200, 40, "X = : %.2f", (float) MyPinball.balls[0].pos.x ); - azrp_draw_text(200, 50, "Y = : %.2f", (float) MyPinball.balls[0].pos.y ); - - azrp_draw_text(150, 70, "Ball2 : " ); - azrp_draw_text(200, 70, "X = : %.2f", (float) MyPinball.balls[1].pos.x ); - azrp_draw_text(200, 80, "Y = : %.2f", (float) MyPinball.balls[1].pos.y ); + azrp_draw_text(150, 70, "Ball2 : " ); + azrp_draw_text(200, 70, "X = : %.2f", (float) MyPinball.balls[1].pos.x ); + azrp_draw_text(200, 80, "Y = : %.2f", (float) MyPinball.balls[1].pos.y ); + */ } - - static void get_inputs(float dt) { /* EXIT THE GAME */ @@ -373,44 +406,43 @@ static void get_inputs(float dt) { /* LEFT FLIPPER */ if (MyKeyboard.IsKeyPressed(MYKEY_F1)) { - for(int i=0; iradius = radius; this->pos = pos.Clone(); this->pushVel = pushVel; this->color = color; + this->points = points; } Obstacle() {} @@ -54,6 +57,7 @@ public: libnum::num32 radius, pushVel; Vector2D pos; uint16_t color; + uint16_t points; }; @@ -111,6 +115,7 @@ public: }; + struct Scene { Vector2D gravity; @@ -122,6 +127,7 @@ struct Scene std::vector obstacles; std::vector< std::vector > islands; std::vector flippers; + bopti_image_t *sideimage; }; diff --git a/src/tables.h b/src/tables.h index d83b8f8..4ca1670 100644 --- a/src/tables.h +++ b/src/tables.h @@ -13,6 +13,10 @@ extern libnum::num32 cScale; extern libnum::num32 simWidth; extern libnum::num32 simHeight; +extern bopti_image_t img_abyss; + + + void Setup_Table_0(void) { libnum::num32 offset = libnum::num32(0.02); @@ -24,6 +28,8 @@ void Setup_Table_0(void) { MyPinball.score = 0; MyPinball.gravity.Set(Vector2D(libnum::num32(0.0), libnum::num32(-1.0))); + MyPinball.sideimage = nullptr; + MyPinball.borders.clear(); MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.25))); MyPinball.borders.push_back( Vector2D(libnum::num32(1.0) - offset, libnum::num32(0.4))); @@ -45,10 +51,10 @@ void Setup_Table_0(void) { MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, 0.2, RGB565_BLOODYRED )); MyPinball.obstacles.clear(); - MyPinball.obstacles.push_back( Obstacle(0.1, Vector2D(libnum::num32(0.25), libnum::num32(0.6)), 2.0, RGB565_OCEANBLUE)); - MyPinball.obstacles.push_back( Obstacle(0.1, Vector2D(libnum::num32(0.75), libnum::num32(0.5)), 2.0, RGB565_OCEANBLUE)); - MyPinball.obstacles.push_back( Obstacle(0.12, Vector2D(libnum::num32(0.7), libnum::num32(1.0)), 2.0, RGB565_OCEANBLUE)); - MyPinball.obstacles.push_back( Obstacle(0.1, Vector2D(libnum::num32(0.2), libnum::num32(1.2)), 2.0, RGB565_OCEANBLUE)); + MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.25), libnum::num32(0.6)), 2.0, RGB565_OCEANBLUE, 25)); + MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.75), libnum::num32(0.5)), 2.0, RGB565_OCEANBLUE, 25)); + MyPinball.obstacles.push_back( Obstacle(0.12, Vector2D(libnum::num32(0.70), libnum::num32(1.0)), 2.0, RGB565_OCEANBLUE, 25)); + MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.20), libnum::num32(1.2)), 2.0, RGB565_OCEANBLUE, 25)); for(int i=0; i island1; + island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.10)) ); + island1.push_back( Vector2D(libnum::num32(0.40), libnum::num32(1.20)) ); + island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.30)) ); + island1.push_back( Vector2D(libnum::num32(0.60), libnum::num32(1.20)) ); + MyPinball.islands.push_back( island1 ); + + std::vector island2; + island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.60)) ); + island2.push_back( Vector2D(libnum::num32(0.40), libnum::num32(0.80)) ); + island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.82)) ); + island2.push_back( Vector2D(libnum::num32(0.60), libnum::num32(0.80)) ); + MyPinball.islands.push_back( island2 ); + + + std::vector island3; + island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.45)) ); + island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.65)) ); + island3.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.37)) ); + MyPinball.islands.push_back( island3 ); + + std::vector island4; + island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.65)) ); + island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.45)) ); + island4.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.37)) ); + MyPinball.islands.push_back( island4 ); + + + MyPinball.flippers.clear(); + libnum::num32 flip_radius = libnum::num32(0.03); + libnum::num32 flip_length = libnum::num32(0.2); + libnum::num32 flip_maxRotation = libnum::num32(1.0); + libnum::num32 flip_restAngle = libnum::num32(0.5); + libnum::num32 flip_angularVelocity = libnum::num32(10.0); + libnum::num32 flip_restitution = libnum::num32(0.0); + + Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); + MyPinball.flippers.push_back(Flipper(flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE)); + + Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); + MyPinball.flippers.push_back(Flipper( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE)); +} + + +void Setup_Table_4(void) { + libnum::num32 offset = libnum::num32(0.02); + + flipperHeight = libnum::num32(1.7); + cScale = libnum::num32(azrp_height) / flipperHeight; + simWidth = libnum::num32(azrp_width) / cScale; + simHeight = libnum::num32(azrp_height) / cScale; + + MyPinball.score = 0; + MyPinball.gravity.Set(Vector2D(libnum::num32(0.0), libnum::num32(-1.0))); + + MyPinball.sideimage = &img_abyss; + + MyPinball.borders.clear(); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.25))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(0.40))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(1.20))); + +// MyPinball.borders.push_back( Vector2D(libnum::num32(0.96), libnum::num32(1.34))); + + MyPinball.borders.push_back( Vector2D(libnum::num32(0.99), libnum::num32(1.20))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.99), libnum::num32(0.10))); + MyPinball.borders.push_back( Vector2D(libnum::num32(1.10), libnum::num32(0.10))); + MyPinball.borders.push_back( Vector2D(libnum::num32(1.10), libnum::num32(1.20))); + + MyPinball.borders.push_back( Vector2D(libnum::num32(0.90), libnum::num32(1.46))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.81), libnum::num32(1.56))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.70), libnum::num32(1.64))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.57), libnum::num32(1.68))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.43), libnum::num32(1.68))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.30), libnum::num32(1.64))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.19), libnum::num32(1.56))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.10), libnum::num32(1.46))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.04), libnum::num32(1.34))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(1.20))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(0.40))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.25))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.02))); + MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.02))); + + MyPinball.balls.clear(); + libnum::num32 ball_radius = libnum::num32(0.03); + libnum::num32 ball_mass = libnum::num32(PI) * ball_radius * ball_radius; +// Vector2D ball_pos1(libnum::num32(0.70), libnum::num32(0.70)); +// Vector2D ball_vel1(libnum::num32(0.2), libnum::num32(3.5)); + + Vector2D ball_pos1(libnum::num32(1.05), libnum::num32(0.15)); + Vector2D ball_vel1(libnum::num32(0.0), libnum::num32(3.5)); + + MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, 0.2, RGB565_LEMONYELLOW)); + + Vector2D ball_pos2(libnum::num32(0.30), libnum::num32(0.70)); + Vector2D ball_vel2(libnum::num32(-0.2), libnum::num32(3.5)); + MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, 0.2, RGB565_LEMONYELLOW )); + + + MyPinball.obstacles.clear(); + MyPinball.obstacles.reserve( 16 ); + + MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(1.45)), 1.5, RGB565_RED, 100)); + MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.74), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); + MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.26), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); + MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(0.95)), 1.5, RGB565_RED, 100)); + MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.15), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); + MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.85), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); + MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.30), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); + MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.70), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); + + + + for( int i=0; i island1; + island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.10)) ); + island1.push_back( Vector2D(libnum::num32(0.40), libnum::num32(1.20)) ); + island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.30)) ); + island1.push_back( Vector2D(libnum::num32(0.60), libnum::num32(1.20)) ); + MyPinball.islands.push_back( island1 ); + + std::vector island2; + island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.60)) ); + island2.push_back( Vector2D(libnum::num32(0.40), libnum::num32(0.80)) ); + island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.82)) ); + island2.push_back( Vector2D(libnum::num32(0.60), libnum::num32(0.80)) ); + MyPinball.islands.push_back( island2 ); + + + std::vector island3; + island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.45)) ); + island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.65)) ); + island3.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.37)) ); + MyPinball.islands.push_back( island3 ); + + std::vector island4; + island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.65)) ); + island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.45)) ); + island4.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.37)) ); + MyPinball.islands.push_back( island4 ); + + + MyPinball.flippers.clear(); + libnum::num32 flip_radius = libnum::num32(0.03); + libnum::num32 flip_length = libnum::num32(0.2); + libnum::num32 flip_maxRotation = libnum::num32(1.0); + libnum::num32 flip_restAngle = libnum::num32(0.5); + libnum::num32 flip_angularVelocity = libnum::num32(10.0); + libnum::num32 flip_restitution = libnum::num32(0.0); + + Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); + MyPinball.flippers.push_back(Flipper(flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE)); + + Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); + MyPinball.flippers.push_back(Flipper( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE)); +} + #endif \ No newline at end of file diff --git a/src/utilities.h b/src/utilities.h index e5bed39..4a2ed55 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -25,6 +25,26 @@ void azrp_draw_text(int x, int y, char const *fmt, ...) } } +void azrp_draw_pinball(int x, int y, uint16_t color, char const *fmt, ...) +{ + char str[128]; + va_list args; + va_start(args, fmt); + vsnprintf(str, 128, fmt, args); + va_end(args); + + extern bopti_image_t img_font_pinball; + + for(int i = 0; str[i]; i++) { + if(str[i] < 32 || str[i] >= 0x7f) continue; + + int row = (str[i] - 32) >> 4; + int col = (str[i] - 32) & 15; + azrp_subimage_p8_dye(x + 11 * i, y, &img_font_pinball, 14 * col + 1, 20 * row + 2, 11, 14, IMAGE_DYE, color); + } +} + + libnum::num32 COS( libnum::num32 angle ) {