Why does the player fall down when in between platforms? Tile based platformer
Posted
by
inzombiak
on Game Development
See other posts from Game Development
or by inzombiak
Published on 2012-06-29T18:21:25Z
Indexed on
2012/06/29
21:24 UTC
Read the original article
Hit count: 204
I've been working on a 2D platformer and have gotten the collision working, except for one tiny problem. My games a tile based platformer and whenever the player is in between two tiles, he falls down. Here is my code, it's fire off using an ENTER_FRAME event. It's only for collision from the bottom for now.
var i:int;
var j:int;
var platform:Platform;
var playerX:int = player.x/20;
var playerY:int = player.y/20;
var xLoopStart:int = (player.x - player.width)/20;
var yLoopStart:int = (player.y - player.height)/20;
var xLoopEnd:int = (player.x + player.width)/20;
var yLoopEnd:int = (player.y + player.height)/20;
var vy:Number = player.vy/20;
var hitDirection:String;
for(i = yLoopStart; i <= yLoopEnd; i++)
{
for(j = xLoopStart; j <= xLoopStart; j++)
{
if(platforms[i*36 + j] != null && platforms[i*36 + j] != 0)
{
platform = platforms[i*36 + j];
if(player.hitTestObject(platform) && i >= playerY)
{
hitDirection = "bottom";
}
}
}
}
This isn't the final version, going to replace hitTest with something more reliable , but this is an interesting problem and I'd like to know whats happening. Is my code just slow? Would firing off the code with a TIMER event fix it? Any information would be great.
© Game Development or respective owner