Tworzę opartą na kaflach 2d grę RPG z cocos2d. Używam CCTMXTileMaps dla moich map. Mój gracz jest wyśrodkowany na ekranie, a mapa porusza się wokół niego (z wyjątkiem sytuacji, gdy gracz podchodzi do krawędzi mapy, gdzie odchodzi od centrum i faktycznie się porusza). Ten system działa dobrze na dużych mapach. Jednak na małych mapach mapa jest zakotwiczona w prawym górnym rogu ekranu. Podczas gdy mechanika nadal działa, dobrze byłoby, gdyby te małe mapy automatycznie były wycentrowane.Jak mogę wyśrodkować małą CCTMXTileMap w cocos2d?
Jak wyśrodkować mapy mniejsze od wymiarów ekranu? Chcę, aby mapa była wyśrodkowana w "czerwonym polu". (Czerwona skrzynka jest tu tylko dla celów poglądowych, nie jest to faktycznie istnieje w kodzie.)
EDIT:
więc zorientowali się, jak to zrobić w teorii, ale I” m nie rozumiem układu współrzędnych. Używam następującego kodu, aby wyśrodkować mapę, ale nie zachowuje się ona zgodnie z oczekiwaniami. Mapa ładuje się z ekranu.
if ((self.tileMap.contentSize.height < screenSize.height) && (self.tileMap.contentSize.width < screenSize.width)) {
CGSize winSize = [[CCDirector sharedDirector] winSize];
CGPoint centerOfView = ccp(winSize.width/2, winSize.height/2);
CGPoint centerOfMap = CGPointMake((self.tileMap.mapSize.width*self.tileMap.tileSize.width)/2, (self.tileMap.mapSize.height*self.tileMap.tileSize.height)/2);
self.tileMap.anchorPoint = centerOfMap;
self.tileMap.position = centerOfView;
}
Co ja tu robię źle?
zdefiniować "łamanie czegoś", czy to się zawiesza lub nie działa tak, jak chcesz? –
@FraserGraham Edytowane. Działa, ale nie zachowuje się tak, jak bym chciał. – Moshe