アプリ制作記6 ゲーム画面の背景

リバーシのゲーム画面の背景となる画像を置くところを作ります。

 

画面にノードを貼りまくる

ナビゲータエリアのGameScene.sksから、必要なノードとなるSKSpriteNodeを画面上にドラッグします。下図で行くと、以下のノードを貼り付けています。

①は全体の背景となるノード

②はリバーシのボードの枠となるノード

③はリバーシのボードとなるノード

④はボタン領域(待ったボタンと投了ボタンを今の段階では想定中)

⑤の黒ノードは駒と時計のノード、それに対応するラベル

 

f:id:daidaidaily:20180606180825p:plain

 

リバーシのボードとフレームのノードを分けたのは、のちのち座標計算が楽になるかなあ〜と思ったからです。ボードのノードの外に枠が一体型でついていると、左端からフレーム分を考慮した座標だけ引いてから、計算みたいなことにならないようにするためです。

 

ノードに設定を割り付ける

ユーティリティエリアのNameに各ノードを示す名前を指定しておきます。名前が重複しないように注意です。

f:id:daidaidaily:20180606181043p:plain

 

また、最初から最後まで画像を変更させる必要がないものはTextureにpng画像を指定しておきます。今回でいうと、背景、ボード、フレーム、白黒の駒、時計の画像は固定なのでTextureに画像を割つけています。逆に、ボタンはコード内で割り付ける必要があるので、ここではわざわざ指定していません。

 

画像を対応づけた後は、ノードの大きさが画像に依存して変化してしまうので、ユーティリティエリアのPositionとSizeを変更して想定通りの大きさになるように設定しています。背景は750*1334のサイズに合わせています。

 

設定した後で、ノードの前後関係が入れ替わっていて、表示したい画像が他の画像の下に隠れてみえないよ〜という場合は、上図左のノードの行をドラッグで上下に入れ替えると背面/前面の変更ができます。

f:id:daidaidaily:20180606183146p:plain

 

背景画像のように、全ての画像の下側に表示したい場合は図中のように、BackGroundのノードを一番上までひっぱってあげれば最背面に表示されます。

 

ウンウン、画像が貼られるだけでなんとなくゲーム画面っぽくなってきてテンションあがってきますやん。