82788 1







Strona: [  >  ]  z  1     









Autor
Temat: Problem z obrazkami i przezroczystością











Viper87


Typ:
neutral
Postów: 490
Zarejestrowany: Oct 2002




Problem z obrazkami i przezroczystością
Witam!Od razu zaznaczam, że nie biorę udziału w konkursie .Chciałem zrobić grę w której potrzebuję kulek. Ma to być graficznie coś podobnego do http://www.marbit.com.pl/kulki.htm . Reguły jednak będą zupełnie inne. Mój kłopot polega na tym, że chciałbym, aby użytkownik miał możliwość zmiany tła. Jednak na tym tle będą wyświetlać się owe kulki z określonym tłem. Moje pytanie brzmi: co mam zrobić, żeby tego tła nie było widać? (było przezroczyste). Podpatrzyłem budowę gry Marbitu (adres powyżej) i zauważyłem w katalogu programu plik *.bmp z kulkami - to właśnie bezpośrednio z niego gra pobiera wygląd kulek. Drugie pytanie brzmi na czym to polega i jak zrobić takie coś w VB!?Z góry dziękuję za pomoc.
_____________________________________________Viper "Savoir c`est prevoir, prevoir c`est prevenir".  (Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 




28-08-2004 15:10



 
    













kicaj


Typ:
neutral
Postów: 271
Zarejestrowany: Aug 2003





Sa cztery mozliwosci robienia przezroczystych obrazkow:1. Uzycie Image i przezroczystych gifow2. kolorwanie pixeli o danym kolorze na kolor tla ( [url=http://vb4all.canpol.pl/workshop/trans.zip]http://vb4all.canpol.pl/workshop/trans.zip Mozna ulepszyc te funkcje o API3. Uzycie BitBlt i masek, bardzo fajne i szybkie4. Uzycie TransparentBlt (jakos tak sie nazywalo) wkleja Ci obraze baz koloru podanego w parametrzemasz tu jej deklaracje:Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Booleanuzywa sie jej tak samo jak BitBlt ostatni parametr to kolor maski





28-08-2004 16:13



 
      

3914568













marcin_an
Forumowicz

Typ:
neutral
Postów: 1265
Zarejestrowany: Mar 2004





5. Użycie ImageList. Jako .MaskColor Podajesz kolor, który ma byc przezroczysty. Następnie pobierasz z ImageList obrazki (tak jak normalnie), tyle, że metodą .ExtractIcon. To zwraca obraz z efektem przezroczystości, który potem można użyć np. do PaintPicture.Sposobu (2) nie polecam pod VB... niestety, jest zbyt powolny
[Post edytowany dnia 28-08-2004 17:43 przez marcin_an]_____________________________________________Popieram losmaca: 1) Ludzie, dbajcie o polszczyznę!!!  2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!! ___ NOWE FORUM http://forum.jelcyn.webd.pl/




28-08-2004 17:40



 
    













Viper87


Typ:
neutral
Postów: 490
Zarejestrowany: Oct 2002





Dziękuję Wam bardzo. Ponieważ moje obrazki są statyczne wykorzystałem sposób nr 1 . Pozdrawiam.
_____________________________________________Viper "Savoir c`est prevoir, prevoir c`est prevenir".  (Wiedzieć to przewidzieć, przewidzieć to zapobiegać) 




30-08-2004 17:05



 
    













kicaj


Typ:
neutral
Postów: 271
Zarejestrowany: Aug 2003





Osobiscie proponowal bym Ci uzycie sposobu numer 4, poniewaz:1) przyspieszasz dzialanie programu bo nie ladujesz kontrolek image , jedynie to conajwyzej dwa PictureBoxy2) jak bedziesz chcial sie kiedys przerzycic na DirectX bedzie latwiej3) a trzecie primo... to nie wiem co napisac





30-08-2004 23:25



 
      

3914568













bisiek


Typ:
neutral
Postów: 487
Zarejestrowany: Jul 2003





Raczej użyj sposobu 3, a nie 4, bo TransparentBlt zżera pamięć, a BitBlt nie.
_____________________________________________www.mob.abc.pl - moja strona o VB




30-08-2004 23:27



 
        

3380672













kicaj


Typ:
neutral
Postów: 271
Zarejestrowany: Aug 2003





Ale jesli chlopak nie bawil sie nigdy z maskami to ma problem, a pozatym do zrobienia przezroczystosci za uzyciem BitBlt trzeba wywolac ja dwa razy, i miec gotowa maske :-)





30-08-2004 23:32



 
      

3914568













bisiek


Typ:
neutral
Postów: 487
Zarejestrowany: Jul 2003





Maskę dla klulki nie jest trudno zrobić, a przykłady z użyciem BitBlt są np. na vbtools. Zresztą - po to jest forum, żeby pytać
_____________________________________________www.mob.abc.pl - moja strona o VB




31-08-2004 10:24



 
        

3380672












Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     









Wyszukiwarka