คำถามติดแท็ก sdl2

2
การลบความล่าช้าเมื่อเริ่มต้นการกดปุ่ม
ฉันกำลังสร้างเกมง่ายๆและหนึ่งในปัญหาที่ฉันพบคือความล่าช้าที่น่ารำคาญเมื่อกดปุ่มอย่างต่อเนื่อง ดังนั้นโดยทั่วไปเมื่อฉันกด (เป็นเวลานานมาก) ตัวอย่างเช่นUpวัตถุของฉันจะเคลื่อนที่ 1 หน่วยขึ้นไปไม่ขยับ (ประมาณ 1 วินาที) จากนั้นเลื่อนอย่างต่อเนื่อง 1 หน่วยขึ้นไป (โดยไม่ล่าช้า) ขณะนี้ฉันใช้สิ่งนี้เพื่อย้ายวัตถุ (SDL2): while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: switch (event.key.keysym.sym) { case SDLK_UP: //Move object 1 unit up break; //Other unrelated things omitted } break; //Omitted other cases } } สิ่งที่ฉันต้องการคือการลบความล่าช้าเพื่อให้วัตถุสามารถเคลื่อนที่Upได้อย่างรวดเร็วในทันที มีวิธีการทำเช่นนี้?
11 c++  sdl2  keyboard 

3
UPS และ FPS - ฉันควร จำกัด อะไรและทำไม
ขณะนี้ฉันกำลังเขียนเกมโดยใช้ C ++ และ SDL2 และมีสิ่งหนึ่งที่ฉันสงสัย - มีเหตุผลไหมที่จะ จำกัด จำนวนเฟรมต่อวินาที (FPS) และ / หรืออัปเดตต่อวินาที (UPS) ฉันเข้าใจว่าถ้าคุณ จำกัด ยูพีเอสคุณจะต้องควบคุมความเร็วของเกมเป็นหลัก - หากผู้เล่นเคลื่อนที่ 1px ต่อการอัปเดตและคุณอัพเดท 30 ครั้งต่อวินาทีเขาจะเคลื่อนที่ด้วยความเร็ว 30px / s และคุณ อาจช่วยลด CPU ได้เนื่องจากจำนวนการคำนวณต่อวินาทีจะลดลง หากคุณ จำกัด FPS จำนวนการเรียกเลขหมายต่อวินาทีจะลดลงดังนั้นคุณจึงลดการใช้ GPU ของคุณ ฉันหวังว่าฉันจะเข้าใจทุกอย่างถูกต้องถ้าไม่รู้สึกอิสระที่จะแก้ไขให้ถูกต้อง คำถามของฉันคือ - ฉันควร จำกัด อะไรในเกมของฉัน FPS? ยูพีเอส? ทั้งสอง? ทั้ง? มีอีกวิธีที่ดีกว่านี้? เกมนี้ส่วนใหญ่ทำได้อย่างไรและทำไม? คำตอบนั้นได้รับการชื่นชมอย่างมาก!
11 game-loop  logic  sdl2 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.