Estoy trabajando en mi primer juego XNA 2D y tengo un pequeño problema. Si salto, mi sprite salta pero no se cae. Y también tengo otro problema, el usuario puede contener barra espaciadora para saltar tan alto como quiera y no sé cómo evitar que lo haga. Aquí está mi código: El Salto:Salto vs. Gravedad
if (FaKeyboard.IsKeyDown(Keys.Space))
{
Jumping = true;
xPosition -= new Vector2(0, 5);
}
if (xPosition.Y >= 10)
{
Jumping = false;
Grounded = false;
}
El muy simple gravedad básica:
if (!Grounded && !Jumping)
{
xPosition += new Vector2(1, 3) * speed;
}
Aquí es donde está la tierra se establece en Verdadero o Falso con una colisión
Rectangle MegamanRectangle = new Rectangle((int)xPosition.X, (int)xPosition.Y, FrameSizeDraw.X, FrameSizeDraw.Y);
Rectangle Block1Rectangle = new Rectangle((int)0, (int)73, Block1.Width, Block1.Height);
Rectangle Block2Rectangle = new Rectangle((int)500, (int)73, Block2.Width, Block2.Height);
if ((MegamanRectangle.Intersects(Block1Rectangle) || (MegamanRectangle.Intersects(Block2Rectangle))))
{
Grounded = true;
}
else
{
Grounded = false;
}
La conexión a tierra bool y La gravedad han sido probados y están funcionando. ¿Alguna idea de por qué? Gracias de antemano y no dude en preguntar si necesita otra parte del código.
Me gusta mucho este enfoque! Pero soy nuevo en esto y no puedo imaginarme qué poner en lugar de "GameWorld" – phadaphunk
Lo que sea que guardes los objetos del juego, ya sea el mundo, el administrador de escena, etc. Es posible que desee mantener una colección de objetos de física (solo objetos móviles, omita el nivel estático) y usar eso. – ssube
+1; Buena sugerencia. Mis dos centavos: Dependiendo de su juego, a veces la física más falsa puede darle mejores resultados. Ala los juegos de Mario, o casi cualquier juego de plataforma de la era NES o SNES. Tendrás cálculos más fáciles/menos experimentación al diseñar tus niveles, y no será tan difícil de resolver som Las cosas, como "tunelización", o hacer que tu física funcione de manera diferente en diferentes máquinas. No será tan general tho. Si opta por un enfoque de velocidad/aceleración más generalizado, como sugiere esta respuesta, también podría considerar la velocidad del terminal de modelado. –