Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ Builder - Półprzeźroczysty obrazek w minigrze.

Adam Ś. 12 Cze 2012 16:46 1151 2
  • #1 12 Cze 2012 16:46
    Adam Ś.
    Poziom 12  

    Witam.

    Na zaliczenie z programowania C++ (programowanie obiektowe) musimy wykonać minigrę. No i mam oczywiście problem. Chodzi o to że mam okno FormMain w którym umieszczony jest TImage robiący za tło. I mam obiekt UCar.cpp chodzi tu o obiekt typu Car czyli samochód, któy odwołuje się z kolei do obiektu UGraphObiect gdzie jest metoda Paint() odpowiedzialna za odświeżanie obrazka który wczytywany jest z pliku Car.png

    I chodzi o to że gdy obrazek ten jest półprzeźroczysty to w rzeczywistości posiada on białe tło :/ I zamiast takiego półprzeźroczystego samochodziku mam samochodzik z biały tłem. To białe tło występuje tylko tam gdzie obrazek jest półprzeźroczysty tzn. tam gdzie przeźroczystość wynosi 100% to tam jest przeźroczyste. Białę tło pojawia się tam gdzie przeźroczystość jest mniejsza od 100%. Nie wiem dlaczego tak się dzieje bo jeżeli umieszczę kontrolkę TImage na tle i wczytam do niej ten obrazek Car.png to wtedy wszystko jest ok, czyli samochodzik jest półprzeźroczysty.

    Ktoś wie czy da się to jakoś naprawić??

    0 2
  • #2 13 Cze 2012 12:47
    ^Rachel
    Poziom 21  

    Nie wiem , czy Cię dobrze zrozumiałem , ale może musisz zaznaczyć opcję transparent ?

    Zrób SS jak to wygląda.

    0
  • #3 13 Cze 2012 17:32
    Adam Ś.
    Poziom 12  

    Chodzi o coś takiego

    C++ Builder - Półprzeźroczysty obrazek w minigrze.

    jest to aplikacja zrobiona na szybko specjalnie po to aby pokazać o co mi chodzi. Z lewej strony są dwa obrazki (kwiatek, laser) dodane za pomocą TImage. Z lewej są to obrazki wyświetlane za pomocą "silnika" gry. Obrazki zarówno z lewej jak i z prawej są identyczne tzn lewy kwiatek jest taki sam jak prawy pod względem graficznym (to nie są 2 różne obrazki z kwiatkiem) i to samo tyczy się lasera.

    I najlepiej widać to na tym laserze. Lewy laser wyświetlany za pomocą TImage ma takie półprzeźroczyste obrzeża a ten z prawej tm gdzie jest to półprzeźroczyste) to widać białe tło tego obrazka. W przypadku kwiatka widać białą obwódkę :/

    Ktoś potrafi mi powiedzieć dlaczego tak się dzieje i czy da się jakoś tego problemu pozbyć??

    Poniżej zamieszczam jeszcze ten projekt, jest tam kod źródłowy itp. Można sobie przeglądnąć ten projekt, tylko trzeba mieć embarcadero :P

    Tworząc ten projekt wzorowałem się na projekcie otrzymanym od nauczyciela. Niestety nie mam teraz jak się poradzić nauczyciela więc pytam na tym forum.

    0