/ / Cocos2D-X: zmiana rozmiaru obrazu, a następnie wycięcie części do CCSprite - Android, iOS, Xcode, zmiana rozmiaru obrazu, cocos2d-x

Cocos2D-X: zmiana rozmiaru obrazu, a następnie wycięcie części do CCSprite - Android, ios, xcode, zmiana rozmiaru obrazu, cocos2d-x

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 № 1

Czy 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ść));