我有一个CCLayer
,应该从上到下“不掩饰”。
我实施GLScissor
了访问前和访问后以减少超出层范围的内容:
#pragma mark Clipping
-(void)visit {
[self preVisit];
[super visit];
[self postVisit];
}
-(void)preVisit {
if (!self.visible)
return;
glEnable(GL_SCISSOR_TEST);
CGRect clipRect = [self boundingBox];
CGPoint origin = [self convertToWorldSpaceAR:clipRect.origin];
CGRect scissorRect = CGRectMake(origin.x - self.anchorPoint.x * clipRect.size.width, 768 - origin.y - self.anchorPoint.y * clipRect.size.height, clipRect.size.width, clipRect.size.height);
scissorRect = CC_RECT_POINTS_TO_PIXELS(scissorRect);
glScissor((GLint) scissorRect.origin.x, (GLint) scissorRect.origin.y,
(GLint) scissorRect.size.width, (GLint) scissorRect.size.height);
}
-(void)postVisit {
glDisable(GL_SCISSOR_TEST);
}
我CCLayer
通过将 contentSize 设置为 1024x0 并使用预定的调用来实现增长:
-(void) grow {
float height = [self contentSize].height + 2;
if (height >= 768){
[self unschedule:@selector(grow)];
height = 768;
}
[self setContentSize:CGSizeMake(1024, height)];
}
这就像一个魅力。CCLayer
高度稳步增长,它被完美地揭开。但是,我不能使用任何缓动函数,因为我没有使用任何动作。
是否有任何动作可以调整CCLayer
(不缩放)允许我使用缓动函数的大小,或者是否有任何其他(更好的)方法可以做到这一点?