1

谁能提供一些关于在屏幕上放置 CCSprites 的基本指示?

例子:

CCSize s = CCDirector::sharedDirector()->getWinSize();

假设我想从s0 开始在屏幕的最底部放置一个精灵,想想像草这样的东西。

如果我以 1024 x 768 运行,中间是:

setPosition( ccp(s.width/2, s.height/2) );

所以从左边和中间开始将是:

setPosition( ccp(0, s.height/2) );

那么如何才能走得更远呢?

setPosition( 0, s.height) );

这使我从左上角开始并停留在屏幕顶部。

任何帮助,将不胜感激。

4

2 回答 2

4

位置相对于精灵的parent,以及它的anchorPoint

anchorPoint每个坐标的取值范围一般为 0 到 1,默认为 0.5。我说“一般”是因为它实际上可以是任何值,但是 0-1 之外的范围会使您超出精灵的范围。

例如,anchorPointof(0,0)使位置相对于左下角。(1,0)是右下角,(0,1)是左上角,(1,1)是右上角。(0.5,0.5)是精灵的中心,这是默认设置。

基本上,您只需将值乘以宽度即可获得相对位置。

如果您想将精灵放置在屏幕的最底部(左下角与屏幕的左下角对齐),您可以通过多种方式进行操作,基于anchorPoint单独的。

默认anchorPoint值为(0.5,0.5),位置为(sprite.contentSize.width/2, sprite.contentSize.height/2)

如果设置anchorPoint(0,0),则简单地获得相同的位置(0,0)

如果您想将该精灵移动到屏幕的最中心(精灵的中心在中间),使用anchorpointof (0.5, 0.5),位置将是(s.width/2, s.height/2)

这一切都假设您正在向屏幕大小的父级添加一个精灵,这是定位的第二部分。

位置也相对于精灵的父级 - 可以是任何其他CCNodeCCLayer,另一个CCSprite等)。

考虑这一点的方式与添加全屏节点没有太大区别——除了考虑父节点的大小和位置,而不是屏幕。

于 2013-05-24T02:14:40.323 回答
0

另外只是为了添加一些东西,所有按钮都从屏幕中间开始,然后您可以从那里移动它们。如果您想在 (0,0) 处按下按钮:

CCLabelTTF *label1 = [CCLabelTTF labelWithString:@"Press Me!" fontName:@"Marker Felt" fontSize:20];
CCMenuItemLabel *button1 = [CCMenuItemLabel itemWithLabel:label1 block:^(id sender) {    NSLog(@"button1 pressed"); }];

button1.position = ccp(-(s.width/2) , -(s.height/2)); // <---
于 2013-05-25T17:41:43.703 回答