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

อินพุตคือข้อมูลที่ให้ไว้กับเกมผ่านการโต้ตอบของผู้เล่น (ผ่านเมาส์แป้นพิมพ์ gamepad และอื่น ๆ )

4
ผู้เล่นล้าสำหรับแท็บเล็ต?
ฉันกำลังคิดที่จะสร้างเกมสำหรับแท็บเล็ต มาจากพื้นหลัง PC / Console ฉันตระหนักถึงความแตกต่างอย่างมากในส่วนต่อประสานผู้ใช้และฉันต้องออกแบบด้วยแพลตฟอร์มเป้าหมายในใจ แง่มุมหนึ่งที่ผมกังวลเกี่ยวกับการเป็นผู้เล่นความเมื่อยล้า อุปกรณ์อินพุตที่ใช้กับพีซีและคอนโซล - คีย์บอร์ดและตัวควบคุมเกม - ได้รับการปรับให้เหมาะสมสำหรับการเล่นที่ยาวนานขึ้นและมีการออกแบบตามหลักสรีรศาสตร์ที่เป็นผู้ใหญ่ ผู้เล่นที่มีประสบการณ์ส่วนใหญ่สามารถใช้งานได้อย่างง่ายดายเป็นเวลาหนึ่งชั่วโมงโดยกดปุ่ม / ปุ่มหลายพันครั้งโดยไม่ต้องเหนื่อยล้า นักออกแบบสามารถขึ้นเกี่ยวกับเรื่องนี้เมื่อมีการออกแบบประสบการณ์การใช้งานที่มีผลกระทบตั้งแต่ขนาด / ความยาวของระดับ , ขั้นตอนที่จำเป็นเพื่อรันคำสั่ง , จังหวะของเกมและอื่น ๆ อีกมากมาย แล้วแท็บเล็ตหน้าจอสัมผัสล่ะ? ผู้เล่นเริ่มเหนื่อยล้าเร็วขึ้นหรือไม่สามารถใช้งานก๊อก / การปัดจำนวนครั้งต่อหน่วยของเวลาได้หรือไม่? ถ้าเป็นเช่นนั้นมีทรัพยากรหรือแนวทางเกี่ยวกับเรื่องนี้หรือไม่?

6
วิธีจัดการกับอินพุตของเมาส์ใน XNA
ฉันกำลังพัฒนาการ์ดเกมใน XNA มีOnClickเหตุการณ์ใดใน XNA สำหรับวัตถุหรือไม่ ฉันพยายามที่จะทำให้ไพ่เคลื่อนที่เมื่อผู้เล่นคลิกที่ไพ่ ในโครงการนี้มีคลาส Sprite ที่วาดการ์ด แต่ฉันติดอยู่เล็กน้อยเพราะฉันไม่รู้วิธีใช้OnClickเหตุการณ์หรืออะไรทำนองนั้น
13 xna  c#  input  mouse 

5
การจัดการระบบป้อนข้อมูลด้วยแป้นพิมพ์
หมายเหตุ: ฉันต้องสำรวจแทนที่จะโทรกลับเนื่องจากข้อ จำกัด API (SFML) ฉันยังขอโทษที่ไม่มีชื่อ 'ที่เหมาะสม' ฉันคิดว่าฉันมีสองคำถามที่นี่; วิธีการลงทะเบียนข้อมูลที่ฉันได้รับและจะทำอย่างไรกับมัน การจัดการอินพุต ฉันกำลังพูดถึงหลังจากที่คุณได้ลงทะเบียนว่ามีการกดแป้น 'A' ตัวอย่างเช่นและวิธีการทำจากที่นั่น ฉันเคยเห็นชุดแป้นพิมพ์ทั้งหมดเช่น: bool keyboard[256]; //And each input loop check the state of every key on the keyboard แต่ดูเหมือนว่าจะไม่มีประสิทธิภาพ ไม่เพียง แต่คุณจะมีการเชื่อมต่อปุ่ม 'A' ถึง 'ผู้เล่นที่เลื่อนไปทางซ้าย' แต่มันจะตรวจสอบทุก ๆ 30-60 ครั้งต่อวินาที ฉันลองระบบอื่นซึ่งเพิ่งค้นหากุญแจที่ต้องการ std::map< unsigned char, Key> keyMap; //Key stores the keycode, and …

4
ทำไมการวางแนวของเมาส์ไปข้างหน้า = ลงโดยทั่วไปเรียกว่า“ คว่ำ”?
หากคุณดูเกม 3 มิติที่ช่วยให้คุณควบคุมกล้องโดยใช้เมาส์ - โดยเฉพาะอย่างยิ่งเกมสไตล์นักกีฬาคนแรกและคนที่สาม - โดยทั่วไปคุณจะพบรายละเอียดเฉพาะสองอย่าง: ตามค่าเริ่มต้นการเลื่อนเมาส์ไปข้างหน้าจะทำให้กล้องเงยหน้าขึ้นและดึงกลับลงมา ตัวเลือกในการกลับด้านนี้ (ไปข้างหน้า = ลง) เรียกว่า "แกนกลับหัว Y" หรือบางอย่างที่คล้ายกัน ฉันไม่เคยเข้าใจมาก่อนและดูเหมือนจะย้อนกลับมาหาฉันเสมอจนถึงจุดที่ฉันสับสนในเกมใด ๆ ที่มีการตั้งค่าเริ่มต้น ดูเหมือนชัดเจนว่าสัญชาตญาณว่าเมาส์ (หรือยิ่งกว่านั้นคือ thumbstick ที่ดูเหมือนหัวนั่งอยู่บนคอ) เป็นการจำลองหัวของตัวละครในมุมมอง เลื่อนไปทางซ้ายคุณมองไปทางซ้าย เลื่อนไปทางขวาคุณดูขวา ดันไปข้างหน้าหัวผลักไปข้างหน้าและคุณมองลงไป ...ใช่ไหม ในความเป็นจริงการวางแนวนี้เป็นค่าเริ่มต้นในเกม 3D ยุคต้น ๆ มากมายเช่นการจำลองการบิน MechWarrior 2 เป็นต้น แต่ในบางครั้งมันก็เปลี่ยนไป มีเหตุผลทางประวัติศาสตร์ใด ๆ ที่อยู่เบื้องหลังการกลับทิศทางการควบคุมกล้องเริ่มต้นนี้หรือไม่? อาจมีบทความใด ๆ เกี่ยวกับเหตุผลที่อยู่เบื้องหลังการเปลี่ยนแปลงมันหรือการศึกษาแสดงให้เห็นว่าทำไมมันถึงเป็นการเปลี่ยนแปลงที่พึงปรารถนาที่จะทำ?

4
กับดักหนูใน SDL
ฉันจะดักจับเมาส์ของผู้ใช้ในเกมได้อย่างไร มันไม่ใช่เกมแบบเต็มหน้าจอ แต่ฉันต้องการมันเพื่อที่ผู้ใช้จะไม่สามารถลากเมาส์ไปด้านนอกหน้าจอ ฉันต้องตรวจสอบพิกัดของเมาส์และ SDL_WarpCursor เพื่อให้พูดในหน้าต่าง (ด้วยตนเอง) หรือมีวิธีอัตโนมัติหรือไม่? ขอบคุณ.
12 sdl  input  mouse 

4
เป็นไปได้หรือไม่ที่จะตรวจจับหนูสองตัวที่แตกต่างกันในเวลาเดียวกันและมีการบันทึกการเคลื่อนไหวแยกจากกัน? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังคิดที่จะสร้างเกมที่ต้องใช้หนูสองตัวเล่น มันต้องลงทะเบียนการเคลื่อนไหวแยกจากกัน เป็นไปได้ไหม หรือสถาปัตยกรรม Windows ไม่อนุญาตให้ทำสิ่งนั้น? ขอบคุณ.
12 input  windows  mouse 

2
วิธีที่ถูกต้องในการทำให้นามธรรมเป็นตัวควบคุม XBox
ฉันมีตัวควบคุม XBox360 ซึ่งฉันต้องการใช้เป็นอินพุตสำหรับแอปพลิเคชัน สิ่งที่ฉันไม่สามารถทำได้คือวิธีที่ดีที่สุดในการเปิดเผยสิ่งนี้ผ่านทางอินเทอร์เฟซ ด้านหลังของฉากคลาสที่จัดการกับคอนโทรลเลอร์นั้นขึ้นอยู่กับสถานะของปุ่มสำรวจ ฉันเริ่มลองลิงค์แล้ว: Event ButtonPressed() as ButtonEnum ที่ButtonEnumเป็นButtonRed, ButtonStartฯลฯ ... ข้อ จำกัด เล็ก ๆ น้อย ๆ ที่สนับสนุนเฉพาะการกดปุ่มไม่ถือ / รูปแบบ (กดสองครั้งเป็นต้น) แนวคิดต่อไปคือการเปิดเผยสถานะปุ่มให้กับแอพเช่น Property RedPressed as Boolean Property StartPressed as Boolean Property Thumb1XAxis as Double นี่ยืดหยุ่นมาก แต่จริงๆแล้วมันบังคับให้ทำงานมากเกินไปในแอพและต้องการให้แอพโพล - ฉันต้องการให้มีการขับเคลื่อนกิจกรรมหากเป็นไปได้ ฉันพิจารณาเพิ่มกิจกรรมหลายรายการเช่น: Event ButtonPressed(Button as ButtonEnum) Event ButtonPressedTwice(Button as ButtonEnum) Event …

2
ใน GUI ควรจัดการอินพุตเมื่อกดหรือปล่อยปุ่ม?
ในระบบเมนูสำหรับเกมของเรา (เลือกระดับตัวเลือก ฯลฯ ) ผู้เล่นกดปุ่มบน gamepad เพื่อไปยังหน้าจอถัดไป ฉันเข้ารหัสระบบเมนูเพื่อรอจนกว่าจะปล่อยปุ่มก่อนที่จะดำเนินการใด ๆ (เช่นการแสดงหน้าจอถัดไป) ข้อเสนอแนะ playtest ล่าสุดบางข้อเสนอแนะให้เราทำในทางตรงกันข้าม: ดำเนินการทันทีที่กดปุ่ม ฉันสงสัยว่าอะไรเป็นวิธีมาตรฐานในการจัดการและมันสร้างความแตกต่างได้หรือไม่?
12 input  gui 

6
การสร้าง (หรือเลียนแบบ)“ D-Pad” บนหน้าจอสัมผัส; เสมือน d-pad
ด้วยการเพิ่มจำนวนของอุปกรณ์ที่ใช้ระบบสัมผัสหลายคนขาด D-Pad จริงฉันสงสัยว่าถ้าใครมีทรัพยากรในการเลียนแบบ D-Pad บนหน้าจอสัมผัส? ฉันสนใจตัวอย่าง XNA และ / หรือ Android เป็นพิเศษ

3
การจัดการอินพุตในการออกแบบตามส่วนประกอบ
ฉันรู้ว่าคำถามนี้ถูกถามหลายครั้ง แต่ฉันยังไม่แน่ใจว่าจะใช้การจัดการอินพุตในเอนจินที่ใช้ส่วนประกอบได้อย่างไร การออกแบบที่ใช้ส่วนประกอบที่ฉันใช้นั้นเป็นไปตามชุดบล็อกของT = MachineและArtemisซึ่ง Entities เป็นแค่รหัส มีสามแนวคิดหลักที่ฉันมีในการใช้การจัดการอินพุต: องค์ประกอบอินพุตจะจัดกิจกรรมที่สนใจ ระบบอินพุตจะแปลเหตุการณ์ของคีย์และเมาส์เป็นเหตุการณ์ของเกมและวนลูปผ่านเอนทิตีที่มีองค์ประกอบอินพุตและหากพวกเขาสนใจในเหตุการณ์ระบบจะดำเนินการที่เหมาะสม การกระทำนี้จะถูกเข้ารหัสอย่างหนักในระบบอินพุต ไม่มีองค์ประกอบอินพุต คุณจะลงทะเบียนเอนทิตีที่มีเหตุการณ์เฉพาะไปยังระบบอินพุต จากนั้นระบบอินพุตจะส่งข้อความ (พร้อมรหัสเอนทิตีและประเภทเหตุการณ์) ไปยังระบบอื่นเพื่อให้สามารถดำเนินการที่เหมาะสมได้ หรือในกรณีแรกการกระทำจะถูกกำหนดค่าตายตัวในระบบอินพุต คล้ายกับวิธีแรก แต่แทนที่จะเขียนโค้ดการดำเนินการกับระบบอินพุตอย่างหนักส่วนประกอบจะมีแผนที่ของเหตุการณ์ไปยังฟังก์ชั่น (เช่นstd::map<std::function>) ซึ่งจะถูกเรียกโดยระบบอินพุต สิ่งนี้มีผลกระทบเพิ่มเติมจากความสามารถในการจับคู่เหตุการณ์เดียวกันกับการกระทำที่แตกต่างกัน คุณจะแนะนำวิธีการใด ๆ ข้างต้นหรือคุณมีข้อเสนอแนะใด ๆ ที่จะช่วยให้ฉันใช้ระบบจัดการอินพุตที่ยืดหยุ่นได้หรือไม่? นอกจากนี้ฉันยังไม่คุ้นเคยกับหลายเธรด แต่ข้อเสนอแนะใด ๆ ที่จะทำให้การใช้เธรดเป็นมิตรก็ยินดีด้วย หมายเหตุ: ข้อกำหนดเพิ่มเติมหนึ่งข้อที่ฉันต้องการให้มีการนำไปใช้เพื่อเติมเต็มคือฉันสามารถส่งผ่านอินพุตเดียวกันไปยังเอนทิตีหลาย ๆ อย่างเช่นการย้ายเอนทิตีกล้องและผู้เล่นในเวลาเดียวกัน

2
วิธีการใส่เมาส์ล่าช้า?
ฉันมีเกมรถและแนวคิดก็คือผู้เล่นนั้นเมา ฉันต้องการอินพุตที่ล่าช้าจากเมาส์ซึ่งคุณเลื่อนเมาส์ไปทางด้านข้างเพื่อเลื่อน ฉันจะตั้งค่าการหน่วงเวลาคงที่ระหว่างอินพุตที่ผู้ใช้ให้และจำนวนเทิร์นของรถได้อย่างไร? ตอนนี้ฉันมีสิ่งนี้: h = Mathf.Lerp(h, (((Input.mousePosition.x / Screen.width) * 2) - 1), Time.deltaTime * 2); สิ่งที่เกิดขึ้นคือการเลี้ยวล่าช้า แต่ช้ามากกล่าวอีกนัยหนึ่งถ้าฉันเลื่อนเมาส์เร็วรถจะหมุนช้ามาก แต่ถ้าฉันหมุนตัวคูณเพื่อTime.deltaTimeให้รถหมุนเร็วขึ้น แต่เอฟเฟกต์ล่าช้าจะลดลง . ฉันจะทำสิ่งนี้ได้อีก
11 unity  c#  input  mouse 

2
อินพุตคีย์บอร์ดบัฟเฟอร์แบบพกพาสำหรับ XNA / MonoGame?
เป็นวิธีแก้ปัญหาเบื้องต้นฉันกำลังใช้เฟรมเวิร์ก Nuclexในโครงการเกม C # / XNA สำหรับอินพุตคีย์บอร์ดบัฟเฟอร์ น่าเศร้าที่ nuclex พึ่งพา SlimDX.Directinput.dll ดังนั้นความรู้ของฉันจึงสามารถใช้ได้เฉพาะในระบบปฏิบัติการ Windows เท่านั้น อย่างไรก็ตามฉันใช้MonoGameเพื่อกำหนดเป้าหมายแพลตฟอร์มอื่น ๆ (Linux, OSX และอื่น ๆ ) และดังนั้นฉันจึงกำลังมองหาวิธีการพกพาในการรวมแป้นพิมพ์บัฟเฟอร์ที่ทำให้เกิดข้อผิดพลาดในทุกแพลตฟอร์ม มีผู้ใด?

5
อินพุตแบบซ้อนในระบบที่ขับเคลื่อนโดยเหตุการณ์
ฉันใช้ระบบจัดการการป้อนข้อมูลตามเหตุการณ์กับกิจกรรมและผู้รับมอบสิทธิ์ ตัวอย่าง: InputHander.AddEvent(Keys.LeftArrow, player.MoveLeft); //Very simplified code อย่างไรก็ตามฉันเริ่มสงสัยเกี่ยวกับวิธีจัดการกับอินพุต 'ซ้อน' ยกตัวอย่างเช่นใน Half-Life 2 (หรือเกมใด ๆ ที่มาจริงๆ) Eคุณสามารถเลือกรายการที่มี เมื่อคุณหยิบรายการขึ้นมาคุณจะไม่สามารถยิงได้Left Mouseแต่คุณจะโยนวัตถุแทน Spaceคุณยังสามารถกระโดดด้วย (ฉันกำลังบอกว่าการป้อนข้อมูลแบบซ้อนเป็นที่ที่คุณกดแป้นบางอย่างและการกระทำที่คุณสามารถทำได้เปลี่ยนเมนูไม่ใช่) สามกรณีคือ: ความสามารถในการกระทำเช่นเดียวกับเมื่อก่อน (เช่นการกระโดด) ไม่สามารถทำการกระทำเดียวกัน (เช่นการยิง) การกระทำที่แตกต่างอย่างสิ้นเชิง (เช่นใน NetHack ซึ่งการกดปุ่มเปิดประตูหมายความว่าคุณไม่เคลื่อนไหว แต่เลือกทิศทางเพื่อเปิดประตูเข้า) แนวคิดดั้งเดิมของฉันคือเปลี่ยนเพียงหลังจากได้รับอินพุต: Register input 'A' to function 'Activate Secret Cloak Mode' In 'Secret Cloak Mode' function: Unregister input 'Fire' Unregister input …

1
มีมาตรฐานทองคำสำหรับระบบควบคุมแบบสัมผัสในการเลื่อน shoot-em-ups หรือไม่?
ปัจจุบันมี "มาตรฐาน" สำหรับระบบควบคุมแบบสัมผัสในนักกีฬาบนแพลตฟอร์มเช่น iPhone หรือ Android หรือไม่? ฉันสังเกตเห็นว่าพวกเขาหลายคนเปิดใช้งานการยิงอัตโนมัติโดยค่าเริ่มต้นหรือควบคุมตัวละครผ่านการสัมผัสโดยตรงบนผีสาง แต่ไม่ทราบว่านี่เป็นสิ่งที่เกิดขึ้นเป็นมาตรฐานหรือไม่ ฉันเคยเห็นจอยสติ๊กเสมือนจริงและปุ่มโซลูชัน แต่มันก็ดูไร้ค่า

5
การจัดการคีย์บอร์ดและเมาส์อินพุต (Win API)
มีหลายวิธีในการจับเมาส์หรือแป้นพิมพ์ใน Windows ดังนั้นฉันจึงลองบางอย่าง แต่ทุกคนมีข้อดีและข้อเสีย ฉันอยากถามคุณว่า: วิธีไหนที่ใช้? ฉันได้ลองแล้ว: WM_KEYDOWN / WM_KEYUP - ข้อเสียเปรียบหลักคือฉันไม่สามารถแยกความแตกต่างระหว่างปุ่มซ้ายและมือขวาเช่น ALT, CONTROL หรือ SHIFT GetKeyboardState - วิธีนี้แก้ปัญหาของวิธีแรก แต่มีวิธีใหม่ เมื่อฉันกดปุ่ม Right-ALT ฉันก็จะเห็นว่าปุ่มควบคุมซ้ายไม่ทำงาน ลักษณะการทำงานนี้จะเกิดขึ้นเฉพาะเมื่อใช้รูปแบบแป้นพิมพ์ที่แปลเป็นภาษาท้องถิ่น (เช็ก - CS) WM_INPUT (การป้อนข้อมูลแบบดิบ) - วิธีนี้ยังไม่แยกความแตกต่างของปุ่มซ้ายและมือขวา (ถ้าฉันจำได้) และบางครั้งการเคลื่อนไหวของเมาส์จะสร้างข้อความที่มีค่าเดลต้าเป็นศูนย์ของตำแหน่งเมาส์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.