草庐IT

skspritenode

全部标签

swift - SKSpriteNode 碰撞识别速度不够快

我有一个SKSpriteNode(“称为球”),它是通过向其physicsBody施加脉冲来启动的。在我的didBeginContact方法中,我检查节点是否与障碍物发生碰撞。如果是这样,我希望SKSpriteNode立即停止移动(例如,“坚持”到它碰撞的对象)。问题是,当意识到球已经与障碍物发生碰撞并且球的速度设置为0时,球已经反弹,而不是碰到它碰撞的障碍物,现在是30像素左右离开funcdidBeginContact(contact:SKPhysicsContact){ballInMidAir=falsevarfirstBody:SKPhysicsBody=contact.body

ios - 无法隐藏/取消隐藏 SKSpriteNode

我在隐藏和显示SKSpriteNode时遇到问题。但是,我确信使用hidden=true会隐藏可见性。我想要做的是在按下标题时显示图像按钮,并在按下标题以外的其他地方时隐藏图像按钮。我有下面的示例代码。我很想听听你的意见。startSprite.position=CGPoint(x:self.size.width*0.5,y:self.size.height*0.5+startSprite.size.height)self.addChild(startSprite)startSprite.zPosition=3startSprite.hidden=truestartSprite.nam

swift - 为 SKSpriteNode 设置名称?

我正在使用以下代码为游戏中的玩家生成随机图像。varplayerTexture=[SKTexture]()playerTexture.append(SKTexture(imageNamed:“red”))playerTexture.append(SKTexture(imageNamed:“blue”))playerTexture.append(SKTexture(imageNamed:“green”))letrand=Int(arc4random_uniform(UInt32(playerTexture.count)))letchosenColor=playerTexture[rand

ios - SkSpriteNode没有成员(member)中心

我有一个名为“Ghost”的SKSpritenode,我想在图像外部添加一个脉冲外观。但是我收到一条错误消息,说它没有中心,我不确定如何解决这个问题,请帮忙。funcaddPulse(){letpulse=Pulsing(numberOfPulses:.infinity,radius:110,position:Ghost.center)pulse.animationDuration=1.0pulse.backgroundColor=UIColor.blue.cgColorself.view.layer.insertSublayer(pulse,below:Ghost.layer)}

ios - 当 SpriteNode 离开屏幕时在 Swift 中增加分数

我已经搜索了很多,但找不到任何有用的东西。我正在使用Swift3在SpriteKit中创建游戏。SpriteNodes在屏幕的右侧生成,并使用SKActions移动到屏幕的左侧,重复此过程。我需要一种方法,当SpriteNode通过我的玩家(在场景中间)时,分数会上升1。FollowingBlock从右到左移动我的敌人角色。funccreateEnemyBird(){//CreateEnemyBird1enemyBird1=EnemyBird(imageNamed:"enemy1")enemyBird1.position.x=self.frame.width+100enemyBird1

swift - 为什么初始化(编码器:) being called when I provide an init() function

我正在使用SpriteKit,我正在加载一个SceneKit文件,其中包含许多带有自定义类的Sprite。场景实际上从未加载过,因为它到达第一个自定义类并从requiredinit?(coder:)初始化程序中抛出fatalerror。尽管自定义类实现了一个初始化器,但我无法确定为什么它选择该初始化器而不是我提供的初始化器。自定义类:classBat:SKSpriteNode,GameSprite{varinitialSize:CGSize=CGSize(width:44,height:24)vartextureAtlas:SKTextureAtlas=SKTextureAtlas(n

Swift 和预制件?

由于我是SwiftiOS编程的新手,我对创建“预制件”有疑问?我有Unity背景,并且有类似预制件的东西,你可以多次实例化。在Swift或Xcode中有类似的东西吗?特别是我在SpriteKit中寻找它来创建带有child的SKNode副本 最佳答案 我认为最接近预制件的是类。您可以创建SKnode或任何其他节点的子类,例如SKSpriteNode,然后设置该类来执行您想要的操作。然后创建该类的一个实例。classBox:SKSpriteNode{init(){//Setupyournodethewayyouwantitsuper.

ios - SKSpriteNode zPosition绘图?

我正在尝试创建许多相互重叠和隐藏的Sprite。classBubbleNode:SKSpriteNode{init(){lettexture=SKTexture(imageNamed:"body")super.init(texture:texture,color:.clear,size:texture.size())leteye=SKSpriteNode(imageNamed:"eye")eye.zPosition=1eye.position=CGPoint(x:-20,y:0)leteye_right=eye.copy()as!SKSpriteNodeeye_right.positi

position - SKSpriteNode 上的 CGPoint x 无法正常工作(一半的节点超出屏幕)

我实际上正在使用SwiftSpriteKit开发游戏。我设置了一个SKSpriteNode的位置:skPart1.position=CGPointMake(0,100)所以节点应该从最左边的窗口边缘开始。|-------------------------||-------------------------||-------------------------||-------------------------||==========|--------------||==========|--------------||==========|--------------|但实际上我

ios - 在不改变大小的情况下改变 skspritenode 的纹理

当我更改spritenode的纹理时,大小会自动更改为纹理图像(png)的原始大小。我怎样才能避免这种情况?我的代码:varbomba=SKSpriteNode(imageNamed:"bomba2")varactionbomba=SKAction()bomba.size=CGSizeMake(frame2.size.width/18,frame2.size.width/18)letbomba3=SKTexture(imageNamed:"bomba3.png")actionbomba.addObject(SKAction.moveBy(CGVectorMake(0,frame.siz