cocos2dx 3.x 蒙板 遮罩 點選圓功能
//註冊觸控 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++) { float radian = i * angel;//弧度 m_vPoint[i].x = radius * cosf(radian);//頂點X座標 m_vPoint[i].y = radius * sinf(radian);//頂點Y座標 } //繪製多邊形 //注意不要將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){ Size size = Director::getInstance()->getWinSize(); Vec2 location = touch->getLocation();//獲取點選的座標 float b = abs(location.x - size.width / 2);//獲取絕對值 float c = abs(location.y - size.height / 2);//座標x.y - 圓心x,y size/2是圓心. if (b <= 55.0f && c <= 55.0f) { log("dianjidaole");//小於55 點選到了圓 return true; } 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)
相關推薦
cocos2dx 3.x 蒙板 遮罩 點選圓功能
//註冊觸控 EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = CC_CALLBACK_2(Hell
cocos2dx-3.2(35) ClippingNode 遮罩
我的生活,我的點點滴滴!! 可以根據一個模板切割圖片的節點--ClippingNode。這個類提供了一種不規則切割圖片的方式,在這種方式以前,我們可以使用紋理類 自帶的setTextureRect函式來切割矩形區域,而新特性中提供的ClippingNode最大的不同之處就
egret 繪制蒙板遮罩倒計時
num UNC ddc splay radi 用法 pla math col 我們常看到技能圖標上面有一個灰色半透明的倒計時,這個怎麽做呢,下面請看代碼 1 /** 技能倒計時 */ 2 class SkillMask { 3 4 privat
cocos2dx 3.x 給Sprite新增遮罩
引言 程式截圖: 有時候,你在做遊戲時,可能需要一種方式來顯示精靈的某一部分(就是新增遮罩啦)。 一種方式就是使用另外一張圖片,叫做mask。你把mask圖片中間設定成白色,白色區域是被mask圖片的可見區域。之後這個白色區域會透明的。 然後,你可
cocos2dx 3.x 圖層點選滑鼠事件的遮蔽
場景:介面新增一個彈出層,阻止彈出層下面的滑鼠事件響應 auto sprite2 = Sprite::create("HelloWorld.png"); // sprite2為彈出層 sprite2->setPosition(Vec2(closeItem->g
【轉】 cocos2dx 3.x C++搭建protobuf環境
person ccf binding csdn bind taf protoc -cp strlen http://blog.csdn.net/ganpengjin1/article/details/50964961 Cocos2dx 裏面在網絡遊戲通信這一塊一般我們都會采
android隱藏虛擬導航欄-------cocos2dx 3.x
查到網上的說法 android 沉浸式狀態列, 百度百科。沉浸式就是要給使用者提供完全沉浸的體驗,使使用者有一種置身於虛擬世界之中的感覺。比如說現在大熱的VR就是主打的沉浸式體驗。 其實想實現的效果就是——————————–隱藏狀態列 一個Android應用程式的介面上其實是有很多
cocos2dx[3.x](3)——大鉅變3.x
cocos2d-x v3.0 釋出說明 原文地址https://github.com/fusijie/Cocos2dx-Release-Note/blob/master/cocos2d-x_v3.0_release_notes.md#%E7%8E%AF%E5%A
線性漸變實現蒙版遮罩
線性漸變、背景尺寸、定位、混合模式綜合實現蒙版遮罩 實現CSS3主要屬性: background: linear-gradient( dir, color1, color2,...); //先定義一個線型漸變 background-size: 400% 400%
Cocos2d-x 3.2 Lua示例 ClickAndMoveTest(點選移動測試)
--[[ ClickAndMoveTest.lua 點選與移動 ]]-- -- 獲取螢幕尺寸 local size = cc.Director:getInstance():getWinSize() local layer = nil -- 層 local kTagSprite = 1 --精靈標記 loc
cocos2dx 3.x版本多邊形剛體
//多邊形的點: Point verts1[] = { Point(-146.5f, 155.1f), Point(-146.5f, -87.6f),
cocos2dx 3.x 生成的exe 模擬器無法執行(黑屏)
修改 SimulatorWin::run() 方法 如下: // load project config from command line args vector<string> args; for (int i = 0; i < __a
Cocos2d-X 3.0 ControlButton的加入以及點選事件的實現
1、在.h中加入標頭檔案 #include "extensions/cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; 新增方法: void touchUpInside(Ref* pSender,Control::EventTy
cocos2dx 3.x 修改NDK_ROOT、ANDROID_SDK_ROOT、ANT_ROOT路徑
CMD到setup.py目錄 Python setup.py -h 檢視幫助: Options: -h,--help showthis help message and exit -n NDK_ROOT, --ndkroot=NDK_ROOT
cocos2dx-3.x學習筆記二:隨機數的生成及注意問題
cocos2dx-3.x提供了一個用於生成【0,1)之間浮點數的巨集定義CCRANDOM_0_1 1. 巨集定義說明 首先檢視原始碼,定位分析: 1 2 3 4 /** @def CCRANDOM_0_1 returns a random floa
Cocos2d-x 3.0開發(三)點選互動的四種處理
1、概述 遊戲也好,程式也好,只有能與使用者互動才有意義。手機上的互動大致可以分為兩部分:點選和輸入。其中點選更為重要,幾乎是遊戲中全部的互動。在Cocos2d-x 3.0中,更改了dispatc
Cocos2dx 3.x 中 Lua socket 和 node.js 利用scoket互相通訊讀寫二進位制資料
第一部分,Lua socket如何讀寫二進位制資料。 cocos2dx 3.x 版本已經集成了lua socket所以可以直接使用無需自己整合。首先需要初始化lua socket 如下: socket = require("socket"); tcp
六 cocos2dx(3.X)中使用shader
一 shader的基本概念 1 什麼是shader shader即著色器,就是專門用來渲染3D圖形的一種技術。 通過shader,可以自己編寫顯示卡渲染畫面的演算法,使畫面更漂亮、更逼真。 2 shader分類 shader又分兩種,一種是
windows下cocos2dx 3.x編譯安卓工程
軟體準備 jdkeclipse+adt(或者adt-bundle,本文就是)android-sdk(adt-bundle自帶)android-ndkant保險起見,都裝32位的 建立專案 用python建立cocos2dx 3.x的專案,參看:http://blog.
Cocos2dx-3.x觸控事件之實現人機互動(三)
今天講自定義事件和加速計事件 先在標頭檔案完成以下宣告 virtual void onExit(); // 為了移除ListenerCustom中的監聽器_listener EventListe