6
votes

Détecter contact cocos2d-x

J'utilise CocOS2D-X et j'essaie de détecter des touches dans mon projet Helloworld. Bien que je n'ai pas de chance.

.h xxx

.ccp xxx

mais la chose est que Lorsque je clique sur l'écran "Ceci" ne se présente jamais dans le journal. Qu'est-ce que je manque ici?

Merci!

Modifier,

IM en utilisant ce didacticiel. http://www.raywenderlich.com/11338/cocos2d-x- for-ios-and-android-game-jeu


0 commentaires

6 Réponses :


20
votes

Vous devez vous enregistrer avec CCTOUCHDISPATCHER afin de recevoir des touches:

Écrivez ceci dans votre init () code> méthode afin de recevoir des touches: p>

CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);


5 commentaires

Hmmm I Obtenir l'erreur Aucun membre nommé 'SharedDispatcher' dans 'Cocos2D :: Dispatcher CCTouch' Quand je l'ajoute à mon init (), à helloworld.cpp


@JamesDunay: Quelle version Cocos utilisez-vous?


Alors maintenant, je reçois l'erreur, assertion a échoué: (FALSE), fonction CCTOUCHBEGAN, Fichier / iPhone / Eyes / Yeux / Yeux / Yeux C ++ / Libs / Cocos2DX / Cocos2DX / CiCOS2DX / COCOS2DX / COCOSS_SCENES_CP P, LIGNE 292. < / code>


J'ai posté le didacticiel que j'utilise et cela ne semble pas mentionner aucun gettouchdispatcher ou ccTouchdispatcher , mais je suis capable de vous connecter des résultats dans sa méthode


Êtes-vous responsable de supprimer le délégué ciblé lorsque le calque est supprimé?



8
votes

Alors quelque chose de super simple, il suffit d'ajouter

this-> setTistouchenabled (true);

à mon init (); fonction.


0 commentaires

2
votes
'this' never shows up in the log
hints You might be using a different version of Cocos2D library. Please go to cocos2d.h on your project and confirm. (the sample was written on 1.0.1). If you are on a different version, (guessing) you might have to use different ccTouchesBegan signature and/or fix more than just setIsTouchEnabled to make it work. I just downloaded the sample, and the ccTouchesBegan call works perfect - without any changes.

0 commentaires

0
votes

this-> setouchenabled (true); fonctionne mieux que CCTOUCHDISPATCHER :: SharedDisPatcher () -> AddTtargetedDelegate (Ceci, 0, True); Malheureusement, mon CCTouchMoved n'est pas Choisir n'importe quoi ...: (


0 commentaires

0
votes

pour cocos2d-x v3.0 ..

Écrivez ceci dans votre fichier ".h" p> xxx pré>

écrire ceci dans votre "code> init () 'fonction code> .. p> xxx pré>

et écrivez ceci dans "CPPP". P>

bool "YOURCLASSNAME"::onTouchBegan(cocos2d::Touch* touch, cocos2dEvent* event)
{   
        CCLOG("this");
             return true;
}


0 commentaires

0
votes

ici dans la méthode ci-dessous, j'applique Touch sur Sprite, si vous souhaitez appliquer l'événement tactile sur Textfield, le nœud, l'arrière-plan ou dans n'importe quel composant, transmettez ce composantype dans cette méthode et il fonctionnera ....

Ok commence !!!! xxx

ici La cible est votre composant, où vous souhaitez appliquer le toucher sur celui-ci

N'oubliez pas de Appelez cette méthode de CTOR ou n'importe où en fonction de votre exigence


0 commentaires