c++ 生成多个项目符号

kgqe7b3p  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(186)

老实说,这是一个测试给我当我申请游戏开发工作2年前,但我没能解决这个具体的问题,然后我需要指导我如何才能实现产卵多个子弹。

void Game::SpawnBullet(XMVECTOR position, XMVECTOR direction)
{
    DeleteBullet();

    bullet_ = new Bullet(position, direction);
    bullet_->EnableCollisions(collision_, 3.0f);
}
void Game::UpdatePlayer(System* system)
{
  if (keyboard->IsKeyPressed(VK_SPACE))
     {
    XMVECTOR playerForward = player_->GetForwardVector();
    XMVECTOR bulletPosition = player_->GetPosition() + playerForward * 10.0f;
    SpawnBullet(bulletPosition, playerForward);
     }
}

void Game::UpdateBullet(System* system)
{
  if (bullet_ != NULL)
     {
       bullet_->Update(system);
       WrapEntity(bullet_);
     }
}

我试着调用不同的位置和方向产卵多次,但它似乎没有更新。一个朋友告诉我调用函数多次,存储结果向量,而不是一个指针,但目标不知道如何。

enxuqcxy

enxuqcxy1#

假设SpawnBullet是这样开始的:

void Game::SpawnBullet(XMVECTOR position, XMVECTOR direction)
{
    DeleteBullet();

......支持多个项目符号的第一步可能是消除DeleteBullet()调用,当您尝试生成一个新项目符号时,该调用(显然)会删除任何现有的项目符号。
除此之外,您无疑希望将现有的bullet_变量从单个指针更改为类似vector的内容。
UpdateBullet也需要更新,因此它不是更新单个项目符号,而是更新vector(或您选择的任何集合,但可能是vector)中的所有项目符号。

相关问题