我正在创建一个小行星游戏,我遇到了一个问题,试图让我的玩家发射。 以下是我认为应该让玩家发射的代码
public void Fire()
{
if (RocketshotDelay >= 0)
RocketshotDelay--;
if (RocketshotDelay <= 0)
{
rocketshotPosition = new Vector2(rocketshotPosition.X + 32 - rocketshotTexture.Width / 2, rocketshotPosition.Y + 30);
isVisible = true;
if (RocketshotDelay == 0)
RocketshotDelay = 15;
public void UpdateRocketshot()
{
rocketshotPosition.Y = rocketshotPosition.Y - speed;
if (rocketshotPosition.Y <= 0)
isVisible = false;
}
我认为这应该会让我的玩家发射火,但到目前为止,我还没有能够让这艘船开火。对我的代码中的任何问题的任何建议将不胜感激。干杯
答案 0 :(得分:0)
我还没有在评论中回答。
可能的问题:
确保您使用的是“base.Update()”代码和“base.Draw()”函数“Components.Add( RocketShot Instance Name )“或”Components.Add(this)“
发射代码是否位于实际的火箭或火箭射击类中?
您的火箭延迟可能也无法正常工作。如果它是等于0,你只能将火箭重置为15.如果它小于,则不重置。但是你可以触发该代码,即使它是-1或其他任何负面的。这意味着也许你会得到你的第一枪,但如果延迟超过0(-1到其他任何负面),你的子弹将不会重置。如果发生这种情况,您的火箭可能会继续重置。
确保您的速度合理。也许首先用少量数字进行测试。
确保您的触发器和消防代码认为按钮已释放而不仅仅是按下并按住。含义使用previousKeyState和currentKeyState。否则它可能会继续触发。 (由于延迟问题,这可能会导致它始终一直重置。)
if (RocketshotDelay <= 0) //This will trigger and reset all the time
RocketshotDelay = 15;