小编Con*_*sed的帖子

什么是Swift References的_下划线代表?

在Apple的文档的参考部分中有很多这种事情的实例:

func runAction(_action: SKAction!)

Objective-C'等效'是:

- (void)runAction:(SKAction *)action

让我感到非常重要的是(在Swift参考中)下划线后面有一个空格,而"动作"用斜体字写成.

但我无法弄清楚这是想传达什么.所以也许问题是......参考文献中使用的约定是否有参考?

- 这是我参考下划线使用的参考页面:https: //developer.apple.com/documentation/spritekit/sknode#//apple_ref/occ/instm/SKNode/runAction

更新

Swift 3对如何使用和命名函数/方法参数名称和参数标签进行了一些更改.这会对这个问题及其答案产生影响.@Rickster做了一个很棒的工作,回答了关于_underscores的一个不同的问题,在这些函数中清除了大部分内容,这里:为什么我需要在swift中使用下划线?

declaration function objective-c swift

138
推荐指数
6
解决办法
4万
查看次数

如何检测是否触摸了SKSpriteNode

我试图检测我的精灵节点是否被触摸,我不知道从哪里开始.

let Pineapple = SKSpriteNode(imageNamed: "Pineappleimg")
Pineapple.userInteractionEnabled = true
Pineapple.position = CGPoint(x: CGRectGetMidX(self.frame) - 200, y: CGRectGetMidY(self.frame));
self.addChild(Pineapple)
Run Code Online (Sandbox Code Playgroud)

touch touchesbegan sprite-kit skspritenode swift

42
推荐指数
7
解决办法
3万
查看次数

如何在Swift中为SpriteKit定义类别位掩码枚举?

要在Objective-C中定义类别位掩码枚举,我曾经输入:

typedef NS_OPTIONS(NSUInteger, CollisionCategory)
{
    CollisionCategoryPlayerSpaceship = 0,
    CollisionCategoryEnemySpaceship = 1 << 0,
    CollisionCategoryChickenSpaceship = 1 << 1,
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现相同的使用Swift?我尝试了枚举,但无法使其正常工作.这是我到目前为止所尝试的.

错误截图

objective-c bit-masks ios sprite-kit swift

28
推荐指数
3
解决办法
2万
查看次数

Swift 3 Array,使用.remove(at:i)一次删除多个项目

是否可以从数组中删除多个项目,同时使用索引位置按照.remove(at:i)类似:

伪代码:

myArray.remove(at: 3, 5, 8, 12)
Run Code Online (Sandbox Code Playgroud)

如果是这样,这样做的语法是什么?


更新:

我正在尝试这个,它有效,但下面答案中的扩展更具可读性和合理性,并且实现了与伪代码完全相同的目标.

创建一系列"位置":[3,5,8,12]

let sorted = positions.sorted(by: { $1 < $0 })
for index in sorted
{
    myArray.remove(at: index)
}
Run Code Online (Sandbox Code Playgroud)

arrays xcode ios swift indexpath

17
推荐指数
4
解决办法
1万
查看次数

如何在SKSpriteNodes中剪切随机孔

除了这里提出的问题:用SpriteKit在矩形中画一个洞?由于两者之间没有令人满意的答案,两者之间最显着的区别是这个问题需要缺少解决方法,特别是要求扭转SKCropNodes的功能.

由于孔的随机性,孔的数量以及孔要应用的物体的变化,上述问题可以解决的hacky方式的类型无法解决这个问题中的主要问题.

因此瑞士奶酪的例子如下:

想象一堆随机大小的矩形SKSpriteNodes,充满各种色调的奶酪色.

如何通过从每片奶酪中切出随机圆圈来制作瑞士奶酪?

如果SKCropNodes是圈子,他们只留下圆形的奶酪片而不是从奶酪块中切出孔.有没有办法反转SKCropNodes的行为,所以他们切换孔?

image-masking sprite-kit skspritenode skcropnode skshapenode

14
推荐指数
1
解决办法
605
查看次数

场景套件性能与立方体测试

在学习游戏的3D图形编程时,我决定通过使用Scene Kit 3D API开始简单.我的第一个游戏目标是构建一个非常简化的模拟MineCraft.只是立方体的游戏 - 它有多难.

下面是我写的一个循环,用于放置100 x 100立方体(10,000)并且FPS性能非常差(~20 FPS).对于Scene Kit,我的初始游戏目标是否过多,或者有更好的方法来解决这个问题吗?

我已经阅读了StackExchange上的其他主题,但感觉不到他们回答我的问题.将暴露的表面块转换为单个网格将不起作用,因为SCNGeometry是不可变的.

func createBoxArray(scene : SCNScene, lengthCount: Int, depthCount: Int) {
    let startX : CGFloat = -(CGFloat(lengthCount) * CUBE_SIZE) + (CGFloat(lengthCount) * CUBE_MARGIN) / 2.0
    let startY : CGFloat = 0.0
    let startZ : CGFloat = -(CGFloat(lengthCount) * CUBE_SIZE) + (CGFloat(lengthCount) * CUBE_MARGIN) / 2.0

    var currentZ : CGFloat = startZ

    for z in 0 ..< depthCount {
        currentZ += CUBE_SIZE + CUBE_MARGIN

        var currentX = startX
        for x in …
Run Code Online (Sandbox Code Playgroud)

3d optimization performance scenekit swift

13
推荐指数
1
解决办法
2301
查看次数

SKAction完井处理程序; 在Swift中的用法

我是Swift和SpriteKit的新手.很多SpriteKit动作的样本都在Objective C中,我无法在Swift中映射,也无法工作.

如果运行SKAction,并且在SKAction完成后想要做其他事情,我如何在Swift中做到这一点?

    spaceMan.runAction(spaceManDeathAnimation, completion: {
        println("red box has faded out")
    })
Run Code Online (Sandbox Code Playgroud)

任何想法将不胜感激.

编辑:

for i in 0...29 {
    textures.append(SKTexture(imageNamed: "spaceManDeath_\(i)"))
}
spaceManDeathAnimation = SKAction.repeatActionForever(SKAction.animateWithTextures(textures, timePerFrame: 0.15625))
Run Code Online (Sandbox Code Playgroud)

handler sprite-kit skaction swift completion

11
推荐指数
2
解决办法
7770
查看次数

如何在iPhone 6 Plus上完美地绘制Pixel?

鉴于iPhone 6 Plus正在从1242x2208缩小到1080x1920,而UIKit正在这样做,是否有其他方式可以在屏幕上进行绘图,从而实现绝对(像素完美)绘图而不缩小尺寸?

我想,但不确定,OpenGL和Metal可以在iPhone 6 Plus上绘制像素完美的图形,但不知道如何.我对Core Animation的坐标系意味着什么感到困惑,正如我在其他地方读到的那样,无论Point系统如何,它都可以完成像素完美绘图.

core-animation opengl-es pixel iphone-6-plus metal

10
推荐指数
1
解决办法
863
查看次数

iOS中的Unicode文件名

是否可以在iOS中的资产(图像)文件名中使用全范围(比方说)中文?如果没有,文件名,字符串搜索和其他文件处理活动支持哪些大语言部分?

unicode filenames ios

10
推荐指数
1
解决办法
700
查看次数

SCNParticles最高效的图像格式?

我一直在使用带有Alpha的24位.png,来自Photoshop,只是尝试了一个与OpenGL ES配合得很好的.psd,但是Metal没有看到Alpha通道.

SceneKit中粒子绝对最高效的纹理格式是什么?

如果需要,这是一张要测试的表.

它看起来是白色的......右键单击并保存为空白区域.这是一套阿尔法重的戒指.如果你眯着眼睛看屏幕,你可能几乎不能把它们弄出来:

在此输入图像描述

夸张的示例用例:

https://www.dropbox.com/s/vu4dvfl0aj3f50o/circless.mov?dl=0

在此输入图像描述

//任何人的附加点都可以猜出视频中左右环之间的差异.

particles particle-system scenekit

9
推荐指数
1
解决办法
879
查看次数