當前位置:編程學習大全網 - 編程語言 - Cocos Creator 實現畫板和橡皮擦(有背景)

Cocos Creator 實現畫板和橡皮擦(有背景)

CocosCreatorDrawing

Cocos Creator完成的壹個畫板

GitHub - Juefeiye/CocosCreatorDrawing: CocosCreator畫板 ?喜歡就star吧!!!

畫板最終實現效果

在cocos論壇裏面很多關於畫板橡皮擦的問題,特別是有背景的橡皮擦問題,都沒有什麽好的解決方案。?

找了很多資料和自己的摸索之後,最後有了這麽壹個帶有完整功能的畫板,下面來壹步步看怎麽實現的吧。

這裏使用的是RenderTexture來解決

首先創建好renderTexture,加入到node中來,因為renderTexture是cc的組件,所以我們只能用_sgnode來添加

接著我們在touch事件中去實現繪畫功能,這裏我使用的是drawNode方式,官方提供的Graphics還未找到橡皮擦方法。

這個時候基本的繪畫功能就實現了

這個是本次的重點。這個橡皮擦也是搞得我頭破血流的。

其實如果沒有背景,直接改成背景色線條就可以當橡皮擦用了,主要是需求要在有背景的情況下可以擦除,那麽來探索下吧!

資料翻了不少,只看到H5有canvas的壹些接口可以用,可是cocos怎麽用到這些接口呢,對應的壹些屬性怎麽取到呢。

不經意間我發現了canvas裏面的getContext()和壹個globalCompositeOperation屬性,這個屬性好像是解決h5橡皮擦的關鍵,那麽我在cocos裏面能找到這個屬性是不是就可以解決橡皮擦問題了。

首先,h5裏面是用canvas來繪畫的,cocos creator這裏用的是renderTexture,那麽這2者會不會有什麽關聯呢。果不其然,我在renderTexture下找到了這2個關鍵的屬性

有了這2個屬性之後,我們就可以開始幹活了!這裏的實現詳細可以看 HTML 5 canvas globalCompositeOperation 屬性

這裏要註意canvas坐標系和cocos的坐標系不壹樣

到這裏就解決了有背景的橡皮擦問題了,我們直接使用最底層的canvas。橡皮擦效果

其實畫板裏面還有貼紙功能,還帶用動效的貼紙,這個功能如果有需要的話再詳細解讀

GitHub - Juefeiye/CocosCreatorDrawing: CocosCreator畫板 ?喜歡就star吧!!!

  • 上一篇:linux取進程狀態編程linux取進程pid
  • 下一篇:2021廣州車展:50萬級豪華新能源車如何選 機甲龍對比ET7
  • copyright 2024編程學習大全網