Cocos2d ile karo tabanlı 2d RPG yapıyorum. Haritalarım için CCTMXTileMaps kullanıyorum. Oyuncum ekran üzerinde ortalanır ve harita etrafında hareket eder (oyuncu haritanın kenarına doğru yürürken, merkezden uzaklaşıp gerçekte hareket etmeleri dışında). Bu sistem büyük haritalarda iyi çalışır. Ancak küçük haritalarda, harita ekranın sağ üst köşesine sabitlenir. Mekaniği hala çalışırken, bu küçük haritaların otomatik olarak ortalanmasını sağlamak güzel olurdu.Küçük bir CCTMXTileMap'i cocos2d'de nasıl merkezleyebilirim?
Ekran boyutlarının ortalanmasından daha küçük olan haritaları nasıl yapabilirim? Haritanın "kırmızı kutuda" ortalanmasını istiyorum.
Yani teoride nasıl yapılacağını anladım, ama ben:
DÜZENLEME (. Kırmızı kutu o kodda aslında orada değil, gösterim amaçlı sadece burada) koordinat sistemini anlamada sorun yaşıyorum. Haritayı ortalamak için aşağıdaki kodu kullanıyorum ama beklendiği gibi davranmıyor. Harita ekrandan çıkıyor.
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;
}
Burada yanlış yapıyorum?
"bir şeyi kırmak" tanımlamak, ister istemez çöküyor veya davranmıyor mu? –
@FraserGraham Düzenlendi. Çalışıyor, ama istediğim gibi davranmıyor. – Moshe