Şimdi Ara

C# Çift tuşla tek komut (örn:W+A) YARDIM

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
792
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bitirme tezi için uzaktan kumandalı araba yapıyorum. Araba giderken sağa sola döndürmek için farklı komut kullanmak gerekiyor. Örnek olarak W ileri, A sol S geri ,D sağa döndürüyor diyelim. Ben W ya basarken Sola dönmesi için A ya bastığımda paralel porta farklı bir kod göndermek gerekiyor.

    Yani kısacası 2 tuşla , yada bir tüşa basarken başka bir tuşa bastığımda bir buttonu aktif etmem gerekiyor diyelim. Bunu nasıl yapabilirim? Yardımlar için şimdiden teşekkürler kodun bir kısmını yolluyorum.

    private void mobilaraba_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.W)
    {
    ileri.BackColor = Color.Red;
    gonder.verigonder(888, 5);
    }

    if (e.KeyCode == Keys.A)
    {
    sol.BackColor = Color.Red;
    gonder.verigonder(888, 1);
    }

    if (e.KeyCode == Keys.S)
    {
    geri.BackColor = Color.Red;
    gonder.verigonder(888, 10);
    }

    if (e.KeyCode == Keys.D)
    {
    sag.BackColor = Color.Red;
    gonder.verigonder(888, 4);
    }

    işte buraya bir if döngüsü daha lazım .

    if (e.KeyCode == Keys.W & e.keykode == A)

    if (e.KeyCode == Keys.W && e.keykode == A)


    if (e.KeyCode == Keys.W)

    ..komut
    if (e.keykode == A)
    ... komut


    Bunları denedim ama işe yaramıyor.







  • c# tan pek anlamam ama şu adreste :
    http://www.eggheadcafe.com/community/aspnet/2/10005403/have-you-set-thiskeyprev.aspx
    tuş kombinasyonları anlatılmış. belki işine yarar.
  • Bunu C# Yerine C ile yapsanız daha iyi ve yüksek sonuç elde edilebilir
  • teşekkür ederim cevaplar için. Sorunu hallettim kodu isteyen arkadaş olursa buraya koyabilirim.
  • bi arkadaş kodu istemiş bende cevabı buraya koyayım dedim.

    bool W, A, S, D;




    private void mobilaraba_KeyDown(object sender, KeyEventArgs e)
    {

    if (e.KeyCode == Keys.Up)
    {
    W = true;
    }

    if (e.KeyCode == Keys.Left)
    {
    A = true;
    }

    if (e.KeyCode == Keys.Down)
    {
    S = true;
    }

    if (e.KeyCode == Keys.Right)
    {
    D = true;
    }

    if (e.KeyCode == Keys.Space)
    {
    button1.BackColor = Color.Red;
    gonder.verigonder(888,9);
    }

    }


    private void mobilaraba_KeyUp(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.Up)
    {
    W = false;
    ileri.BackColor = Color.White;
    gonder.verigonder(888, 0);
    }

    if (e.KeyCode == Keys.Left)
    {
    A = false;
    sol.BackColor = Color.White;
    gonder.verigonder(888, 0);
    }

    if (e.KeyCode == Keys.Down)
    {
    S = false;
    geri.BackColor = Color.White;
    gonder.verigonder(888, 0);
    }

    if (e.KeyCode == Keys.Right)
    {
    D = false;
    sag.BackColor = Color.White;
    gonder.verigonder(888, 0);
    }

    if (e.KeyCode == Keys.Space)
    {
    button1.BackColor = Color.White;
    gonder.verigonder(888, 0);
    }

    if (e.KeyCode == Keys.Escape)
    {
    gonder.verigonder(888, 0);
    Application.Exit();
    }

    if (W || A)
    {
    gonder.verigonder(888, 0);
    }

    if (W || D)
    {
    gonder.verigonder(888, 0);
    }

    if (S || A)
    {
    gonder.verigonder(888, 0);
    }

    if (S || D)
    {
    gonder.verigonder(888, 0);
    }



    }

    private void mobilaraba_Load(object sender, EventArgs e)
    {
    gonder.verigonder(888, 0);
    }

    private void mobilaraba_Closed(object sender, EventArgs e)
    {
    gonder.verigonder(888, 0);
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
    if (W)
    {
    ileri.BackColor = Color.Red;
    gonder.verigonder(888, 5);
    }

    if (A)
    {
    sol.BackColor = Color.Red;
    gonder.verigonder(888, 4);
    }

    if (S)
    {
    geri.BackColor = Color.Red;
    gonder.verigonder(888, 10);
    }

    if (D)
    {
    sag.BackColor = Color.Red;
    gonder.verigonder(888, 1);
    }


    if (W && A)
    {
    gonder.verigonder(888, 21);
    }

    if (W && D)
    {
    gonder.verigonder(888, 37);
    }

    if (S && A)
    {
    gonder.verigonder(888, 26);
    }

    if (S && D)
    {
    gonder.verigonder(888, 42);
    }
    }

    }




  • bizim arabayla ilgili kodlar anlamadığınız bi yer olursa yardımcı olmaya çalışırım:).
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.