所以这是我的情况。我是编程新手,我刚刚开始制作一个非常非常基本的平台游戏。我的意思是真正的平台游戏。
我已经让我的角色进入并跳来跳去,我已经将我的平台创建为一个阵列。这样我就可以将它们并排放在底部。现在还有其他方法可以解决这个问题,但我想知道如何为数组做这件事。
所以我的性格因此而堕落
kirby.yVelocity += 1.0f
这一切都很好,但我希望他的 yVelocity 在他击中阵列中的任何平台时达到 0.0f。
所以我尝试了这段代码
if (plat[i].drawRect.Intersects(kirby.drawRect))
{
kirby.yVelocity = 0.0f
}
我认为这会起作用,但它给了我一个错误,因为 [i] 说它在这种情况下不适用。
几点注意事项:
kirby 是我的角色名称,drawRect 是 Rectangle 的定义,plat 是我的 Platform 数组,由 13 个平台组成。
感谢任何能提供帮助的人
更新
问题是 plat.drawRect 或 plat[i].drawRect 的任何变体都不起作用。这是我与平台数组相关的所有代码。
struct Platform
{
public Texture2D txr;
public Rectangle drawRect;
}
Platform[] plat;
plat = new Platform[13];
for (int i = 0; i < plat.Length; i++)
{
plat[i].txr = Content.Load<Texture2D>("platform");
plat[i].drawRect = new Rectangle(i * plat[i].txr.Width, 460, plat[i].txr.Width, plat[i].txr.Height);`
}
for (int i = 0; i < plat.Length; i++)
{
spriteBatch.Draw(plat[i].txr, plat[i].drawRect, Color.White);
}
spriteBatch.End();