【SpriteKit】ダメージをキャラ上に表示してみた

iPhoneのゲーム開発日記ですが、ついに10、2桁まで来ました。

さて、今回はダメージを受けたキャラの上にダメージの量を表示してみました。

これを実装するのに結構ハマりまして、まる1日かかりました。

 

私の作っているゲームでは、下記の図のようにSceneファイル(.sks)を作り敵キャラを配置、GameSceneに取り込んで使っていました。

敵キャラが弾を喰らった場合ダメージ判定が起きるわけですが、この時にダウンキャストして得たFrogクラスのポジションは.sksファイルの座標になっています。

case PhysicsCategory.enemy.rawValue:
    // カエルかハエである場合ダウンキャストする
    if let frog = two.node as? Frog{
    frog.takeDamage()
    var absolutePosition = frog.position
    if frog.parent != self {
        absolutePosition = self.convert(frog.position, from: frog.parent!)
    }

Sceneの座標をViewの座標に変換するために、SKSceneクラスのconvertを使いました。

convert(_:from:)

Converts a point from scene coordinates to view coordinates.

これで解決。

難しいですね、iPhoneアプリ開発。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog