Tworzę projekt Cocos2D-X w XCode na iOS. Następnie planuję przenieść ostateczny kod na Androida.
Chciałbym zrobić funkcję do załadowaniaobrazy i dowolnie zmieniaj ich rozmiar w pamięci. Następnie z obrazu o zmienionym rozmiarze wytnę z niego części i utworzę obiekty CCSprite ... Naprawdę mam problem z uzyskaniem obrazu o zmienionym rozmiarze przed wycięciem części.
Wiem, że Cocoa / UIImage może to osiągnąć, ale nie chcę używać kodu Objective-c, aby port Android był łatwiejszy. Chcę zrobić wszystko w C ++ / Cocos2D-X, jeśli to możliwe.
Próbowałem użyć kodu źródłowego ImageMagick Magick ++ w moim projekcie XCode, ale bez powodzenia, ponieważ nie mogę go skompilować. Próbowałem użyć CCImage, ale nie ma w nim funkcji zmiany rozmiaru.
Moje pytanie brzmi: czy istnieje sposób zmiany rozmiaru plików obrazów w Cocos2DX? Czy istnieje alternatywny sposób na osiągnięcie mojego celu?
Dzięki, Jean
Odpowiedzi:
0 dla odpowiedzi № 1Czy ten proces przeskalowywania / cięcia jest częścią Twojej aplikacji, czy też jest to próba dopasowania grafiki aplikacji do szeregu rozdzielczości ekranu Androida? W takim przypadku nie poleciłbym tego.
Musisz zrozumieć, że zmiana rozmiaru i cięciamożna to zrobić w dowolnej kolejności. Więc naprawdę nie musisz najpierw zmieniać rozmiaru obrazu, możesz go najpierw wyciąć, a później zmienić rozmiar. Aby zmienić rozmiar, po prostu użyj właściwości skalowania ikonki, aby przeskalować go w górę lub w dół.
Jeśli chodzi o wycinanie obrazu, tak naprawdę zależy to od tego, jak chcesz go wyciąć. Istnieje wiele sposobów wycinania części obrazu (wycinanie wzdłuż krawędzi, wycinanie dowolnego kształtu, wycinanie przezroczystości itp.).
0 dla odpowiedzi nr 2
Aby utworzyć duszek, który jest wyciągiem z mapy bitowej, możesz to zrobić w ten sposób i unikać tworzenia nowych map bitowych (nie jestem pewien, czy tego właśnie szukasz):
CCSprite * cutSprite = CCSprite :: spriteWithTexture (tekstura, CCRectMake (originX, originY, szerokość, wysokość));