問題タブ [ccmenuitem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - CCMenuAdvancedの使用-Cocos2d
私は自分のゲームのためにある種のアイテムスクローラーを作ろうとしています。拡張機能を決定し、CCMenuAdvanced
作業ボタン付きの作業メニューリストを実装することができました。ただし、境界内にメニューを適切に含める方法がよくわかりません。borderRectがメニューリストの「範囲外」の部分を非表示にしないことは私には明らかです-それはスクロールにのみ責任があるようです。問題は、それを使用して自己完結型のアイテムリストを取得するために他に何をしなければならないかということCCMenuAdvanced
です。個々の要素の位置を追跡し、それらの不透明度と可視性を変更する追加の更新方法をスケジュールする必要がありますか、それともこれに対するサポートされている解決策がありますか?
ありがとう
menu - CCSceneとCCLayerをいつ使用するのですか?
私は一種のUIマニアです。ゲーム内のすべての「画面」は、表示または非表示になったときにイン/アウトに移行する必要があります。私のゲームはリソースの点で単純なので、各「画面」をCCLayerにして、遷移の関数を定義し、すべてをメモリに残しておくと思いました。思ったより複雑になっています。
私は今、2つの主な問題があると思います。
1)各「画面」はCCLayerです。これは問題ないように見えますが、タッチイベントが非アクティブであっても、受信を停止できないようです。子スプライトはisTouchEnabledプロパティを尊重していないようです。そのため、私は常に非表示のボタンを押しています。
2)基本的に状態用のいくつかの個別のテクスチャを持つスプライトであるカスタムボタンクラスを作成しました。CCTargetedTouchDelegateプロトコルを使用します。これが上記の問題の大きな部分だと思います。
CCMenuの内容についてはよくわかりません。その設計された目的とその使用方法をよりよく説明するチュートリアルやドキュメントはありますか?cocos2dのドキュメントでは、各クラスの機能についてはまったく説明されていないため、ライブラリを適切に使用することは非常に困難です。また、レイヤーの代わりにシーンを使用する必要があるのはいつですか?カスタムトランジションを作成できますか?
ios - CCMenuのCCMenuItemSpriteアイテムのスケーリング
スケーリングされたCCMenuItemSpriteメニュー項目でCCMenuを使用する際に問題が発生しました。ゲームがプレイされているデバイスに基づいて、メニュー項目のスプライトを異なる方法でスケーリングしようとしています(iPadでは約1.5倍にスケーリングする必要がありますが、iPhoneでは約0.75倍にスケーリングする必要があります)
私が読んだことから、CCSpriteを直接スケーリングしたり、CCMenuItemSpriteをスケーリングしたりすることはできません。これは、CCMenuに追加されたときに、タッチ長方形が正しく更新されないためです。メニュー項目を拡大縮小するには、CCMenuを拡大縮小する必要があると思います。
これを行うと、スプライトは正しいサイズにスケーリングされているように見えますが、CCMenuの位置座標もスケーリングされているように見えますが、予想とは逆の方向になっています。また、特定のしきい値を超えると、メニューが完全に消えるように見えます。
CCMenuでスプライトをスケーリングする方法について誰か提案がありますか?
前もって感謝します。バズリック
cocos2d-iphone - CCMenuへのCCLayerの追加
CCLayerサブクラスをCCMenuに追加するにはどうすればよいですか?スイッチコントロールのようなCCLayerサブクラスがあり、CCMenuに含めたいと思います。
cocos2d-iphone - cocos2d-Menu のラベルがレイヤーに表示されるが、タッチしても反応しない
何が悪いのかわかりません。おそらく、より多くのレイヤーを使用しているためですか?
私の他のレイヤー (スライド メニュー グリッド サブクラスがタッチを盗んでいると思います...) // // BGLayer.m // MainProject // // NSSL1 によって 8/30/12 に作成されました。// Copyright (c) 2012 MyCompanyName . 全著作権所有。///
ios - CCMenuItem 背景色
Cocosbuttonクラスを使用して、シーンに追加されるボタンを作成しています。これにより、CCMenu 内の CCMenuItem に追加される CCSprite が作成されます。
init メソッドでは、背景が追加されます。
最後の行を追加してスプライトを CCMenuItem に追加すると、背景が黒くなります (スクリーンショットを参照)。CCSprite 背景画像のソースは透明度のある 8 ビットの .png ですが、なぜこの黒い背景が表示されるのかわかりません。
ios - ボタンの画像専用のボタンクリックを作成しますか?
私は奇妙で苛立たしい問題を抱えています。
たとえば、メインメニュー画面に「手順」というボタンがあります。
それをクリックすると、説明レイヤーにメインメニューに戻るボタンがあります。
ただし、何らかの理由で、ボタンの操作はスプライト画像に限定されません。[メニューに戻る]ボタンから3インチ離れたところをクリックしても、メインメニューに戻ります。
だから、私の質問は、実際の画像をクリックした場合にのみボタンがクリックされるようにするにはどうすればよいですか?(これが私がボタンを作成する方法です)
ios - Cocos2d:CCMenuItemの選択されたメソッドでセレクターを呼び出す
CCMenuItemSpriteの「selected」メソッドが呼び出されたときに、ターゲットセレクター(以下を参照: buttonPressedWithId:)を呼び出したいと思います。
CCMenuItemSpriteの実装を調べたところ、次のことがわかりました。
目標は、選択したメソッドでターゲットセレクターを呼び出すことです。そこで、initWithNormalSpriteメソッドを調べて、次のことを見つけました。
どういうわけか_block関数を呼び出す必要があると思いますが、その方法を理解するための良い例は見当たりません。また、* _block*が何であるかについてもよくわかりません:(。
ここで、CCMenuItemSpriteをサブクラス化し、この動作を変更する必要がありますか?もしそうなら、どうすればターゲットセレクターを呼び出すことができますか?
前もって感謝します :)
event-handling - cocos2dのモーダルレイヤーの下ですべてのCCTouchを停止するにはどうすればよいですか?
私のcocos2dゲームには、モーダルレイヤーを起動し、その下にあるすべてのものをロックするための[設定]ボタンがあります。これを行うには、すべてのCCMenuItemをロックするメニューステータスメソッドとカバーレイヤーを組み合わせて使用します。どちらも以下のコードにあります。
問題は、どちらのソリューションもCCScrollLayersでは機能しないように見えることです。ボタン(モーダルを起動する)をクリックしても、CCScrollLayerをスクロールできますが、これは私が望むものではありません。
そうしたいです:
- ボタンを押すと、すべてのタッチが無効になり、CCScrollLayersを含むすべての要素が無効になります
- モーダルを起動します(モーダルのみのタッチを許可します)
私はもう試した:
- タッチを使用して、
CCTargetedTouchDelegate
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
- 私はもう試した
self.isTouchEnabled = NO
モーダルを起動するレイヤー上
- CCScrollLayersで機能するようにメソッドを調整しようとしまし
MenuStatus
たが、機能しないようです。
何が間違っているのかわかりません。私のコードは次のとおりです。
cocos2d-iphone - CCMenuItemSpriteを含むCCMenuをspritebatchnodeに追加できますか?
CCMenuItemSpriteを含むCCMenuをspritebatchnodeに追加できますか?
それと同じくらい簡単です。
コードスニペット: