2012-02-12 7 views
0

Yo、 レイヤーと関係があるcoco2dに問題があります。私は、このコードを使用して、背景を持っています:Cocos2dでのレイヤーの問題

CCSprite * background = [CCSprite spriteWithFile:@"background_menu.png"]; 
    [self addChild:background]; 
    background.position = ccp(240,160); 

これは基本的に私がそれに割り当てた位置を持つスプライトです。次に、CCMenuを使って4つのCCMenuItemImageでメニューを作成しました。私がプログラムを実行すると、背景がメニューをブロックするので、私が見ることができるのは背景です。メニューがバックグラウンドの上に表示されるようにする方法を知りました。私はこれがレイヤと関係があることを知っていますが、レイヤを作成する方法とそれらを使って階層を作成する方法についてはちょっと混乱しています。

+0

メニューの位置は?バックグラウンドの背後ではなく、単に「オフスクリーン」であってもよい。 zorderを指定せずにレイヤーに子を追加すると、メニューの最後のレイヤーが最初のレイヤーの上に表示されます。 – YvesLeBorg

答えて

0

おそらくzオーダーです。試してみてください:

[self addChild:background z:-1]; 

またはしようとする最初のものであるのz順序に加えて、高いZオーダー

0

でメニューを追加し、またこれだけのメニューがある背景のaddChildメソッドをコメントアウトしてみてください子供として追加されています。これは、メニュー自体が適切に追加され、配置されていることを確認するためです。そうであればバックグラウンドを追加しますが、必ずzオーダーを変更してください。あるいは、メニューのaddChildメソッドをバックグラウンドのaddChildメソッドの後に置くと、バックグラウンドの上に自動的に追加されるので、 zオーダー。