Xna 一次从数组中触发(更新)对象

Posted

技术标签:

【中文标题】Xna 一次从数组中触发(更新)对象【英文标题】:Xna firing(updating) objects from an array one at a time 【发布时间】:2012-08-26 22:04:31 【问题描述】:

好的,所以我有一个子弹对象数组,我想在每次游戏循环运行时对其进行更新。当调用更新方法时,我希望在单击鼠标或按下某个键时发射一颗子弹,但是每次我按下键盘或鼠标上的发射按钮时,数组中的所有对象似乎都会发射,我设法做到了这以前是正确的,但对于我的生活,我无法弄清楚我哪里出错了,有什么建议吗?

这是我的游戏更新方法中的代码:

for (int i = 0; i < maxbullets; i++)

    bullets[i].update_bulets(gametime, Position, velocity,
                             rotation, viewport, keystate,
                             gamepadstate, bulletsound);

【问题讨论】:

【参考方案1】:

好吧,在浏览了我所有的旧文件之后,我非常坦率地(“坦克”双关语)能够使用一个小标记来跟踪我按下开火按钮的次数来解决它。我不只是发布问题并回答他们顺便说一句,我自己设法找到了答案,希望有人发现它和我一样有用,我为错误的格式道歉。是时候回到我的项目了:)

        if ((previousgamepadstate.IsButtonUp(Buttons.RightTrigger) && gamepadstate.IsButtonDown(Buttons.RightTrigger))
            || (previouskeyboardstate.IsKeyUp(Keys.F) && keystate.IsKeyDown(Keys.F)))
        

            bullets[currentbullet].alive = true;

            if (currentbullet < maxbullets - 1)
            
                currentbullet++;
                bulletsound.Play();
            
            else
            
                currentbullet = 0;
            
        

        foreach (Bullets bullet in bullets)
        
            bullet.update_bulets(gametime, Position, velocity, rotation, viewport, bulletsound);
        

【讨论】:

以上是关于Xna 一次从数组中触发(更新)对象的主要内容,如果未能解决你的问题,请参考以下文章

vue数组对象修改触发视图更新

Vue Reactivity:为啥替换对象的属性(数组)不会触发更新

Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新

redux dispatch 多次触发

Vue.js:如何使转换组只触发一次?

vue的data里面的值是数组时,在更改其某一项的时候,怎么触发视图的重新渲染?