я делаю платформу типа игры.Я сделал моего главного героя прямоугольником, используя класс Rectangle, а также платформы.Платформы постоянно движутся вверх по экрану, и когда мой персонаж сталкивается с верхом платформы, я хочу, чтобы он приземлился и двигался с той же скоростью, что и платформа, иначе он должен упасть.У меня все работает, кроме падающей части.Если я включаю падение, оно никогда не остается на платформах, но если я включаю падение, оно работает нормально.По сути, предполагается, что персонаж все время падает, если только он не приземлится на платформу, тогда его направление / скорость у должны измениться на скорость платформ.было бы здорово, чтобы персонаж падал, когда не сталкивался с платформами.Я знаю, что я делаю, возможно, не самый эффективный способ сделать это, если есть лучший способ, который я хотел бы знать.Я новичок в xna, но я знаю java / c #
Rectangle playerRec = new Rectangle((int)player.position.X, (int)player.position.Y,player.width, player.height);
foreach (Platforms platform in platforms)
{
Rectangle platformRec = new Rectangle((int)platform.position.X, (int)platform.position.Y, platform.width, platform.height);
if ((playerRec.Intersects(platformRec) && (playerRec.Y + playerRec.Height) - platformSpeed < platformRec.Y) &&
(playerRec.X < platformRec.X + platformRec.Width && playerRec.X + playerRec.Width > platformRec.X))
{
gravity = 0;
player.position.Y -= platformSpeed;
}
else if(player.position.Y != platform.position.Y)
{
gravity = 5;
//player.position.Y += gravity;
}