2
เทคนิคการจัดการอินพุตในเกมขนาดใหญ่
มีเทคนิคมาตรฐานในการจัดการอินพุตในเกมขนาดใหญ่หรือไม่ ขณะนี้ในโครงการของฉันการจัดการอินพุตทั้งหมดเสร็จในลูปเกมดังนี้: while(SDL_PollEvent(&event)){ switch(event.type){ case SDL_QUIT: exit = 1; break; case SDL_KEYDOWN: switch(event.key.keysym.sym){ case SDLK_c: //do stuff break; } break; case SDL_MOUSEBUTTONDOWN: switch(event.button.button){ case SDL_BUTTON_MIDDLE: //do stuff break; } } break; } (ฉันใช้ SDL แต่ฉันคาดหวังว่าหลักปฏิบัติจะใช้กับไลบรารีและกรอบงานด้วย) สำหรับโครงการขนาดใหญ่ดูเหมือนจะไม่ใช่ทางออกที่ดีที่สุด ฉันอาจมีวัตถุหลายอย่างที่อยากรู้ว่าผู้ใช้กดอะไรดังนั้นจึงเหมาะสมสำหรับวัตถุเหล่านั้นในการจัดการอินพุต อย่างไรก็ตามพวกเขาไม่สามารถจัดการอินพุตได้หลังจากที่ใครคนหนึ่งได้รับเหตุการณ์มันจะถูกผลักออกจากบัฟเฟอร์เหตุการณ์ดังนั้นวัตถุอื่นจะไม่ได้รับอินพุตนั้น วิธีใดที่ใช้กันมากที่สุดในการต่อต้านสิ่งนี้?