2012-04-04 65 views
0

嗨,我设计了一个iPhone应用程序,需要3个独立的场景,一个在顶部,一个在中间(主),一个在底部,根据用户隐藏和取消隐藏动作。Cocos2d:将屏幕分为2个场景

这是一个要求,因为我需要中间(主)场景在滑动手势和顶部/底部场景之间保持不变。

我该怎么做?

PS:

我看过的几个问题/解决方案,并没有给出直接的答案。我只需要一些真正的帮助,如果没问题的话!

+0

你的意思是layers..not场景......对吗?如果你的意思是scene..be更具体的关于你的场景的布局..问题不明确 – skytz 2012-04-04 22:04:56

+0

据我所知,层被创建,但通过CCLayer对象添加到CCScene对象之前作为场景与那个场景。基本上我需要3个部分的屏幕,允许1改变而不改变其他2。我怎么能做到这一点在cocos2d是我的问题,我想。感谢您的评论。 – steve 2012-04-04 22:14:55

+0

是的..但你可以创建不同大小的图层和超过1个场景..并按照你想要的任何顺序排列它们(甚至在屏幕之外) – skytz 2012-04-04 22:16:52

回答

1
我能想到的

well..easiest方法是使3层在同一screen..and,只要你想

它很容易创建图层,

改变它的大小进行摆放只需使用[ <layer> setContentSize:...],改变它的立场:<layer>.position=....

,并检测该层被触摸:

- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
    CGPoint location = [self convertTouchToNodeSpace: touch]; 
if (CGRectContainsPoint(<layer1>.boundingBox, location)) 
{ 
    CCLog(@"touched 1st layer"); 
    return YES; 
} 
if (CGRectContainsPoint(<layer2>.boundingBox, location)) 
{ 
    CCLog(@"touched 2nd layer"); 
    return YES; 
} 
return NO; 
} 

也......为3 rd图层只需使用CCMoveTo即可将图层移入和移出屏幕

+0

谢谢!我创建了每个场景具有多个图层的原型应用程序。但是采用这种方法,我可以更改其中一层而不会影响其他2层吗?非常感谢您的回复btw。 :) – steve 2012-04-04 22:32:00

0

试试吧。可能它会对你有所帮助。

-(void) registerWithTouchDispatcher 
{ 
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; 
    }