绘图函数在 while 循环内的 for 循环中,就像 while(!windownotclose){ for(auto& e:somevecs){//code}} 一样。 我在 visual studio 中设置了一个断点,看看 e 是否为 null 而事实并非如此。
更新函数(while循环和for循环)
它的工作原理是创建一个类并将它(emplace_back)插入一个向量(for 循环中的相同向量)。
void valen::World::Update() {
while (!gameWindow->isWindowClosed()) {
this->gameWindow->Update();
this->w_SoundSystem->Update(1.0f);
this->w_InputManager->Update(1.0f);
this->w_EntitySystem->UpdateActors(1.0f);
for (std::unique_ptr<Actor>& e : w_EntitySystem->getActors()) {
SDL_Rect rect = {e->getPos().x, e->getPos().y, e->getSize().x, e->getSize().y};
SDL_SetRenderDrawColor(gameWindow->sdl_renderer, e->getColor().r, e->getColor().g, e->getColor().b, 255);
SDL_RenderFillRect(gameWindow->sdl_renderer, &rect);
}
}
std::cout << "\" " << gameWindow->getTitle() << " \"" << "has ended... \n";
}
main.cpp
class myActor : public valen::Actor {
public:
myActor() {
position = { 0,0 };
size = { 100,100 };
color = { 255,0,0 };
}
void Init() override {
}
void Update(float dt) override {
//position.x += 100 * dt;
std::cout << position.x << std::endl;
}
~myActor() {
}
};
int main(int argc, char **argv) {
valen::World* world = new valen::World();
world->Init();
world->addActor(std::make_unique<myActor>());
world->initActor();
world->Update();
return 0;
}