I have a project called Survival Shooter where I have to make a spawner for the enemies. I dont know how to make multiple enemies spawn from random positions or like from one position but after 5 seconds for example.
void Tema1::SpawnEnemy(glm::mat3 visMatrix, float deltaTime, float* posX, float* posY, float speed)
{
enemyAngle = atan2(translateX - *posX, translateY - *posY);
*posX += speed * sin(enemyAngle) * deltaTime;
*posY += speed * cos(enemyAngle) * deltaTime;
//Body
modelMatrix = visMatrix;
modelMatrix *= transform2D::Translate(*posX, *posY);
modelMatrix *= transform2D::Scale(1, 1);
modelMatrix *= transform2D::Rotate(enemyAngle);
modelMatrix *= transform2D::Translate(-50, -50);
RenderMesh2D(meshes["border"], shaders["VertexColor"], modelMatrix);
//Eye1
modelMatrix = visMatrix;
modelMatrix *= transform2D::Translate(*posX, *posY);
modelMatrix *= transform2D::Scale(0.25f, 0.25f);
modelMatrix *= transform2D::Rotate(enemyAngle);
modelMatrix *= transform2D::Translate(150, 200);
modelMatrix *= transform2D::Rotate(0);
modelMatrix *= transform2D::Translate(-50, -50);
RenderMesh2D(meshes["square2"], shaders["VertexColor"], modelMatrix);
//Eye2
modelMatrix = visMatrix;
modelMatrix *= transform2D::Translate(*posX, *posY);
modelMatrix *= transform2D::Scale(0.25f, 0.25f);
modelMatrix *= transform2D::Rotate(enemyAngle);
modelMatrix *= transform2D::Translate(-150, 200);
modelMatrix *= transform2D::Rotate(0);
modelMatrix *= transform2D::Translate(-50, -50);
RenderMesh2D(meshes["square2"], shaders["VertexColor"], modelMatrix);
}
This is the method that I call when I want to draw a new enemy and I call it in the Update method.
The question is, how do I draw a new enemy after an amount of time without destroying the current enemies that I have in the scene?