【问题标题】:Better way to make a "bullet" for a game in c++?用 C++ 为游戏制作“子弹”的更好方法?
【发布时间】:2020-05-16 01:40:50
【问题描述】:

所以,我正在用 C++ 制作游戏。但是,在创建“子弹”时,我还没有看到任何方法可以在不使用 for 循环的情况下使其向上。这使得整个游戏在子弹上膛时都处于休眠状态,你们有没有更好的想法来了解如何在不否认任何玩家移动的情况下使这项工作发挥作用? 实际代码(绝对恶心,很快改进了子弹位置和敌人位置检查,i

for (int i = 0; i < 6; i++) {
    if (bullet.Y == enemy.pos.Y && bullet.X == enemy.pos.X || bullet.Y  == enemy1.pos.Y && bullet.X == enemy1.pos.X + 2|| bullet.Y == enemy1.pos.Y && bullet.X == enemy1.pos.X + 1 || bullet.Y == enemy1.pos.Y && bullet.X == enemy1.pos.X + 3 || bullet.Y == enemy1.pos.Y && bullet.X == enemy.pos.X + 4 ){
        enemy1.sprite = "+10";
        score += 10;
    }
}

【问题讨论】:

  • 你到底想做什么?也许试着把你想说的话弄清楚。

标签: c++ logic


【解决方案1】:

您使用的是什么框架?它有计时器事件吗?

然后为需要定期完成的事情添加一个计时器事件,例如移动“子弹”(或几乎任何其他需要在后台发生的动画)。

您更新子弹位置并重新绘制它的每个计时器事件,直到它到达其目的地(或其他命中框使其消失)。

【讨论】:

  • 谢谢,这正是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2014-02-22
  • 1970-01-01
  • 2021-02-22
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多