0
我正在嘗試創建一個較小的遊戲,並且我需要在窗口內從左到右移動一個矩形。請注意,這不是完整的代碼。下面是創建的窗口類和它的運行函數的一個片段。SDL C++自動移動一個矩形
我可以繪製矩形,此刻它也在移動。但是,當我按下上/下時,它也會向右移動,但我希望它自動執行。如果我移動while
(我認爲它應該...?)之外的for-loop調用movement()
,矩形就會消失。
要注意的另一件事是移動應該通過向量pcEnhet
調用,因爲我將在稍後使用它與其他精靈。
void Spelplan::run() {
SDL_RenderClear(render);
for (PCKomponent* k : pcEnhet)
k->draw();
SDL_RenderPresent(render);
bool spela = true;
while (spela) {
SDL_Event eve;
while (SDL_PollEvent(&eve)) {
switch (eve.type) {
case SDL_QUIT:
spela = false;
break;
case SDL_KEYDOWN:
switch (eve.key.keysym.sym) {
case SDLK_DOWN:
for (PCKomponent* k : pcEnhet)
k->knappNer(eve);
break;
case SDLK_UP:
for (PCKomponent* k : pcEnhet)
k->knappUpp(eve);
break;
}//keysym switch
SDL_RenderClear(render);
for (PCKomponent* k : pcEnhet)
k->draw();
SDL_RenderPresent(render);
}//eve.type switch
for (PCKomponent* k : pcEnhet) {
k->movement();
k->draw();
}
}//while SDL_Poll
}//while spela
}
void Spelare::movement() {
area.x++;
}
void Spelare::draw() {
SDL_RenderCopy(sp->getPlan(), spelareTexture, NULL, &area);
}