【问题标题】:Forces applied to relative ball sizes施加到相对球尺寸的力
【发布时间】:2014-12-24 10:39:13
【问题描述】:

在我的代码中,我有一个开始下落的球,每次你点击它时它都会应用下面的代码。这在 iPhone 上完美运行,但我也在为 iPad 开发。现在在 iPad 上,球显然必须更大,我也希望将相同的效果应用于这些球。我试着做数学来得到球大小的相对力,我知道我做的数学是正确的,但必须有一个更简单的方法来完成这个。任何帮助将不胜感激!

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */

UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];

// if ball is tapped apply impulse
if ([node.name isEqualToString:@"ball"]) {
    node.physicsBody.velocity = CGVectorMake(0, 15);
    [node.physicsBody applyImpulse:
     CGVectorMake(0, 50)];

    [GameState sharedInstance].easyScore += 1;
    [_lblEasyScore setText:[NSString stringWithFormat:@"%d", [GameState sharedInstance].easyScore]];

    NSLog(@"ball pressed");
}
}

【问题讨论】:

    标签: objective-c iphone vector sprite-kit


    【解决方案1】:
    //Create private CGVector variable.
    CGVector ballApplyImpulse;
    
    //In your start method.(initWithSize, didMoveToView etc)
    if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )//iPad Detected
    {
        ballApplyImpulse = CGVectorMake(0, 100);//I haven't tested values. You can test yourself for true values.
    }
    else//iPhone Detected
    {
        ballApplyImpulse = CGVectorMake(0, 50);
    }
    
    //In your on touch method
    if ([node.name isEqualToString:@"ball"]) {
        node.physicsBody.velocity = CGVectorMake(0, 15);
        [node.physicsBody applyImpulse:ballApplyImpulse;
    
        [GameState sharedInstance].easyScore += 1;
        [_lblEasyScore setText:[NSString stringWithFormat:@"%d", [GameState sharedInstance].easyScore]];
    
        NSLog(@"ball pressed");
    }
    }
    

    【讨论】:

    • 太棒了,谢谢伙计!而且我猜这也适用于触摸方法中的速度?
    • 不客气,是的,这也适用于速度。
    • 好酷!对不起,还有一个问题,我应该用它来改变 iPhone 和 iPad 之间的节点大小吗?我知道如何使用 sprite,但我在使用标签时遇到了问题,是否也可以使用这项工作,或者有更简单的方法吗?
    • 你可以在任何地方使用ipad、iphone检测代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多