Java-Gaming.org Hi !
 Featured games (91) games approved by the League of Dukes Games in Showcase (757) Games in Android Showcase (229) games submitted by our members Games in WIP (844) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 Bouncing Ball on the Z axis: I can't fix a math error without help. (GIF)  (Read 2358 times) 0 Members and 1 Guest are viewing this topic.
tom_mai78101
 « Posted 2012-08-30 14:33:37 »

Here's a GIF depicting the way I want my ball to bounce.

And here's the code, the problem currently unsolved. "dstRect" is a custom class that allows me to blit a bitmap onto the Canvas:

 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25 `   private void jump() {      double value = Math.cos(radians + Math.PI) * multiplier;      dstRect.left -= position[2] + oldXOffset;      dstRect.right += position[2] + oldXOffset;      dstRect.top -= position[2] + oldXOffset;      dstRect.bottom += position[2] + oldXOffset;      position[2] = (float) value + 8;      radians += 0.1 * radianSpeed;      if (radians > 2 * Math.PI) {         multiplier -= 4;         value = Math.cos(radians + Math.PI) * multiplier;          oldXOffset += position[2] - (float) value + 8;         radians = 0;         radianSpeed += 2;         if (multiplier < 2.0) {            jumping = false;            multiplier = 8;            oldXOffset = 0f;            radianSpeed = 1;            position[2] = 0f;            for (int i = 0; i < 2; i++)               speed[i] = 0f;         }      }   }`

The problem is this:

It starts off by triggering a switch, where the ball itself goes into a jumping state.
• On the first jump, it is normal. Ball starts jumping from the ground, flies into the air, and back down to the ground.
• On the second jump, it starts glitching out. Ball starts from the middle in the air, flies even higher, and back to the middle.
• On the third and last jump, the ball starts 1/3 from the peak of its jump, flies up to its peak, and back down 1/3 from its peak.
After that, the ball exits the jumping state, the ball goes back to the ground.

I wished I could think more on this.
tom_mai78101
 « Reply #1 - Posted 2012-09-03 14:35:27 »

I was playing an NDS game, when suddenly an inspiration popped into my head after looking at a in-game statue sprite.

After tinkering with the idea, I finally fixed the problem. Here's the code.

 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20 `float radians;float radianSpeed;float multipler;float result;public void calculate(){   result = (float) Math.cos(radians + Math.PI) * multipler + multipler;   radians += 0.2f * radianSpeed;   if (radians > 2 * Math.PI){      radianSpeed += 1;      radians = 0f;      multipler -= 1;      if (multipler <= 0){         multipler = 0f;         radians = 0f;      }   }}// Rest of the code, it's up the developer's implementation.`
Pages: [1]
 ignore  |  Print

 EgonOlsen (58 views) 2018-06-10 19:43:48 EgonOlsen (40 views) 2018-06-10 19:43:44 EgonOlsen (60 views) 2018-06-10 19:43:20 DesertCoockie (225 views) 2018-05-13 18:23:11 nelsongames (141 views) 2018-04-24 18:15:36 nelsongames (140 views) 2018-04-24 18:14:32 ivj94 (881 views) 2018-03-24 14:47:39 ivj94 (142 views) 2018-03-24 14:46:31 ivj94 (793 views) 2018-03-24 14:43:53 Solater (157 views) 2018-03-17 05:04:08
 Java Gaming Resourcesby philfrei2017-12-05 19:38:37Java Gaming Resourcesby philfrei2017-12-05 19:37:39Java Gaming Resourcesby philfrei2017-12-05 19:36:10Java Gaming Resourcesby philfrei2017-12-05 19:33:10List of Learning Resourcesby elect2017-03-13 14:05:44List of Learning Resourcesby elect2017-03-13 14:04:45SF/X Librariesby philfrei2017-03-02 08:45:19SF/X Librariesby philfrei2017-03-02 08:44:05
 java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org