Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
857
Tıklama
0
Öne Çıkarma
C# Çift tuşla tek komut (örn:W+A) YARDIM
B
18 yıl
Çavuş
Konu Sahibi

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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



N
18 yıl
Teğmen

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.


Bu mesaja 1 cevap geldi.
D
18 yıl
Binbaşı

Bunu C# Yerine C ile yapsanız daha iyi ve yüksek sonuç elde edilebilir


Bu mesaja 1 cevap geldi.
B
18 yıl
Çavuş
Konu Sahibi

teşekkür ederim cevaplar için. Sorunu hallettim kodu isteyen arkadaş olursa buraya koyabilirim.


Bu mesaja 1 cevap geldi.
B
18 yıl
Çavuş
Konu Sahibi

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);
}
}

}


Bu mesaja 1 cevap geldi.
B
18 yıl
Çavuş
Konu Sahibi

bizim arabayla ilgili kodlar anlamadığınız bi yer olursa yardımcı olmaya çalışırım:).



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.