1. 程式人生 > >cocos2dx 3.x 給Sprite新增遮罩

cocos2dx 3.x 給Sprite新增遮罩

引言

程式截圖:

  有時候,你在做遊戲時,可能需要一種方式來顯示精靈的某一部分(就是新增遮罩啦)。

  一種方式就是使用另外一張圖片,叫做mask。你把mask圖片中間設定成白色,白色區域是被mask圖片的可見區域。之後這個白色區域會透明的。

  然後,你可以使用本教程提供的方法來把mask圖和原圖結合起來,然後建立如上圖所示的效果。

  你會發現本教程提供的方法非常方便,用它可以完成許多很有意思的效果。比如,把大頭貼,或者像框等等。所以這些內容,你都可以從本教程中學到!

  學習本教程的前提是你要熟悉cocos2d-x,如果你對cocos2d是何物還不清楚的話,建議你先學習一下其它cocos2d-x教程。   

Getting Started

  啟動terminal,執行"python /Cocos/cocos2d-x-3.0beta2/tools/project-creator/create_project.py"。把工程命名為MaskedCal,然後選擇一個資料夾來儲存,最後點Create。

  接下來,請下載本工程所需要的資原始檔並把它們拖到你的Xcode的Resource分組中,確保“Copy items into destination group’s folder (if needed)” 並複選中,然後點Finish。

  在開始編碼之前,讓我們先來一點爵士音樂。同時,由於這裡給的圖片是480x320的,為了適應各個解析度,這裡需要setDesignResolutionSize,方便在不同的裝置上顯示。就是告訴遊戲引擎,我是針對480x320畫素設計的,遇到其他解析度的裝置,勞駕你幫我自動調整。開啟AppDelegate.cpp,然後做如下修改:

1 2 3 4 5 6 7 8 9 10 11 12 13 <code class="language-cpp">// Add to top of file #include "SimpleAudioEngine.h" //At end of applicationDidFinishLaunching, //replace last 3 lines with the following 5 lines: CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic(
"TeaRoots.mp3", true); EGLView::getInstance()->setDesignResolutionSize(480, 320, ResolutionPolicy::NO_BORDER); auto scene = HelloWorld::sceneWithLastCalendar(0); director->runWithScene(scene); return true;</code>

  這裡播放一個由Kevin MacLeod製作的一首非常好聽的曲子,然後呼叫了一個新的方法來建立場景。

  接下來,開啟HelloWorldScene.h 並作下面修改:

1 2 3 4 5 6 7 <code class="language-cpp">// Add new instance variable static int calendarNum; //replace createScene methond static cocos2d::Scene* sceneWithLastCalendar(int lastCalendar); // Add an another create methond static cocos2d::Layer* layerWithLastCalendar(int

相關推薦

cocos2dx 3.x Sprite新增

引言 程式截圖:   有時候,你在做遊戲時,可能需要一種方式來顯示精靈的某一部分(就是新增遮罩啦)。   一種方式就是使用另外一張圖片,叫做mask。你把mask圖片中間設定成白色,白色區域是被mask圖片的可見區域。之後這個白色區域會透明的。   然後,你可

頁面新增和loading圖示

這裡有兩個層,一個loading層,一個overlay遮罩層。 然後需要用css來調整樣式。 js程式碼: function form_submit_overlay_loading(){ var loading = '<div id="form-submit-

cocos2dx 3.x 蒙板 點選圓功能

//註冊觸控 EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create(); listener->onTouchBegan = CC_CALLBACK_2(Hell

【轉】 cocos2dx 3.x C++搭建protobuf環境

person ccf binding csdn bind taf protoc -cp strlen http://blog.csdn.net/ganpengjin1/article/details/50964961 Cocos2dx 裏面在網絡遊戲通信這一塊一般我們都會采

iOS新增

新增遮罩層的原理是在一個可以操作的UIView下面有另一個UIView,下邊的UIView的作用是遮擋住頁面,使其無法進行操作,直到前一個介面的操作結束,然後直接將後一個UIView移除,程式碼如下: [UIView animateWithDuration:0.4 animations

div上新增層用於提示資訊

實現重點:背景div設定屬性position: relative;,遮罩層div設定屬性position: absolute;,背景屬性background,屬性bottom: 0;讓遮罩層div在背景div裡面。 <!DOCTYPE html> <html> &l

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

LayaAir 點陣圖新增與濾鏡

目錄 mask 遮罩 濾鏡 ColorFilter 顏色濾鏡 GlowFilter 發光濾鏡 BlurFilter 模糊濾鏡 mask 遮罩 laya.display.Sprite mask 屬性如下: mask : Sprite 遮罩,可

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

Easyui之Tabs轉化新增

Easyui中存在頁籤Tabs,通過頁籤可以將若干頁面集合到一起,但是當tab新增一個遠端介面的時候,如果頁面載入量較多,會出現長時間的等待,這就需要遮罩。 因為我的專案主要是在tab中新增conte

網頁提交時新增

// 表單提交遮罩 $(document).ready(function() { $("form").submit(function() { // 新增 GRAYLAYER.create("grayLayer-div"); window.onblur = fu

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

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

cocos2dx.3.x之重要類分析(1)——Ref

Ref ref類是cocos2dx引擎的基類 許多類都繼承於它 那麼為什麼呢? 我們先看看原始碼 class CC_DLL Ref { public:         void retain();     void release();     Ref* autorel