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

Cocos2d:将屏幕分为两个场景 我设计了一个iPhone应用程序,它需要3个分离的场景,一个在顶部,一个在中间(main),一个在底部,根据用户的动作隐藏和取消隐藏。,iphone,ios,cocos2d-iphone,xcode4.2,Iphone,Ios,Cocos2d Iphone,Xcode4.2,这是一个要求,因为我需要中间(主)场景在滑动手势时改变,而顶部/底部场景保持不变 我该怎么做 附言: 我看了几个问题/解决方案,没有一个给出直接的答案。我只是需要一些真正的帮助,如果可以的话 嗯..我能想到的最简单的方法是在同一屏幕上制作3层..并根据需要定位它们 创建图层很容易 要更改它的大小,只需使用[setContentSize:…],要更改它的位置:。位置=… 以及检测哪一层被触摸: - (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIE

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

我该怎么做

附言:


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

嗯..我能想到的最简单的方法是在同一屏幕上制作3层..并根据需要定位它们

创建图层很容易

要更改它的大小,只需使用
[setContentSize:…]
,要更改它的位置:
。位置=…

以及检测哪一层被触摸:

- (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;
}
-(BOOL)cctouch开始:(UITouch*)触摸事件:(UIEvent*)事件
{
CGPoint location=[self-convertTouchToNodeSpace:touch];
if(CGRectContainsPoint(.boundingBox,位置))
{
CCLog(“接触第一层”);
返回YES;
}
if(CGRectContainsPoint(.boundingBox,位置))
{
CCLog(“第二层”);
返回YES;
}
返回否;
}

另外…对于第三层,只需使用
CCMoveTo
在屏幕上移动该层即可

试试。愿它对你有所帮助

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

你是说层次…不是场景…对吗?如果你指的是场景..请更具体地描述场景的布局..根据我的理解,这个问题不太清楚,层是创建的,但通过在使用场景之前将CCLayer对象添加到CCScene对象中,作为场景实现到应用程序中。基本上,我需要在3个部分的屏幕,允许1被改变而不改变其他2在所有。我想我的问题是如何在cocos2d中做到这一点。谢谢你的评论。是的。但是你可以创建不同大小的层,每个场景超过1层。并按照你想要的顺序排列它们(甚至在屏幕之外)。是的,我知道,但是我可以在场景中切换一层而不影响其他层吗,甚至没有重新加载相同的图层?当然你可以…只需删除图层..并在同一位置添加一个新图层谢谢!我创建了原型应用程序,每个场景具有多个层。但是使用这种方法,我可以在不影响其他两层的情况下更改其中一层吗?非常感谢您的回复(顺便说一句:)