jjzjj

Spritekit

全部标签

ios - Xcode 10 与 spritekit 场景文件 .sks 崩溃

我的大部分SpriteKit场景都无法读取;Xcode刚刚崩溃。我试着删除名字。似乎没有任何效果。当我将纹理放在SKSpriteNode上时,一个新项目随机崩溃。有时我可以在崩溃前放置三个纹理,有时相同的第一个纹理会崩溃。Fulllog. 最佳答案 如果您在虚拟机中运行MacOS,那么这是一个已知问题。*.sks文件在虚拟机中运行Xcode时崩溃。 关于ios-Xcode10与spritekit场景文件.sks崩溃,我们在StackOverflow上找到一个类似的问题:

ios - Spritekit 动画没有改变

我的游戏中有一个虚拟控制板。如果我点击并按住其中一个方向按钮,播放器会朝正确的方向移动并显示正确的图像和动画。但是,如果我将手指从一个控件滑动到另一个控件(比如从右到下),播放器会向下移动,但图像和动画不会改变,直到我抬起手指。下面是我处理触摸的代码:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){fortouchin(touchesas!Set){letlocation=touch.location(in:cameraNode)ifupRect.contains(location){moveXDirection=0m

ios - 如何在 SpriteKit 中为关节添加纹理?

也许我可以用anchor来做,但我真的不明白我应该怎么做。 最佳答案 我正在构建的解决方案需要一个带有关节纹理的SKSpriteNode,然后将其添加为连接节点之一的子节点,这样它就覆盖了SKPhysicsJoint正在运行。每当我旋转关节时,纹理也会随之旋转。我的想法是从带有隐藏关节的可动人偶那里得到的,基本上,您只是在机械关节上放置了一些东西,以便获得更令人愉悦的美感。我不知道这是否适合您,但您也可以使用现有纹理的centerRect定义纹理,然后定义要在关节节点上绘制的部分。这比我想投入的工作要多,这取决于您的艺术作品Asse

ios - Gamecenter init/authentication 使 SpriteKit 的 Sprite 移动滞后

我有一个简单的场景(默认SpriteKit模板):一个ViewController和一个MySceneSpriteKit场景。在我的ViewController中,我在viewDidLoad中管理了gamecenter初始化,但我的场景在启动后立即开始无限快速的Sprite移动(背景视差滚动)。一切正常,但在GameCenter通过身份验证程序之前,我的sprite运动滞后、中断,运行不流畅。我可以通过什么练习来最小化这种情况(保持视差Sprite运动运行)?我正在iPhone4设备(IOS7.03)上测试这个 最佳答案 GameC

ios - 一张带有 alpha 滞后 spritekit 的图像

我正在制作一个游戏,其中涉及沙尘暴。我决定基本概念是我会制作一个看起来大致像沙尘暴的图像,然后用一些粒子/其他任何东西来装饰它。我在第一步遇到了问题。为了测试目的,我拼凑了一个简单的图像:我将其添加到我的游戏中,FPS下降了60%。我对一张图片的效果感到惊讶,但我并不太担心。我将图像的分辨率减半,但又出现了很多延迟。spritekit/iOS在处理带有alpha的中等大小图像方面真的那么糟糕吗?我读到另一个问题,模拟器在渲染方面很糟糕,但这不是全部问题。是否有希望在不影响性能的情况下进行渲染?粒子运行良好,其他一切都以60fps的速度运行,但添加此图像显然会严重消耗资源。编辑:我在手机

ios - 奇怪的 EXC_BAD_ACCESS SpriteKit removeSubsprite 崩溃

我是SpriteKit的新手,刚刚构建了我的第一款游戏。在iOS7.1之前,一切都运行良好。现在,在推进到一个新的水平并呈现一个新的Scene几次之后,它崩溃了。我不认为我以不正确的方式呈现它:ZSSMyScene*nextLevel=[[ZSSMyScenealloc]initWithSize:self.sizelevel:self.levelscore:score];[self.viewpresentScene:nextLevel];我收到一个EXC_BAD_ACCESS错误,看起来它发生在removeSubsprite上,但我在我的代码中找不到要删除子Sprite的地方:不确定要

ios - 暂停 spritekit 场景并显示 "paused"标签

我想在有人点击屏幕时显示“暂停的”SKLabelNode,从而暂停spritekit游戏。所以我在touchesBegan->[self.pausedLabelsetHidden:!self.pausedLabel.hidden];[self.scene.viewsetPaused:!self.scene.view.paused];游戏已正确暂停,但未显示SKLabelNode(暂停前未渲染场景?!)如果我添加一个NSTimer来暂停场景,则会显示标签,但游戏会继续该计时器时间。有人对此有更好的解决方案吗?提前致谢 最佳答案 我会为

ios - SpriteKit - CPU/Memory leak on segue back to main screen

我有一个应用程序,其中有一个SpriteKit游戏和一个主菜单。单击主页按钮后,CPU/内存不会减少。我已经尝试了一些东西,这里的代码可能是多余的,但它还没有为我工作。每当触摸主页按钮时执行:-(void)goToMainMenu{[selfperformSegueWithIdentifier:@"mainmenu"sender:self];[self.spriteViewremoveFromSuperview];self.scene=nil;[self.spriteViewpresentScene:nil];self.spriteView=nil;self.view=nil;}从主菜

ios - SpriteKit : Label 'jumps' when text changes

我有一个标签,显示自玩家第一次触摸屏幕以来我的游戏已经过去的时间。它显示秒和毫秒。我使用将它定位在框架的中间CGPointMake(CGRectGetMidX(self.frame)问题是,并非所有数字都具有相同的宽度(例如,1小于3)。这导致我的标签在毫秒更新时从左到右快速跳转一两个像素。因为标签大小每次都明显增加和减少,所以我的标签的MidX坐标发生变化并导致我的标签移动。我希望它始终保持在同一位置。有谁知道阻止它移动的解决方案吗?编辑:标签代码-(SKLabelNode*)timeLabel{timeLabel=[[SKLabelNodealloc]initWithFontNam

iOS UIBezierPath 在使用 SpriteKit 渲染时颠倒了?

轨道路径是使用原点(0,0)在顶部/左侧的数据点定义的。从这些点创建一个UIBezierPath。汽车沿路径的移动以距离的形式给出,从中计算百分比。UIBezierPath上的类别提供汽车沿路径的坐标。#import"UIBezierPath-Points.h"CGPointcurrCoordinates=[self.trackPathpointAtPercent:percentwithSlope:nil];问题是SpriteKit颠倒了轨道路径。在SKScene类中……SKShapeNode*shapeNode=[[SKShapeNodealloc]init];[shapeNodes