您好,登錄后才能下訂單哦!
cocos2d-x 101次相遇 / 目錄
1 安裝和環境搭建 -xcode
2 Scenes , Director, Layers, Sprites
3 建立圖片菜單
4 在HelloWorld上--建立新場景
5 增加一個精靈sprite
5.1 縮小sprite并使之完整顯示
6 action ,移動sprite
7 3.0 的點擊事件,CCTouchDelegate已經停用了
8 使用觸摸事件移動 精靈
cocos2d-x 3.0 不再使用 TouchDelegate方式來將touch事件捆綁到sprite上。
新的方法是
auto listener =EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(CMyFirstScene::onTouchBegan,this);
listener->onTouchMoved = CC_CALLBACK_2(CMyFirstScene::onTouchMoved,this);
listener->onTouchEnded = CC_CALLBACK_2(CMyFirstScene::onTouchEnded,this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this);
這段代碼可以放在.cpp里面的 init里。
頭文件增加:
Sprite*s;
// 初始化
bool onTouchBegan(Touch* touch,Event*event);
void onTouchMoved(Touch* touch,Event*event);
void onTouchEnded(Touch* touch,Event*event);
void selectSpriteForTouch(Point touchLocation);
s 為全局的精靈。
boolCMyFirstScene::onTouchBegan(Touch* touch,Event*event)
{
CCLOG("TouchBegan");
Point touchLocation =this->convertTouchToNodeSpace(touch);
this->selectSpriteForTouch(touchLocation);
returntrue;
}
voidCMyFirstScene::onTouchMoved(Touch* touch,Event*event)
{
CCLOG("TouchMoved");
}
voidCMyFirstScene::onTouchEnded(Touch* touch,Event*event)
{
CCLOG("TouchEnded");
}
voidCMyFirstScene::selectSpriteForTouch(Point touchLocation)
{
if(s->getBoundingBox().containsPoint(touchLocation))
{
Action* actionMove =
MoveTo::create(2.0,
ccp(300,200));
s->runAction(actionMove);
}
}
這段代碼,點擊到精靈,精靈就會移動。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。