【发布时间】:2015-12-02 21:02:20
【问题描述】:
我制作了一个球从屏幕上弹起的简单效果。它只适用于顶部和底部边缘,但我不知道为什么。此外,当我在 initwithsize 方法中的 iOS 7 SpriteKit 模板中尝试此代码时,它可以工作。这是一个错误还是什么?
#import "GameScene.h"
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
self.backgroundColor = [SKColor whiteColor];
SKSpriteNode *ball =[SKSpriteNode spriteNodeWithImageNamed:@"ball"];
ball.position =CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ball.frame.size.width/2];
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsWorld.gravity = CGVectorMake(0, 0);
CGVector impulse = CGVectorMake(20,20);
[self addChild:ball];
[ball.physicsBody applyImpulse: impulse];
ball.physicsBody.restitution = 1;
ball.physicsBody.friction = 0;
ball.physicsBody.linearDamping = 0;
/*
SKSpriteNode *wall =[SKSpriteNode spriteNodeWithImageNamed:@"wall"];
SKSpriteNode *bar =[SKSpriteNode spriteNodeWithImageNamed:@"bar"];
wall.position= CGPointMake(self.frame.size.width/2, 103);
bar.position = CGPointMake(self.frame.size.width/2, (wall.frame.size.height));
[self addChild:wall];
[self addChild:bar];
*/
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
}
@end
【问题讨论】:
-
球在接触到侧面时消失,然后被推出,节点数从 1 变为 0,从 0 变为 1,依此类推
-
这可能是因为您的 self.frame.size 与您的 self.size(您的场景大小)不同。
-
也试过了,没用
-
在
didMoveToView中,添加self.scaleMode = SKSceneScaleModeResizeFill;并将所有出现的self.frame替换为view.frame。 -
0x141E 它工作了,非常感谢,我明白为什么现在为什么它不工作了
标签: ios objective-c sprite-kit collision bounce