Delphi - pomoc z obrazami

0

Witam! mam ogromną prośbę do osób, które potrafią mi pomóc.

Tematem mojego zadanie jest napisanie w Delphi grę. Nie ma ona należeć do wielce skomplikowanej. Ale wytłumaczę o co mi konkretnie chodzi.

Po wstawieniu rysunku do programu, pisze polecenie aby obiekt się poruszał za pomocą klawiszy. Mianowicie :
If Key = 'a' then image1.Left:=image1.Left-10;
If Key = 'd' then image1.Left:=image1.Left+10

oraz

If Key = 'w' then image1.Top:=image1.Top-10
If Key = 's' then image1.Top:=image1.Top+10

Mam utworzone dwa obrazki :

  1. Obrazek imituje poruszanie się w lewo,
  2. Obrazek imituje poruszanie się w prawo.

I teraz moje pytanie:
Chce otrzymać taki efekt ze jak będę chciał się poruszyć w lewo to będzie widoczny obrazek pierwszy a jak w prawo to obrazek drugi.

Z góry dziękuje za pomoc.

0

tak naj naj najprościej to wstaw w sumie 4 TImage:
1 bedzie sie poruszal, a w 3 kolejnych beda siedzialy grafiki: przy poruszaniu w lewo, w prawo i przy nieporuszaniu sie.
ukryj te 3 TImage
i potem:

If Key = 'a' then
     begin
       image1.Left:=image1.Left-10;
       image1.picture:=image2.picture;
     end;

mozesz tez zostac przy tylko jednym image i ladowac grafike bezposrednio z pliku:

If Key = 'a' then
     begin
       image1.Left:=image1.Left-10;
       image1.picture.loadFromFile('lewo.jpg');
     end;

pozostaje jeszcze problem przy braku ruchu, zeby sie ustawial odpowiedni obrazek...:
powinno zadzialac jak dasz w onKeyUp

image1.picture:=image3.picture;
lub
image1.picture.loadFromFile('lewo.jpg');

zaleznie od sposobu ktory wczesniej wybrales.

dodatkowo proponuje sie zabezpieczyc przed wlaczonym capslockiem:

if lowercase(key)='a' then... //lowercase() zamienia wszystkie znaki na male

i pozmieniac nazwy wszystkich komponentow, bo jak costawisz image1, image2, image3,... image309834 to Ci obniza ocena. przynajmniej ja bym tak zrobil.

a na przyszlosc: tak proste pytania zadaje sie w dziale newbie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1