FYI - I'm coding in actionscript 3.0 but didn't see an area to post for that language.
I made a simple character and a block. I'm trying to get it so that if the character will touch the box, it wont let him move to imply a wall/collision.
I've got him moving but the problem is that it doesn't PREdetect the collision. It lets him overlap the block once, then when I try to move again, it wont go anywhere because NOW (that it's too late), he's overlapping and thus colliding. Anyone know how I can very simply edit this code so the player isn't allowed to overlap the block in the first place?
var block:Sprite = MovieClip(blockInst);
var player:Sprite = MovieClip(playerInst);
var speed:Number = 10;
case 37 ://Left
player.x -= speed;
case 39 ://Right
player.x += speed;
case 38 ://Up
player.y -= speed;
case 40 ://Down
player.y += speed;
1 Year Ago
Related Article:Collision Detection and Response
is a Game Development discussion thread by Chuckleluck that has 10 replies, was last updated 5 months ago and has been tagged with the keywords: collision, detection, cd, response, physics.
Yea so this is a problem of collision response. Once a collision is detected what do you do? Well in this case you should move your player back just before the collision point. So if there is a collision, shift back the player's position so that there is not a collision anymore. Get it?