相关疑难解决方法(0)

如何在屏幕边界外正确删除节点?

我正在开发一个sprite-kit游戏,其中节点在屏幕的最低点下方生成,重力设置为让它们浮动到屏幕顶部.一切都很完美,但它很快就开始减慢FPS,最终滞后和故障变得非常缓慢.我认为解决这个问题的方法是在经过一个点之后从父节点中删除节点,这是我在更新中使用的代码:

-(void)update:(CFTimeInterval)currentTime {

    if (_bubble1.position.y > CGRectGetMaxX(self.frame)+40) {
        [self removeFromParent];
    }

}
Run Code Online (Sandbox Code Playgroud)

如果需要,这就是我在initWithSize方法下面产生气泡的方法:

-(void)didMoveToView:(SKView *)view {

    [self performSelector:@selector(spawnBubbles) withObject:nil afterDelay:1.0];
    [self performSelector:@selector(spawnBubbles1) withObject:nil afterDelay:1.5];

}

-(void)spawnBubbles {
    randomPosition = arc4random() %260*DoubleIfIpad;
    randomPosition = randomPosition + 20*DoubleIfIpad;

    randomNumber = arc4random() %7;
    randomNumber = randomNumber + 1;

    myColorArray = [[NSArray alloc] initWithObjects:colorCombo1, colorCombo2, colorCombo3, colorCombo4, colorCombo5, colorCombo6, colorCombo7, colorCombo8, nil];
    myRandomColor = [myColorArray objectAtIndex:randomNumber];

    _bubble1 = [SKShapeNode node];
    [_bubble1 setPath:CGPathCreateWithEllipseInRect(CGRectMake(-25*DoubleIfIpad, -25*DoubleIfIpad, 50*DoubleIfIpad, 50*DoubleIfIpad), nil)];
    _bubble1.strokeColor = _bubble1.fillColor = myRandomColor;
    _bubble1.position …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c ios sprite-kit

9
推荐指数
1
解决办法
5189
查看次数

标签 统计

ios ×1

objective-c ×1

sprite-kit ×1

xcode ×1