DelphiX - przesunięcie obrazka postaci

0

Witam
Walcze z dosc starym juz DelphiX i potrzebuje pomocy bo nie moge sobie poradzic z takim problemem:

Tworze postac:

Gracz.Image := postacie.Items[2];
Gracz.X := 250;
Gracz.Y := 250;

Problem w tym, ze postac rysowana powinna byc w kwadracie o współrzędnych 250x250 (jeden kwadrat ma wymiar 50x50). I wszystko jest ok tylko ze postac ma wymiar szerokosc: 50 i wysokosc: 80 a rysowana jest od lewego gornego rogu wskazanego kwadratu.

Opisowo mowiac nogi postaci wystaja w dol kwadratu zamiast zaczynac sie na nim a glowa powinna wystawac.

Moze ktos mi pomoc i powiedziec jak zrobic takie przesuniecie samego obrazka postaci o 50 w gore tak zeby jego wspolrzedne sie nie zmienily?

pozdrawiam!

dodanie znacznika <code class="delphi"> - @furious programming

1

Jeżeli dobrze zrozumiałem, to musisz wykonać proste obliczenia - do współrzędnej Y musisz dodać wysokość pojedynczej kafelki i od tego odjąć wysokość postaci, czyli:

Gracz.Y := 250 { sztywna współrzędna } + 50 { wysokość kafelki } - Gracz.Height { wysokość gracza };

Ten Gracz.Height to mój wymysł, bo nie wiem jak u Ciebie można pobrać wysokość gracza; Dzięki temu, jeżeli gracz ma wysokość 80px i chcesz go postawić na kafelce o współrzędnych lewego górnego rogu 250,250, to po obliczeniach:

Gracz.Y := 250 + 50 - 80;  //220 

Współrzędna Y będzie wynosić 220, czyli głowa postaci będzie wystawać o 30px ponad górę kafelki, a nogi będą wyrównane do jej dołu; A jeśli nie chcesz zmieniać właściwości Gracz.Y, bo ma tam być 250, to w procedurze rysującej wykonuj te obliczenia, czyli w metodzie malującej obrazek postaci; Pobierz współrzędne i oblicz górny offset.

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