任何人都可以提供一些关于在屏幕上放置CCSprites的基本指示吗?
示例:
CCSize s = CCDirector::sharedDirector()->getWinSize();
使用s
,说我想从0开始在屏幕的最底部放置一个精灵,想想像草一样的东西。
如果我的运行速度为1024 x 768,则中间为:
setPosition( ccp(s.width/2, s.height/2) );
所以从左边和中间开始一直是:
setPosition( ccp(0, s.height/2) );
那我怎么走得更远呢?
setPosition( 0, s.height) );
这让我从左上方开始并沿着屏幕顶部停留。
任何帮助都将不胜感激。
答案 0 :(得分:4)
位置相对于精灵的parent
及其anchorPoint
。
anchorPoint
的范围通常为0到1,默认值为0.5。我说“一般”因为它可以是任何值,但是0-1之外的范围会使你超出精灵的范围。
例如,anchorPoint
的{{1}}位置相对于左下角。 (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)
为anchorpoint
,则位置为{{1 }}
这是假设您要向父级添加一个精灵,它是屏幕的大小,这是定位的第二部分所在的位置。
位置也与精灵的父级相关 - 可以是任何其他(0.5, 0.5)
((s.width/2, s.height/2)
,另一个CCNode
等。
想到这一点的方式与添加全屏节点没什么不同 - 除了考虑父母的大小和位置,而不是屏幕。
答案 1 :(得分: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)); // <---