LOGSTACK

Tips for programming

Blog

  • 5月 14 / 2014
  • 0
cocos2d-x, iOSアプリ開発

CCLabelTTFで文字が表示されない

iOS7にすると昔のソースが動かなくなっていました。
CCLabelTTFからラベルを作成すると、フォントが表示されなくなっていたようです。
公式の最新では既に対処されているのかもしれませんが、古いソースでは下記の修正で動きました。

変更箇所:cocos2dx/platform/ios/CCImage.mm
変更メソッド:_initWithString

◎ 変更前

◎ 変更後

同じメソッド内で、古いUITextAlignmentが使用されているので、
こちらもNSTextAlignmentへ変更します。

◎ 変更前

◎ 変更後

最後に、UILineBreakModeWordWrap を、NSLineBreakByWordWrappingへ修正します。

◎ 変更前

◎ 変更後

以上の修正で、TTFLabelから作成されたCCMenuItemLabelの表示まで確認できました


  • 5月 14 / 2014
  • 0
ツール

fntファイルから文字列の画像を作成

cocos2d系でゲームを開発する場合に、
fntファイルを作成して文字を描画する場合が多いかと思います。

参考)fntファイル作成ツール:GlyphDesigner
http://71squared.com/ja/glyphdesigner

fntファイルを使った文字は単純に画像ですので、組み込みフォントとは大分印象が異なってきます。
そのため、モックの段階で配置イメージを確認したい場合が多々あります。

しかし1文字ずつ座標を計算しながらモック用の画像を作るのが面倒なため、
fntファイルから指定した文字列の画像を作成するツールを作成しました。

実際のコード上で次のように書く部分について、

“timesnew40.fnt”で描かれた”HitPoints”の画像を1枚絵として取得するツールです。
モックでの利用を想定しています。

ついでに固定幅で指定するCCLabelAtlas用も作成しました。

といったコード向けです。

そんなわけで、興味のある方は下記からご利用ください

fntファイルと対応するpngファイルを指定して、一枚画像を作成

fntファイル
pngファイル
入力テキスト

固定幅の文字画像と、文字列を指定して一枚画像を作成

pngファイル
1文字あたりの横幅サイズ px
開始文字
(例)画像の一番左端の文字が”A”の場合、Aを入力してください
入力テキスト

  • 5月 13 / 2014
  • 0
iOSアプリ開発

NSStringによる文字列操作

Objective-Cにおける文字列の操作をまとめます。

文字列検索

・rangeOfString
指定した文字列Aの中から、特定の文字列Bを探して、その位置を取得します。
他言語でいうところのindexOf系にあたり、Objective-Cにおいては単純な位置ではなく範囲で取得するようです。

部分文字列

・substringWithRange
・substringToIndex
指定した文字列の中から、範囲を指定して部分文字列を取得します。

文字列置換

・stringByReplacingOccurrencesOfString
指定した文字列の中にある、特定の文字列を全て別の文字列へ置換します。

上記の例では、「#」の部分が全て「$$」へ変換されるため、結果としては
“aaa$$$$$$bbb$$”
という文字列が返却されることとなります。

トリム

・stringByTrimmingCharacterInSet
文字列の先頭と末尾にある空白、改行、タブを除去します。

URLエンコードとデコード

・stringByAddingPercentEscapesUsingEncoding
・stringByReplacingPercentEscapesUsingEncodin
URLエンコードとデコードを行います。


ページ:12345