如何用键盘上的一个键在sdl中移动对象,然后该对象自动移动? 例如,我需要从游戏中的一辆坦克(改变坦克)中移动一颗子弹,所以我按下一个键,那么子弹应该会自动移动。
答案 0 :(得分:-1)
通常,如果您想做这样的事情,您要做的就是使用game loop。粗略地讲,您定义了一些功能来检查需要更新哪些内容(玩家,敌人,子弹,物品等),然后更新每个内容。
在这种情况下,例如,您需要一排子弹。您为每一帧动画。当您按下按钮时,您将新的项目符号添加到阵列。一旦该子弹进入阵列,它将“自行移动”。如果这样的话。
答案 1 :(得分:-2)
只需使用SDL事件:https://www.libsdl.org/release/SDL-1.2.15/docs/html/guideinputkeyboard.html
等待所需的键盘事件,然后调用移动项目符号的函数。
此示例来自文档,并且略有改动。
SDL_Event event;
/* Poll for events. SDL_PollEvent() returns 0 when there are no */
/* more events on the event queue, our while loop will exit when */
/* that occurs. */
while( SDL_PollEvent( &event ) ){
/* We are only worried about SDL_KEYDOWN and SDL_KEYUP events */
switch( event.type ){
case SDL_KEYDOWN:
printf( "Key press detected\n" );
break;
case SDL_KEYUP:
printf( "Key release detected\n" );
move_bullet(); // create your handler here
break;
default:
break;
}
}