【发布时间】:2017-07-15 11:10:00
【问题描述】:
我知道之前有人问过这个问题,但我认为答案可能需要更新,因为它目前在 Mac OS 上使用 Xcode 8.3.3 的 SpriteKit 中不起作用。在阅读了这个post 之后,我意识到以前可以在 AppDelegate 中完成的事情现在应该在 ViewController 中完成,但它不起作用。有人对为什么这不起作用有任何建议吗?这是我的各种课程的样子:
ViewController.m
#import "ViewController.h"
#import "GameScene.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Load the SKScene from 'GameScene.sks'
GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"];
// Set the scale mode to scale to fit the window
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene
[self.skView presentScene:scene];
self.skView.showsFPS = YES;
self.skView.showsNodeCount = YES;
//added in hopes that mouse moved events would be captured
[self.skView.window setAcceptsMouseMovedEvents:YES];
[self.skView.window setInitialFirstResponder:self.skView];
}
@end
GameScene.m
#import "GameScene.h"
@implementation GameScene
- (void)didMoveToView:(SKView *)view {
}
-(void) mouseMoved:(NSEvent *)event {
NSLog(@"blah");
}
-(void)update:(CFTimeInterval)currentTime {
// Called before each frame is rendered
}
@end
【问题讨论】:
-
几周前你不是问过同样的问题吗?
-
是的。我完全忘记了这一点。无论哪种方式,没有人发布答案。我将删除旧问题。
-
如果您有兴趣,我可以向您展示如何在 Swift 中进行操作。我记得你的老话题,因为我在 Swift 中发布了代码,然后在意识到你想要它在 Objective-C 中之后删除了它。我认为,无论你是用 Objective-C 还是 Swift 编写,这个概念都是一样的。
-
是的,那太好了。我可以将 Swift 翻译成 Objective-C。
标签: objective-c macos sprite-kit mouseevent