//註冊觸控
eventlistenertouchonebyone *listener = eventlistenertouchonebyone::create();
listener->ontouchbegan = cc_callback_2(helloworld::ontouchbegan,this);
listener->ontouchmoved = cc_callback_2(helloworld::ontouchmoved,this);
listener->ontouchended = cc_callback_2(helloworld::ontouchended,this);
listener->setswallowtouches(true);
_eventdispatcher->addeventlistenerwithscenegraphpriority(listener, this);
//建立乙個遮罩
layercolor *m_plyaercolor = layercolor::create(ccc4(0, 0, 0, 110));
//建立剪裁節點
clippingnode *pclip = clippingnode::create();
pclip->setinverted(true);//是否反向,true 圓是透明,其他是黑, false 圓是黑,其他透明
addchild(pclip);
//將遮罩新增到裁剪節點上
pclip->addchild(m_plyaercolor);
//繪製圓區域
//設定引數
cccolor4f red = ccc4f(1, 0, 0, 1);
float radius = 55.0f;//圓的半徑
const int pcount = 200;//頂點數,將圓看成是200邊型
float angel = 2.0f * (float)m_pi / pcount;//兩個頂點與中心的夾角(弧度)
point m_vpoint[pcount];
for (int i = 0; i < pcount; i++)
//繪製多邊形
//注意不要將pstencil addchild
drawnode *pstencil = drawnode::create();
pstencil->drawpolygon(m_vpoint, pcount, red, 0, red);//繪製這個多邊型
pstencil->setposition(vec2(visiblesize.width /2 , visiblesize.height /2));
//將這個圓形從裁剪節點上面摳出來, stencil是模版的意思
pclip->setstencil(pstencil);
bool helloworld::ontouchbegan(touch *touch, event *event)
log("meiyou");
return false;
}
local stencil= cc.sprite:create('res/mark.png')
local c_node = cc.clippingnode:create()
c_node:setstencil(stencil)
c_node:setinverted(false)
c_node:setalphathreshold(0)
local sp = cc.sprite:create('res/di.png')
c_node:addchild(sp)
layer:addchild(c_node)
c_node:setposition(origin.x+visiblesize.width/2,origin.y+visiblesize.height/2)
cocos2d x 3 x 觸控響應
3.x需要自己註冊監聽事件。有兩種方式,乙個是用c 的bind繫結自定義函式,cocos2d x封裝了一下,提供了介面 cc callback 數字,數字代表引數個數。eventlistener需要兩個引數 touch 和 event 所以這裡使用的是cc callback 2 auto dispa...
cocos2d x 3 x記憶體管理
記憶體管理有ref提供的4個方法 void retain 將該物件的引用計數器 1 void release 將該物件的引用計數器 1 ref autorelease 不改變物件的引用計數器值,將物件新增到自動釋放池,返回物件本身 unsigned int getreferencecount con...
Cocos2dx 3 x多點觸控問題
首先,這並不是什麼教程。只是今天折騰了一天的乙個比較傻的問題。3.x的eventlistener想必各位已經都會了。toucheventallatonce是多點觸控,但幾乎沒什麼人用過。用法不難,但是很多人和我一樣卡在了無論怎麼搞touches的數量都只有一,換句話說,就是死活單點觸控。搜了很多論壇...