Cocos2d:将屏幕分为2个场景
问题描述:
嗨,我设计了一个iPhone应用程序,需要3个独立的场景,一个在顶部,一个在中间(主),一个在底部,根据用户隐藏和取消隐藏动作。Cocos2d:将屏幕分为2个场景
这是一个要求,因为我需要中间(主)场景在滑动手势和顶部/底部场景之间保持不变。
我该怎么做?
PS:
我看过的几个问题/解决方案,并没有给出直接的答案。我只需要一些真正的帮助,如果没问题的话!
答
我能想到的
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
答
试试吧。可能它会对你有所帮助。
-(void) registerWithTouchDispatcher
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
你的意思是layers..not场景......对吗?如果你的意思是scene..be更具体的关于你的场景的布局..问题不明确 – skytz 2012-04-04 22:04:56
据我所知,层被创建,但通过CCLayer对象添加到CCScene对象之前作为场景与那个场景。基本上我需要3个部分的屏幕,允许1改变而不改变其他2。我怎么能做到这一点在cocos2d是我的问题,我想。感谢您的评论。 – steve 2012-04-04 22:14:55
是的..但你可以创建不同大小的图层和超过1个场景..并按照你想要的任何顺序排列它们(甚至在屏幕之外) – skytz 2012-04-04 22:16:52