私は基本的にシングルフォントでカスタムフォント番号(画像付き)を追加してSpriteKitで自分のスコアに追加したいと思っています。スウィフトでSpriteKitのスコアとしてSKLabelNodeにカスタムの数字画像を追加
これは、彼らが0から9
に番号でフォント画像スタイル
である私はしばらくの間、これを理解しようとしています。
SKLabelNodeに追加できるかどうか、またはクラスで作成する必要があるかどうかはわかりません。
私は基本的にシングルフォントでカスタムフォント番号(画像付き)を追加してSpriteKitで自分のスコアに追加したいと思っています。スウィフトでSpriteKitのスコアとしてSKLabelNodeにカスタムの数字画像を追加
これは、彼らが0から9
に番号でフォント画像スタイル
である私はしばらくの間、これを理解しようとしています。
SKLabelNodeに追加できるかどうか、またはクラスで作成する必要があるかどうかはわかりません。
SKLabelNode
は、ビットマップフォントを許可しません。カスタムフォントがTTFの場合、SKLabelNode
でカスタムフォントを使用できます。説明はここにあります:SKlabelNode custom font
あなたの場合、ビットマップフォントを使用したいので、これを行うためにクラスを作成する必要があります。 SKNode
のいずれかをサブクラス化することができます。しかし、SKNode
を "ルート"として機能させ、次にあなたの番号の各数字をSKSpriteNode
(これらは数字を表すルートノードの子ノードになります)にしたいと考えています。
あなたが決定したいことは、番号の整列(水平方向と垂直方向)をどのように扱いたいかということです。
私は独自のカスタムクラスを使用して以前に数値を描画していますが、通常は水平方向に調整可能(左揃え、右揃え、中央揃え)に設定できます。しかし、怠惰から、私は通常、常に垂直に中心を置きます。
これは複雑に聞こえるかもしれませんが、簡単に行うことができます。
SKSpriteNode
と を削除する方法は、それぞれ新しい桁を追加します。各新しい桁は、整列に基づいて適切な量の によってオフセットされています。あなたのカスタムクラスは、数値が設定されると、番号を表す正しいSKSpriteNode
を作成する必要があります。
SKTexture
の配列をどのように使用するかに関する最後の質問の情報が更新されました。このコードはコンパイルのためにテストされておらず、単にあなたに良いアイデアを与えるためのものです。
// Example of storing digits in an array. Assumes you are putting this in an atlas and your
// sub-texture names are 0, 1, etc. If not you'll have to adjust the code accordingly
var numTextures = [SKTexture]()
let numberAtlas = SKTextureAtlas(named: "NumberAtlas")
for i in 0 ..< 10 {
numTextures.append(numberAtlas.textureNamed("\(i)"))
}
// To get the texture for a digit
func textureForDigit(digit:Int) -> SKTexture {
return numTextures[digit]
}
回答ありがとうございます。私はあなたの更新をすることができますように私はすぐにこれを試してみましょう。 – hka
各桁のテクスチャアトラスを追加しましたが、数値を設定/取得するメソッドを追加するか、個々の数字に変換するとエラーが出ます(IntをSKTextureに変換することはできません)... – hka
もちろんありません。それがアレイの目的です。 'SKTexture'の配列を作成します。ここで、0のインデックスは0を表し、1のインデックスは1を表します。 –