我怎样才能得到场景的边界?
我使用demo进行测试,并以这种方式初始化scene:
GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;所以,当我点击屏幕时,我会登录:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode: self];
NSLog(@"%f, %f", location.x, location.y);
}
}当我按左下键时,我得到大约300-0,而我期望的是0-0。
我怎样才能得到上下左右的界限呢?我找不到像这样的方法:
[scene getBounds]Scene.frame打印:(0,0,1024,768)不对应!!
发布于 2015-05-24 18:07:46
您需要将GameScene的大小设置为与其SKView的大小相等。您可以在GameScene的didMoveToView中执行此操作
-(void)didMoveToView:(SKView *)view {
[super didMoveToView: view];
self.size = view.bounds.size;
}或者,您可以在实例化GameScene时设置大小
SKView * skView = (SKView *)self.view;
// ...
GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;
scene.size = skView.bounds.size;
[skView presentScene:scene];发布于 2015-05-24 20:05:42
像这样初始化场景:
GameScene *scene = [GameScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;测试坐标如下:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
/* Pressed node */
SKNode *node = [self nodeAtPoint:location];
NSLog(@"x - %f; y - %f", location.x, location.y);
}https://stackoverflow.com/questions/30422119
复制相似问题