- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在一个 Sprite 节点上运行两个 SKTexture Action 。我做了以下事情:
func subSprite (_ newSprite:SKNode) {
let firstImage = SKTexture(imageNamed: "firstImage")
let secondImage = SKTexture(imageNamed: "secondImage")
(newSprite as? SKSpriteNode)?.size = firstImage.size()
mainSprite?.sprite.physicsBody = SKPhysicsBody(texture: firstImage, size: firstImage.size())
mainSprite?.sprite.physicsBody!.categoryBitMask = mainSpriteCategory
mainSprite?.sprite.physicsBody?.allowsRotation = false
mainSprite!.sprite.physicsBody?.contactTestBitMask = enemyOneCategory | enemyTwoCategory | enemyThreeCategory
mainSprite!.sprite.physicsBody?.collisionBitMask = enemyOneCategory | enemyTwoCategory | enemyThreeCategory
let firstImageAction = SKAction.setTexture(firstImage)
let secondImageAction = SKAction.setTexture(secondImage)
let textureGroupAction = SKAction.group([firstImageAction, secondImageAction ])
newSprite.run(textureGroupAction)
}
只有第二张图片出现。第一个没有。我这样做的主要原因是我需要运行一些其他操作,例如在 secondImage 上淡出。我怎样才能让这两个图像都出现?
更新
根据 KnightOfDragon 的推荐,我创建了一个单独的 Sprite 。因此我有两个 Sprite (相同尺寸),一个使用物理体的圆形 Sprite 和一个没有物理体的方形 Sprite 。我使用下面的代码在更新方法中更新了 Sprite 的位置。
mainSprite!.squareSprite.position = mainSprite!.circleSprite.position
尽管 Sprite 具有相同的位置(我在几个地方记录了它们的位置以确保这一点),但当与另一个物理物体发生碰撞时, Sprite 似乎会在某个随机方向上偏移。当我显着降低 mainSprite
的速度时(这不是我打算做的),偏移停止或减少。我相信这是与导致偏移的另一个物理体碰撞的影响速度。我该如何解决这个问题?
最佳答案
像这样构造你的 Sprite :
var mainSprite : SKNode!
var subSprite1 = SKSpriteNode(texture:SKTexture(imageNamed: "firstImage"))
var subSprite2 = SKSpriteNode(texture:SKTexture(imageNamed: "secondImage"))
mainSprite.addChild(subSprite1)
mainSprite.addChild(subSprite2)
然后像这样做你的代码:
func initSprite (_ newSprite:SKNode) {
(newSprite as? SKSpriteNode)?.size = firstImage.size()
mainSprite!.physicsBody = SKPhysicsBody(texture: firstImage, size: firstImage.size())
mainSprite!.physicsBody!.categoryBitMask = mainSpriteCategory
mainSprite!.physicsBody!.allowsRotation = false
mainSprite!.physicsBody!.contactTestBitMask = enemyOneCategory | enemyTwoCategory | enemyThreeCategory
mainSprite!.physicsBody!.collisionBitMask = enemyOneCategory | enemyTwoCategory | enemyThreeCategory
}
关于sprite-kit - 如何在 Sprite 节点上运行两个 SKTexture Action 作为组 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41431255/
我在这样的类中定义了一个 SKTexture 数组: var walking: Array = [] 然后我在同一个类中有一个函数返回该数组的一个元素: func running() -> SKTex
我有一个问题,在过去的几个小时里我一直在绞尽脑汁。我正在创建一个平铺 map ,作为平铺的纹理,我有一些 Sprite 表。 我可以使用以下 spritesheet 来演示我的问题: 现在我使用 SK
有什么方法可以让 SKTexture 动画化(假设它是一个红色方 block ),这样就可以像页面一样从左到右“剥离”,露出另一个 SKTexture 下面(比如说一个蓝色方 block )? 示例:
我有一个图像集,它们是 80 x 80。但是 SKTexture 说有些帧是 33x80,尽管它们显然是 80x80。怎么了?我的动画在运行时看起来很不对劲。 代码如下: SKTextureAtlas
for building in self.buildingArray { if building.contains(location) { upgradeArr
是否有可能从 SKSpriteNode 的 SKTexture 获取当前图像名称? 我是 SpriteKit 的新手,我正在编写一个小游戏。我需要检测忍者何时会击中敌人。像这样 我正在做 SKActi
这个问题在这里已经有了答案: Is it possible to make an Array extension in Swift that is restricted to one class?
正如标题所说,我的 SKTexture 并没有像我期望的那样改变。 这就是我在玩家类中声明单例的方式: static let sharedInstance = NHPlayer() 我有这个功
也许这很容易,但我迷路了。 我有一个项目,我必须制作一个使用 8 个 jpg 模拟页面打开的全屏动画。所以我正在做的是: 我有一个全屏显示的 SKSpriteNode 制作一个包含 8 个 SKTex
也许这很容易,但我迷路了。 我有一个项目,我必须制作一个使用 8 个 jpg 模拟页面打开的全屏动画。所以我正在做的是: 我有一个全屏显示的 SKSpriteNode 制作一个包含 8 个 SKTex
SKEffectionNodes 有一个 shouldRasterise “开关”,可以将它们烘焙到位图中,并且在受效果影响的底层节点发生更改之前不会更新它们。 但是我找不到从这个光栅化“图像”创建
我正在尝试在 SpriteKit 中制作拼图游戏。为了让事情变得更容易,我使用 9x9 方形瓷砖板。每个图 block 上都有一个 childNode,其中包含来自该区域的图像。 但这就是我的问题的开
我正在制作一个主角旋转的游戏,但是,我想使用 SKTexture 为角色 Sprite 节点设置自定义边界。然而,当我这样做时,我的角色不会旋转。当我使用常规的circleOfRadius(因为我的
我的问题是,当我玩游戏时,即使敌人没有触及我的角色,而是飞得离他很近,我也会失去生命。我了解到问题是我角色的透明空间与敌人的透明空间接触了。 我想按照 SKPhysicsBody documentat
我正在尝试为动画中的单个 SKTextures 设置持续时间。 armsAtlas 纹理图集下方。我想将 upTexture 随机设置为持续 1-4 秒,然后将 downTexture 设置为持续 0
我正在尝试为游戏创建背景并有两个背景图像。我可以使用两个不同的 SKSpriteNode()、SKTexture、SKAction.sequence..etc 和一些数学将它们拼接在一起,但结果有点不
我目前在 SpriteKit 和 SKTexture 预加载方面遇到奇怪的间歇性问题。我有多个图像数组,我按以下格式预加载: - (NSDictionary *)loadTexturesWithNam
I've now filed a bug for the issue below. Anyone with a good workaround? 我尝试将 SKTexture 保存到文件中,然后再次加
在 SpriteKit 中,如果你使用 [SKTexture textureWithImageNamed:] 方法加载图像,它会首先搜索你的包,然后是图集,如果找不到你的纹理,它会创建一个占位符图像并
我正在使用带有图像的 SKTexture 并设置 SKPhysicsBody。像那样: var moleTexture = SKTexture(imageNamed: "moleTop1") left
我是一名优秀的程序员,十分优秀!