Cocos2d - > Swift SpriteKit - CCLabelAtlas charmap功能

时间:2015-10-10 21:42:16

标签: ios swift cocos2d-iphone sprite-kit

首先,如果之前有人问过我,我道歉...我仍然非常喜欢编码,我不能完全确定如果它在我面前是正确的答案,因此我给予了在这里发帖求助!

几年前,我在cocos2d中坚持了一段时间,并且有一种非常有用的方法可以将自己的字体添加到标签中,我想知道是否可以在精灵套件中完成相同的操作?

在这里看,这就是多年前在我的cocos2d项目中设置的方式:

NSString *myString = [NSString stringWithFormat:@"Hello World",;
myLabelAtlas = [CCLabelAtlas labelWithString:myString charMapFile:@"My_Font.png" itemWidth:16/2 itemHeight:24/2 startCharMap:'.'];

我正在尝试使用Sprite Kit在swift中重复此过程,使用相同的'My_Font.png'文件1

这是否可能?

(非常感谢提前再次抱歉n00b问题!)

1 个答案:

答案 0 :(得分:1)

您正在寻找SKLabelNode为场景添加标签。王玉东给你的链接here向你展示了如何将你的字体添加到项目中,以便你可以将它们作为UIFont。在GameScene.swift的顶部,您想要放置此代码(给出的课程,以便您知道我在说什么):

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {
    var label = SKLabelNode(text: "Hello World")

现在SKLabelNode需要String!作为要使用的字体名称。所以我们在didMoveToView中执行类似的操作(用您的字体名称替换<your font name>):

label.fontName = "<your font name>" // The font's name
label.fontSize = 18 // The size of your font
label.fontColor = UIColor.blackColor() // The color to use for your font
self.addChild(label) // Add the label to the scene

请记住,在系统中需要字体的名称。有时字体名称不是它们看起来的样子。要扫描所有字体名称(并找到用于字体的名称),请使用此代码(这是来自链接,以防链接在某些时候消失):

for family: String in UIFont.familyNames()
{
     print("\(family)")
     for names: String in UIFont.fontNamesForFamilyName(family)
     {
         print("== \(names)")
     }
}

我不太确定如何为您的字体使用.png(我也不知道您是否还在使用该字体)。可能有某个在线生成器将.png字体转换为更常见的格式。但是一旦你将它转换成.otf.ttf之类的东西,你就可以将字体放入项目中(在列出文件的左侧)。从那里,您将其添加到info.plist文件中应用程序提供的字体列表中(应隐藏在支持文件中)。

现在您的应用程序应该包含您的字体,并且SKLabelNode。如果需要,您可以稍后设置文本。