草庐IT

Sprite-kit

全部标签

ios - SKPhysicsBody 质量变化中心

我目前正在开发一款游戏,其中我有一张圆柱形物体的图片,我用以下内容制作了一个SKPhysicsBody:self.oval.node.physicsBody=SKPhysicsBody(texture:self.oval.node.texture,size:self.oval.node.size)此方法在节点周围创建了一个漂亮的形状,但是,重心偏离了......它在椭圆的尖端保持平衡。无论如何要改变它以平衡理论上最重的部分应该在哪里?谢谢! 最佳答案 质心不能偏离太远,它是准确的。问题是您希望您的物理体具有不均匀的密度。刚性物理体的

swift - Core Image NSException 崩溃,为什么/什么?

在SpriteKit中,我使用Effect节点将简单的渐变应用于简单的矩形。这似乎工作正常,但是将它添加到场景会导致NSException。请问:我做错了什么?importSpriteKitimportGameplayKitimportCoreImageclassGameScene:SKScene{overridefuncdidMove(toview:SKView){letrectangle=SKSpriteNode(color:.black,size:CGSize(width:480,height:80))letgradientOne=CIFilter(name:"CILinearG

swift - 在swift 3和core graphics中画一条直线

我正在尝试使用核心图形和swift3绘制一条直线但是,当调用touchesmoved时,它会创建多条线,而不仅仅是一条线。使用的代码如下:importUIKitclassViewController:UIViewController{@IBOutletweakvardrawingPlace:UIImageView!varstartTouch:CGPoint?varsecondTouch:CGPoint?overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){lettouch=touches.firststartTouch=to

ios - 如何使用 - swift - SpriteKit 编写将在特定时间运行函数的协议(protocol)

是否可以创建这样的协议(protocol):protocolSetupProt{funcsetup()}然后在我的didMove函数结束时,告诉应用程序运行所有实现此协议(protocol)的子类的所有设置函数?或者我是否需要存储对实现协议(protocol)的所有这些对象的引用并遍历它们?目前我正在使用该协议(protocol)。然后我有一个像这样的全局数组:setups=[SetupProt]=[]我的游戏中有“平台”的子类。我在XCODE编辑器中对其进行子类化。在aDecoderinit函数中,我将该节点添加到这个全局数组中...我这样做是因为此时场景属性为nil,所以我还不能访

ios - 如何优化以获得更好的帧率?

这是一款益智游戏。从屏幕截图中可以看出,屏幕上有256个节点,帧率徘徊在10FPS左右。我看到很多益智游戏,我认为屏幕上有数百个独立的节点,但帧速率很高……我也想达到同样的效果。根据我的代码,我可以考虑哪些优化点?(下图代码)我实际上只是在创建一堆SKShapeNode,将它们放入NSArray,然后将它们作为子节点添加到didMoveToView上的场景classGameScene:SKScene{vargrid:Grid!=niloverridefuncdidMoveToView(view:SKView){self.grid=Grid()self.grid.initWithPare

swift - 5 秒后删除 SKSpriteNode

如何在我的函数中像这样在5秒后删除我的SKSpriteNode。我尝试使用一个名为func的NSTimer删除我的BonusSprite但5秒后我的应用程序崩溃了:lettimerApparitionBonus=NSTimer.scheduledTimerWithTimeInterval(13,target:self,selector:Selector("ApparitionBonus"),userInfo:nil,repeats:true)}funcApparitionBonus(){varBonusApparitionX=UInt32(self.frame.size.width)v

ios - 我如何获取并删除 SKNode 的父节点?

SKSpriteNode有一个父节点,它是随机分配的,并且不知道它是谁。那个SKSpriteNode如何找到它的父节点,然后从场景中移除父节点,从而移除它自己和父节点? 最佳答案 如果您仔细阅读文档,您会发现一个名为removeFromParent的方法在SKNode类中。只需调用它:yourSpriteNode.removeFromParent()或者,如果您想在一系列SKAction之后从其父节点中删除节点,您可以使用SKAction.removeFromParent().letremoveFromParentAction=SK

ios - 添加一个 SKLabelNode 到 Scene Kit View

我正在使用SceneKit构建游戏。为了在屏幕上显示乐谱,我想在屏幕上使用SKLabelNode,但是,当我将它附加到SCNNode时,它​​看起来非常模糊:这是我为此编写的代码,请告诉我是否有更好的方法来执行此操作而不会使文本如此模糊。非常感谢!funcinitHUD(){letskScene=SKScene(size:CGSize(width:100,height:100))skScene.backgroundColor=UIColor(white:0.0,alpha:0.0)labelNode=SKLabelNode()labelNode.fontSize=20labelNode

【pygame】Sprite类

Sprite类pygame.sprite.Sprite可视游戏中的对象的基础类属性:Sprite(*groups)->Sprite使用Sprite类派生新类时需要分配Sprite.image和Sprite.rect属性并添加Sprite.update()方法。初始设定项可以添加任何数量的组(Group)实例。当派生Sprite类的子类时,请确保在将Sprite类添加到组群(Groups)之前已调用基础初始设定项。例如:classBlock(pygame.sprite.Sprite):#构造函数。传入图块的颜色和x,y位置。def__init__(self,color,width,height)

swift - 以编程方式添加 SKReferenceNode

我有很长的2d关卡,所以我将它分成更多的.sks文件。我有“GameScene”,我可以通过拖放将它们加入到场景编辑器中。它创建SKReferenceNodes。我已经成功地做到了。但是我想在代码中需要时延迟加载这些部分(据说这是一种很好的做法)。我在这方面失败了。这是代码的特殊部分:ifletnextPart=SKReferenceNode(fileNamed:"Scene2_city2"){ifself.childNodeWithName("Scene2_city2")==nil{self.addChild(nextPart)}}"Scene2_city2"是.sks文件的名称,也