0
所以这是我的情况。我是编程新手,刚刚开始制作非常非常基础的平台游戏。我的意思是字面上与平台的游戏。为整个数组创建一条If语句
我已经得到了我的角色并跳跃着,我创建了我的平台作为数组。这样我就可以把它们并排放在底部。现在还有其他方法可以解决这个问题,但我想知道如何为数组做这件事。
所以,我有我的性格与此
这是一切优秀的下降,但我想他yVelocity去为0.0f,当他击中了任何阵列中的平台。
所以,我想这段代码
if (plat[i].drawRect.Intersects(kirby.drawRect))
{
kirby.yVelocity = 0.0f
}
我本以为这工作,但它给我的[I]说,这是不适用这方面的一个错误。
几点注意事项:
科比是我的角色名字,drawRect中是矩形的定义,开发平台是我的平台阵列由13个平台。
由于任何人谁可以帮助
更新
问题是plat.drawRect或高原[我] .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();
已回答我的问题添加了一个附加内容Gijs – Gandeh 2013-02-19 22:12:39
Gandeh,如果plat [i]无法在任何地方工作,那么您的代码的第二部分是否工作? – Gijs 2013-02-19 22:28:59
是的,平台[i]的工作原理是它沿着底部创建一个平台,就像他们应该出现的那样。当我尝试编写If语句来创建冲突规则时,我只会遇到麻烦。我只需要弄清楚如何引用所有数组项目的“矩形”。因为我在If语句中基本上想做的事情是 - 如果该字符与平台矩形相交,则将字符yVelocity改为0.0f。但正如我所说,我无法获得plat [i] .drawRect工作的任何变化。 – Gandeh 2013-02-19 22:47:26