老实说,这是一个测试给我当我申请游戏开发工作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_);
}
}
我试着调用不同的位置和方向产卵多次,但它似乎没有更新。一个朋友告诉我调用函数多次,存储结果向量,而不是一个指针,但目标不知道如何。
1条答案
按热度按时间enxuqcxy1#
假设
SpawnBullet
是这样开始的:......支持多个项目符号的第一步可能是消除
DeleteBullet()
调用,当您尝试生成一个新项目符号时,该调用(显然)会删除任何现有的项目符号。除此之外,您无疑希望将现有的
bullet_
变量从单个指针更改为类似vector
的内容。UpdateBullet
也需要更新,因此它不是更新单个项目符号,而是更新vector
(或您选择的任何集合,但可能是vector
)中的所有项目符号。