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);
}