Java-Gaming.org
 Featured games (81) games approved by the League of Dukes Games in Showcase (497) Games in Android Showcase (114) games submitted by our members Games in WIP (563) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 Platform game collision detection [SOLVED]  (Read 705 times) 0 Members and 1 Guest are viewing this topic.
SHC
 « Posted 2012-10-27 12:34:41 »

I'm getting this error in platformer collisions. The Player jumps well but when he move out of platforms, he doesn't fall. Here's an image describing the situation.

Here's my code.

 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  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62 `// VariablesGTimer jump = new GTimer(1000);boolean onground = true;// The update methodpublic void update(long elapsedTime){    MapView.follow(this);    // Add the gravity    if (!onground && !jump.active){        setVelocityY(4);    }    // Jumping    if (isPressed(VK_SPACE) && onground){        jump.start();        setVelocityY(-4);        onground = false;    }    if (jump.action(elapsedTime)){        // jump expired        jump.stop();    }    // Horizontal movement    setVelocityX(0);    if (isPressed(VK_LEFT)){        setVelocityX(-4);    }    if (isPressed(VK_RIGHT)){        setVelocityX(4);    }}// The collision methodpublic void collision(GObject other){    if (other instanceof Block){        // Determine the horizontal distance between centers        float h_dist = Math.abs((other.getX() + other.getWidth()/2) - (getX() + getWidth()/2));        // Now the vertical distance        float v_dist = Math.abs((other.getY() + other.getHeight()/2) - (getY() + getHeight()/2));        // If h_dist > v_dist horizontal collision else vertical collision        if (h_dist > v_dist){            // Are we moving right?            if (getX()other.getX()){                setX(other.getX()+other.getWidth());            }        } else {            // Are we moving up?            if (jump.active){                jump.stop();            }            // We are moving down            else {                setY(other.getY()-getHeight());                setVelocityY(0);                onground = true;            }        }    }}`

I know I'm not checking underneath the player but doing so (iterating through all the blocks) is making the player go in a bit and he comes to the platform.

Thanks

ReBirth
 « Reply #1 - Posted 2012-10-27 12:59:47 »

Because your onground variable never be true. The only chance for him to be true is only colliding with objects but not jumping.

SHC
 « Reply #2 - Posted 2012-10-27 13:42:28 »

Solved now. I've forgot the method to give limits to the objects.

ReBirth
 « Reply #3 - Posted 2012-10-27 14:27:44 »

I dont understand what you mean, but good it's solved.

SHC
 « Reply #4 - Posted 2012-10-27 16:40:39 »

Just moving to new position only checking collision from it.

Pages: [1]
 ignore  |  Print

You cannot reply to this message, because it is very, very old.

 Add your game by posting it in the WIP section, or publish it in Showcase. The first screenshot will be displayed as a thumbnail.
 BurntPizza (22 views) 2014-09-19 03:14:18 Dwinin (35 views) 2014-09-12 09:08:26 Norakomi (62 views) 2014-09-10 13:57:51 TehJavaDev (90 views) 2014-09-10 06:39:09 Tekkerue (44 views) 2014-09-09 02:24:56 mitcheeb (65 views) 2014-09-08 06:06:29 BurntPizza (48 views) 2014-09-07 01:13:42 Longarmx (35 views) 2014-09-07 01:12:14 Longarmx (40 views) 2014-09-07 01:11:22 Longarmx (37 views) 2014-09-07 01:10:19
 BurntPizza 37x Riven 18x Rayvolution 18x princec 17x basil_ 16x ags1 16x KevinWorkman 15x LiquidNitrogen 12x kevglass 12x nsigma 11x theagentd 11x deathpat 10x HeroesGraveDev 9x The Lion King 7x Gibbo3771 6x cylab 6x
 List of Learning Resources2014-08-16 10:40:00List of Learning Resources2014-08-05 19:33:27Resources for WIP games2014-08-01 16:20:17Resources for WIP games2014-08-01 16:19:50List of Learning Resources2014-07-31 16:29:50List of Learning Resources2014-07-31 16:26:06List of Learning Resources2014-07-31 11:54:12HotSpot Optionsby dleskov2014-07-08 01:59:08
 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