Hogy oldanátok meg ezt a problémát? (C#)
Egy formon leraktam, egy pictureboxot, ami a nyilak lenyomására mozog. De én azt szeretném, hogy a nyíl megnyomásával folyamatosan menjen arra az irányba míg másik irányt nem adok neki a nyilakkal. A kód ez lenne:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up)
{
if (pont.Y == 0)
{
pont.Y = 330;
}
pont.Y = pont.Y - 1;
pictureBox1.Location = pont;
}
if (e.KeyCode == Keys.Down)
{
if (pont.Y == 330)
{
pont.Y = 0;
}
pont.Y = pont.Y + 1;
pictureBox1.Location = pont;
}
if (e.KeyCode == Keys.Left)
{
if (pont.X == 0)
{
pont.X = 330;
}
pont.X = pont.X - 1;
pictureBox1.Location = pont;
}
if (e.KeyCode == Keys.Right)
{
if (pont.X == 330)
{
pont.X = 0;
}
pont.X = pont.X + 1;
pictureBox1.Location = pont;
}
}
Én egy while-ra gondoltam, hogy azzal lehetne megoldani a "fél" automata mozgást. Ilyen feltételre gondoltam:
if (e.KeyCode == Keys.Up)
{
while(e.KeyCode!=Keys.Down||e.KeyCode!=Keys.Left||e.KeyCode!=Keys.Right||)
{
if (pont.Y == 0)
{
pont.Y = 330;
}
pont.Y = pont.Y - 1;
pictureBox1.Location = pont;
}
}
De amint ezt berakom valamelyik iránygomb kódrészéhez, abba az irányba nem mozdul.(ha mindhez berakom akkor sehova nem mozog) Most csinálok először ilyen irányítást, nem tudom mennyire felel meg ez a kód. De amíg folyamatosan nyomva tartjuk a nyilakat úgy rendesen mozog. Szóval már csak ezt a "fél" automata mozgást kéne megoldani, hogy amelyik irányba megnyomtuk a gombot arra menjen anélkül, hogy nyomva tartanánk. Köszönöm előre a segítséget.
A példaprogram az alábbi helyről tölthető le: *****
Én ugyan egy kicsit egyszerűsítettem, két gomb, egy balra egy jobbra de a lényeg átjön szerintem. A kulcs hogy egy timer-ből kell bizonyos időközönként ellenőrizni, a 'while' itt szükségtelen. (forras.txt elolvasandó ha nincs Delphi telepítve!)
* Automatikusan eltávolított tartalom.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!