2017-09-29 86 views
9

Buduję małą aplikację użytkową dla systemu MacOS, która łączy SpriteKit z AppKit. W szczególności używam SKView jako "tła" okna aplikacji (głównie dla określonych typów animacji, które są łatwiejsze w SpriteKit). Zmieniam również kolory właściwości tła w oknie, aby dostosować kolor paska tytułu. Przełączanie między zielonym i czerwonym.Dopasowywanie kolorów AppKit i SpriteKit

Problem, który napotykam, to dopasowanie kolorów między AppKit i SpriteKit. Krótko mówiąc, nie pasują. Jak widać na obrazku pasek tytułu jest nieco inny niż SKView.

enter image description here

Po chwili grania, okazało się, że kolor tła w SKView jest w „Device Przestrzeń kolorów RGB” i kolory okna są w „sRGB IEC61966-2.1 COLORSPACE.” Zmieniłem kolory AppKit na urządzenie RGB, a kolory nadal nie pasują.

Tworzę kolory za pomocą zwykłego starego inicjalizatora NSColor.

Nie jestem pewien, czy możesz zmienić przestrzeń kolorów w kolorze. Właściwość backgroundColor w oknie i SKView jest tylko do odczytu.

Wszelkie pomysły?

+0

dźwięki denerwujące !! Wiem, że SKColor dla osX to NSColor, a SKColor dla iOS to UIColor ... zainteresowani, aby dowiedzieć się więcej o tym również! – Fluidity

+0

Przede wszystkim użyj sceny SpriteKit w UIView Rozłóż wszystkie same wartości R, G, B, A i wylicz matematykę R z R i tak dalej. –

Odpowiedz

1

jeśli im czytanie tego prawa, co się chce zrobić to kolory mecz nie mógł po prostu zrobić coś takiego yourAppKit.backgroundColor = yourSKView.backgroundColor że należy ustawić je na równe

i moje drugie pytanie jest czy trzeba je dopasować? większość czasu ludzie arent zamiar wypowiedzenia, a jeśli robią zauważyć przyzwyczajenie troszczą

również tutaj jest pewne dane na temat konwersji RGB to sRGB

+0

Tak, muszą pasować. Sądzę, że mógłbym celowo odsuwać je od siebie i robić to celowo, po prostu nie jest to, co chciałbym. – Hartix

+0

Czy mógłbyś edytować swojego anwsera z kilkoma zrzutami ekranu, dzięki czemu mogę dokładnie zobaczyć co masz na myśli (przesunięcie + cmd + 4, aby zrobić zrzut ekranu z wybranego obszaru) –