2010-03-20 14 views
14

C# için küçük bir C++ konsol oyununu taşıyorum ve tuş basımlarının konsola yazdırılmasını durduramıyor gibi görünüyor..NET'te tuşa basılan tuş basmayı nasıl bastırırım?

Key = Console.ReadKey(); 
:

bool Game::getInput(char *c) 
{ 
    if (_kbhit()) 
    { 
     *c = _getch(); 
     return true; 
    } 
    return false; 
} 

Ben yaparak C# eşdeğer yapmaya çalıştım:

C++ ben de konsola basılmış olmaktan tuş vuruşlarını bastırmak Bu yöntemle, ile tuş olsun

Ancak bu, karakterin konsola yazdırılmasını engeller ve bariz sorunlara neden olur. Bunun nasıl düzeltileceği hakkında bir fikrin var mı?

cevap

28

Sen Console.ReadKey(true)

kullanıcı tarafından basıldığında sonraki karakter veya işlev tuşuna edinir istiyorum. Basılı tuş isteğe bağlı olarak konsol penceresinde görüntülenir.

argüman - Intercept denir:

konsol penceresinde basılan tuşu görüntülemek için belirler. true basılı tuşuna basmamak için; aksi halde yanlış.

+0

Bu güzel, teşekkürler – RollRoll

İlgili konular