为整个数组创建If语句

时间:2013-02-19 21:48:47

标签: arrays if-statement

所以这是我的情况。我是编程新手,我刚刚开始制作一个非常非常基础的平台游戏。我的意思是字面上的平台游戏。

我已经让我的角色进入并跳跃了,我已经将我的平台创建为数组。这样我就可以将它们并排放在底部。现在还有其他方法可以解决这个问题,但我想知道如何为数组做这个。

所以我的角色落在了这个

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();

1 个答案:

答案 0 :(得分:0)

好像你必须添加一个for循环来循环平台。也许是这样的:

for(Platform : plat){
    if (platform.drawRect.Intersects(kirby.drawRect)){
        kirby.yVelocity = 0.0f;
    }
}

在这里,我假设你正在使用Java,Platform是你的平台数组的类,它有类List<Platform>