我有一个游戏,球从平台反弹到平台。我希望改变它,以便当球击中平台时,它不会自动反弹,而是会粘在平台上,并在用户告诉它时反弹。我现在设置的方式如下:
if (CGRectIntersectsRect (ball.frame, platform1.frame) && (UpMovement < -2)) {
[self bounce];
[self platformshiftdown];
}
其中bounce
包含NSArray
动画图像,platformShiftDown
有一个int
告诉它要移动多少(如果有必要提供这部分代码)解决这个问题)。
基本上,我想改变它,以便当球与平台的框架相交时,它会停止并“粘住”平台,直到用户触摸弹跳/跳跃按钮。我在想有两种方法可以做到这一点:
if (CGRectIntersectsRect (ball.frame, platform1.frame)) {
ballMovement = -2
platformMovement = -2
}
//to create the illusion that the ball is stuck to the platform, because they both have the same downward movement
然后设置一个按钮,用户点击该按钮可以跳出/跳出平台。但这看起来并不那么好,因为球不一定看起来像是坚持平台。是否有任何类型的代码我可以编写说“如果CGRectIntersectsRect ......球卡住了?” (显然这不是代码,只是试图解决问题)。
答案 0 :(得分:0)
球很可能奇怪地移动,因为它与平台保持重叠相交。
if (CGRectIntersectsRect (ball.frame, platform1.frame)) {
[self platformShiftDown];
CGRect newRect = ball.frame;
newRect.y = platform.frame.y + ball.frame.height;
ball.frame = newRect;
}
这将始终将球准确地移动到平台的边缘。 如果平台移动,球也会移动。 平台首先移动以确保球保持同步也很重要。