Witam!
Piszę prostą gierkę Puzzle na komórkę, pod Windowsa Mobile 2003 SE - jako projekt zaliczeniowy, a także dla własnej przyjemności :) Jak na razie szło mi dosyć dobrze, zrobiłem jakieś 80% gry - aż natrafiłem na problem, którego nie potrafię ominąć... mianowicie mam własną funkcję WklejFragment, która służy do wklejania konkretnego obrazka na konkretną pozycję. Funkcja działa - ale jeśli jest wywoływana przez klawisze komórki, to nic się nie dzieje... nie potrafię znaleźć żadnego logicznego wytłumaczenia tego błędu, więc proszę o pomoc :)
Oto funkcja, o której wspominałem:
void WklejFragment(int x, int y, Image Fragmencik)
{
// Funkcja wkleja w podane miejsce obrazek podany w parametrze
x = (x - 1) * 30;
y = (y - 1) * 30;
Bitmap WycietyFragment = new Bitmap(30, 30);
Graphics Grafika = Graphics.FromImage(Plansza.Image);
Grafika.DrawImage(Fragmencik, x, y);
// Grafika.Dispose();
}
Przykładowe zastosowanie (oczywiście FragmentDol jest już wcześniej określony):
private void menuItem9_Click(object sender, EventArgs e)
{
WklejFragment(3, 2, FragmentDol.Image);
}
Powyższy kod zadziała bez problemu... natomiast poniższy - już nie :(
private void OknoGlowne_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyCode == System.Windows.Forms.Keys.F1))
{
// 5
WklejFragment(3, 2, FragmentDol.Image);
}
}
Co jest bardzo dziwne - i kompletnie nielogiczne - obsługa klawiszy raczej działa, bo próbowałem zamiast funkcji WklejFragment wstawić tam prosty test - np. Label1.Text = "Test wciśnięcia klawisza";
i po jego naciśnięciu kod się wykonywał... natomiast jeśli pod jakikolwiek klawisz "podepnę" swoją funkcję, to aplikacja tak jakby ją pomija... paranoja...
Będę wdzięczny za pomoc, w razie potrzeby udzielę bardziej szczegółowych informacji (która mogłaby być potrzebna do rozwiązania tego problemu). Właściwie to mogę udostępnić cały kod gry :)