Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (576)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Can't Smoothly Resolve Rectangle Collision  (Read 1248 times)
0 Members and 1 Guest are viewing this topic.
Offline jdgamedev

Senior Newbie


Medals: 1


Chillin Like a Villin


« Posted 2012-07-06 23:13:39 »

I'm trying to move a sprite around a tiled map where stone and water are solid. When my player sprite collides with a tile he stops moving and won't move as long as he is colliding. How do I fix this code to allow horizontal movement during vertical collisions and allow vertical movement during horizontal collisions? Also, thanks for helping out in advance :-)

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  
        // move player based on directions
   // methods for controlling movement
   public void move(){
      playerRect.x += xDir;
      playerRect.y += yDir;
   }
   
   public void checkCollision(){
      for(int i = 0; i < world.mapSize; i ++){
         if(playerRect.intersects(world.blocks[i]) && world.isSolid[i] ){
            intersection = (Rectangle) playerRect.createIntersection(world.blocks[i]);
            resolveCollision();
         }
      }
   }
   
   public void shoot(){
      // figure this out later
   }
   
   private void resolveCollision(){
      if(xDir > 0){
         playerRect.x -= xDir;
      }
      if(xDir < 0){
         playerRect.x -= xDir;
      }
      if(yDir > 0){
         playerRect.y -= yDir;
      }
      if(yDir < 0){
         playerRect.y -= yDir;
      }
   }

I'm on a quest to become a better game developer, check it out.
Offline 65K
« Reply #1 - Posted 2012-07-07 06:15:39 »

Handle horizontal and vertical collisions separately.
Do not use the whole sprite rectangle but certain checkpoints at the border of the sprite. For example, when moving to the right, only the checkpoints at the right sprite border collide with a stone on the right, whereas the top checkpoints stay free und signalize: vertical is free.
That works for me.

Offline Ultroman

JGO Knight


Medals: 25
Projects: 1


Snappin' at snizzes since '83


« Reply #2 - Posted 2012-07-12 06:43:11 »

Have a look at this topic

- Jonas
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline jdgamedev

Senior Newbie


Medals: 1


Chillin Like a Villin


« Reply #3 - Posted 2012-07-12 13:45:44 »

Haha, this is so funny. I just came from that topic to read the response here. It's already in my bookmarks and is a HUGE help. Thanks for the link.

I'm on a quest to become a better game developer, check it out.
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.

Longarmx (37 views)
2014-10-17 03:59:02

Norakomi (28 views)
2014-10-16 15:22:06

Norakomi (24 views)
2014-10-16 15:20:20

lcass (28 views)
2014-10-15 16:18:58

TehJavaDev (52 views)
2014-10-14 00:39:48

TehJavaDev (54 views)
2014-10-14 00:35:47

TehJavaDev (42 views)
2014-10-14 00:32:37

BurntPizza (64 views)
2014-10-11 23:24:42

BurntPizza (36 views)
2014-10-11 23:10:45

BurntPizza (78 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!