Why does the player fall down when in between platforms? Tile based platformer
- by inzombiak
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.