xna根据按键的时间对电源充电
本文关键字:电源 时间 xna | 更新日期: 2023-09-27 18:25:35
我目前正在开发射击游戏。在那我的投篮次数是固定的。但我喜欢根据某人按下键盘键的时间来改变它。如果按键的时间更长,应该会产生更多的电力。
这是我的密码。
{
// Create projectile
worldEntities.Add(new Sphere(GraphicsDevice, 0.1f, 0.2f, Character.EyePosition() + Character.LookTowards(), 0.8f, Color.Blue));
// Add gravity to projectile
(worldEntities[worldEntities.Count - 1] as RigidBody).Acceleration = new Vector3(0f, -10f, 0f);
// Calculate launch velocity
Vector3 launchVelocity = Character.LookTowards() * 10f;
// Set particle velocity to launch velocity
(worldEntities[worldEntities.Count - 1] as RigidBody).Velocity = launchVelocity;
// Reset timer
timer = 1f;
}
为您的功率倍增器设置一个变量,这将导致您的速度在第一次按下时为0%,在按住最长时间时为100%
float power;
const float maxTime = 1000; //1 second
在更新方法中,您需要检查是否按下了键,并添加自上一帧以来经过的时间。
if (KeyBoard.GetState().IsKeyDown(Keys.Space))
power += (float)gameTime.ElapsedGameTime.TotalMilliseconds;
我们还需要检查功率是否达到了最大功率,并进行射击。
if (power >= maxTime)
//Fire!
此外,另一种情况是,如果用户在点火之前松开了钥匙。(lastKeyboardState是最后一帧的状态,只需在每帧结束时将其设置为KeyBoard.GetState())
if (lastKeyboardState.IsKeyDown(Keys.Space) && !currentKeyboardState.IsKeyDown(Keys.Space)
{
//Fire, but without full power
}