我过去运行过这个项目没有错误,当我尝试使用时突然出现红旗:
-(void)aimRocketLauncher:(CGPoint)location
{
__block CGPoint handleLocation;
[self enumerateChildNodesWithName:@"handle" usingBlock: ^(SKNode *node, BOOL *stop) {
SKSpriteNode *handle = (SKSpriteNode *) node;
handle.name = @"handle";
if(CGRectContainsPoint(handle.frame, location)) {
handle.position = location;
handleLocation = location;
}
}];
[self enumerateChildNodesWithName:@"rocketLauncher" usingBlock: ^(SKNode *node, BOOL *stop) {
SKSpriteNode *rocketLauncher = (SKSpriteNode *) node;
CGPoint launcherPosition = rocketLauncher.position;
CGFloat slope = (handleLocation.y - launcherPosition.y) / (handleLocation.x - launcherPosition.x);
//NSLog(@"%f", slope);
CGFloat angle = tan(slope);
angle *= angle;
SKAction *rotate = [SKAction rotateToAngle:degToRad(angle + 90) duration:0.05];
// if (angle < 270 && angle < 180) {
// [rocketLauncher removeAllActions];
// [rocketLauncher runAction:rotate];
//
// }
}];
}
不仅仅是这个,而是整个项目。我尝试撤消和清理项目。
确切错误:
ARC语义问题'GameScene'没有可见的@interface声明选择器'enumerateChildNodesWithName:usingBlock:'
代码的其余部分并不重要,因为我知道这有效。当我开始输入[self时,autocomplete会找到它,当我右键单击enumerateChildNodesWithName然后跳转到Definition时,它就在那里。这意味着正确导入Sprite Kit。我尝试关闭项目并重新启动Mac,但仍然没有发生任何事情。
我尝试在另一个类中使用此代码来查看会发生什么。同样的错误。
我在2个具有相似代码的不同项目中看到的唯一区别是,一个是在Xcode 5和Xcode 6中启动的。
我也不想使用任何sks文件。
·H
#import <SpriteKit/SpriteKit.h>
#import "Settings.h"
#import "TopHud.h"
#import "Hud.h"
#import "Menu.h"
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
@class Menu;
@class Settings;
@class TopHud;
@class Hud;
@interface GameScene : SKScene
{
}
@end
.m文件的顶部
#import "GameScene.h"
@implementation GameScene
我真的需要解决这个问题,因为它会杀死我相当大的整个项目。我正在独自努力。
答案 0 :(得分:0)
我将部署目标从8更改为7.1