0

から継承するBalloonクラス(これCCSpriteを参照)があります。balloonSpeedとのようなプロパティを指定しましたballoonStrength。でも、問題があるようです。

私がやりたいのは、Balloonクラスのインスタンスを作成するときに、次のことを実行することです。

  • テクスチャ(バルーンのPNGファイル)を付けます。
  • balloonSpeedおよびのようなプロパティを設定しますballoonStrength
  • アクションを追加して移動させ、タッチ入力を受け入れます。

オブジェクトがタッチされたとき、私はしたい:

  • タップ数=の場合にカウントしballoonStrengthます。もしそうなら、バルーンを破壊します。

私はこれのより単純なバージョンを実行しましたBalloon。オブジェクトに触れるとオブジェクトが破壊されます。ここでOOPとカスタムクラスを適用したいのですが、正しい方法が得られないようです。

前もって感謝します。

4

1 に答える 1

1

その場合、hファイルは次のようになります。

#include "cocos2d.h"
using namespace cocos2d;

class Balloon : public cocos2d::CCSprite, public CCTargetedTouchDelegate {
public:
float balloonSpeed;
int balloonStrength;
int numberOfTaps;
virtual void onEnter();
virtual void onExit();
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);
}; 

そしてあなたのタッチ方法で:

bool Balloon::ccTouchBegan(CCTouch* touch, CCEvent* event){
    CCPoint touchLocation = this->getParent()->convertTouchToNodeSpace(touch);
    if (CCRect::CCRectContainsPoint(this->boundingBox(), touchLocation)) {
        this->numberOfTaps++;
        if(this->balloonStrength == this->numberOfTaps){ 
            this->removeFromParentAndCleanup(true);
        }
    }

    return true;
}

以下のように、blueBalloonをレイヤーまたはノードの子として追加した後に使用できます。

blueBalloon->balloonSpeed = 2.0f;
blueBalloon->numberOfTaps = 0;
blueBalloon->balloonStrength = 5;
于 2012-08-02T23:15:36.053 に答える