2012-04-16 23 views

Trả lời

9

đơn giản, chỉ cần mang chiều cao và chiều rộng và chia nó cho 2

CGSize winSize = [[CCDirector sharedDirector] winSize]; 
CGPoint point = ccp(winSize.width/2, winSize.height/2); 

Dưới đây là một cách hơi tiên tiến hơn để làm điều đó. này cũng sẽ có tác dụng nếu bạn đã gọi setPosition về cha mẹ của sprite (= tự trong ví dụ này)

CGSize winSize = [[CCDirector sharedDirector] winSize]; 
CCSprite* centerSprite = [CCSprite spriteWithFile:@"sprite"]; 
CGPoint centerPoint = ccpSub(ccp(winSize.width/2, winSize.height/2), [self position]); 
[centerSprite setPosition:centerPoint]; 
[self addChild: centerSprite]; 
+0

Điều đó không cung cấp cho trung tâm của màn hình. Điều đó cho một nửa kích thước màn hình. – Jay

+7

Và một nửa kích thước màn hình là trung tâm của màn hình. – s1m0n

+0

(0, 0) liên quan đến cha mẹ của nó, không phải ở góc dưới bên trái của màn hình. Nó sẽ không hoạt động nếu cha mẹ di chuyển. – Jay

0

Bạn có thể lấy trung tâm chính xác của màn hình không có vấn đề gì khuôn khổ bạn đang sử dụng, Quần đảo Cocos hay không , và cũng có thể ngay cả khi Cocos không được thiết lập để sử dụng toàn bộ màn hình (ví dụ là trường hợp đôi khi nếu bạn cắt Quần đảo Cocos để nhường chỗ cho quảng cáo) bằng cách làm một cái gì đó như thế này:

int width=[[UIScreen mainScreen] bounds].size.width 
int height=[[UIScreen mainScreen] bounds].size.height 
CGPoint center=ccp(width/2,height/2); 

Lưu ý ccp công trình vĩ mô trong Quần đảo Cocos chỉ có; nếu không, hãy sử dụng CGPointMake

Các vấn đề liên quan