Сейчас я пытаюсь сделать простой редактор игр на C #, однако есть проблема с тем, когда пользователь добавляет на экран более одной платформы:
private void tmrRunGame_Tick(object sender, EventArgs e)
{
foreach(Platform plat in platList)
{
if (plat.getBounds().IntersectsWith(player.getBounds()))
{
tmrGravity.Stop();
isColliding = true;
}
else
{
isColliding = false;
}
}
if(player.getY() < 500 && !isJumping && !isColliding)
{
tmrGravity.Start();
}
else
{
tmrGravity.Stop();
}
}
Этот код останавливает пользователяот провала через последнюю созданную платформу, все из которых до этого пользователь мог просто провалиться.Что делает это еще более запутанным, так это то, что программа выявляет коллизии для всех платформ, но делает только то, что должна для одной!Это очень расстраивает, и любая помощь приветствуется.
Вот как я добавляю платформы, если это помогает каким-либо образом:
private void pbPlatformSelect_MouseClick(object sender, MouseEventArgs e)
{
Platform plat = new Platform(100, 10, 50, 50);
plat.drawTo(this);
platList.Add(plat);
}