Ios 屏幕上的游戏-SpriteKit
我正在制作一个简单的SpriteKit游戏。我想在屏幕上添加一个游戏,用一个按钮返回主屏幕。但似乎用SpriteKit做起来并不容易 我以前在主游戏视图上有一个“后退”按钮,当游戏过载时,这个按钮就留在那里。但是使用它并再次播放会使fps下降。那么,有没有办法在Ios 屏幕上的游戏-SpriteKit,ios,iphone,sprite-kit,Ios,Iphone,Sprite Kit,我正在制作一个简单的SpriteKit游戏。我想在屏幕上添加一个游戏,用一个按钮返回主屏幕。但似乎用SpriteKit做起来并不容易 我以前在主游戏视图上有一个“后退”按钮,当游戏过载时,这个按钮就留在那里。但是使用它并再次播放会使fps下降。那么,有没有办法在SKScene中添加一个按钮?例如,在故事板中创建视图控制器并在其中添加按钮,然后使场景显示在那里 如果你需要任何代码或任何东西,只要告诉我,我会发布它。谢谢 最好的方法是子类化SKNode,在SpriteKit中创建一个按钮 简单的例子
SKScene
中添加一个按钮?例如,在故事板中创建视图控制器并在其中添加按钮,然后使场景显示在那里
如果你需要任何代码或任何东西,只要告诉我,我会发布它。谢谢 最好的方法是子类化
SKNode
,在SpriteKit
中创建一个按钮
简单的例子:
@interface MyButton : SKSpriteNode
@property (nonatomic, readonly) SEL action;
@property (nonatomic, readonly, weak) id target;
- (void)setTarget:(id)target action:(SEL)action;
@end
@implementation SKButton
- (void)setTarget:(id)target action:(SEL)action
{
_target = target;
_action = action;
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInNode:self.parent];
if (CGRectContainsPoint(self.frame, touchPoint))
{
objc_msgSend(_target, _action);
}
}
@end
或者您可以创建一个ui按钮
,并将其添加到SKView
:
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
button.backgroundColor = [UIColor whiteColor];
[skView addSubview:button];
我没有遇到任何性能问题,但我的测试项目并不复杂。好吧,我找到了一个对我有效的简单解决方案(至少现在是这样)。这是:
作者创建了一个节点,然后当触碰该节点时,游戏将再次加载。代码可以在其网站上看到。将UIButton作为子视图添加到SKView不是一个选项,对吗?那么FPS会下降吗?好吧,至少在故事板上是这样的。我想ARC只是保留了这些内容,但我不知道如何发布它们……谢谢,我会把这些保存起来,以备将来的项目/想法使用!:DHe或她正在使用SKLabel。