Android技術分享| 【你畫我猜】Android 快速實現
以你畫我猜為代表的益智類遊戲,已經逐漸成為社交新寵。使用者在遊戲過程中,根據題目線索,發揮自身的想象力。使用者之間理解偏差的遊戲過程中,拉近使用者間的距離。
因而,一個優質的線上你畫我猜平臺,除了最佳化遊戲設定、遊戲規則外,還需要不斷提升畫板的實收互動質量,讓線上使用者獲得如線下玩家一般的流暢體驗。
### 如何快速做一款你畫我猜遊戲
你畫我猜的益智類遊戲,除了畫板,還要配合IM以及實收音影片,三者相互配合。除了互動外,你猜我畫題目也是遊戲好玩的關鍵。
- **畫板功能:** 利用 anyRTC ARBoard SDK ,便能輕鬆實現多人實時畫板協同
- **IM聊天功能:** 題目的提示以及揭示答案還有互動間裡訊息聊天,我們也利用anyRTC RTM 去完成,該庫屬於輕量級IM 庫,庫比較小,傳送訊息和接收訊息都比較簡單
- **實時音影片通訊:** 使用anyRTC RTC SDK,配合變聲、美聲、混音等功能,讓聊天更有趣
- **你猜我畫題庫:** 需要用業務服務做題目庫,玩家來選擇題目,好玩的題目也可以付費讓玩家購買;畫猜的規則也需要配合 IM 精準同步
總和上述關鍵功能點,便能快速做出一塊你畫我猜遊戲了,由於畫猜題庫需要服務端配合,下面給大家演示的demo中,只做了畫畫功能,題目這塊略去,相信開發者可以自行實現。
### 效果展示
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/cf25b7e87571440d9e121b2c5250c070.gif#pic_center)
### 功能描述
- **許可權繪畫:** 進入房間,透過RTM的頻道屬性來標記當前房間哪位玩家在畫畫,以及對應的許可權
- **畫畫功能:** 畫筆粗細,畫板顏色修改,畫筆撤銷,清空畫板以及對畫板截圖,這些都是你畫我猜的基礎功能
- **訊息聊天:** 基本的IM訊息聊天功能,顏色如何收發訊息
- **語音實時互動:** 真實的場景中有觀眾以及麥上玩家,本demo做為演示demo,也是使用的直播模式,只不過預設上麥,真實開發當中切換角色,只需要呼叫一句程式碼即可,可以在demo中找到
### 跑通demo
實現步驟如下:
* 在`app/build.gradle`中新增依賴:
```Groovy
dependencies {
...
// 白板
implementation 'io.anyrtc:ARBoard:1.0.0.2'
}
```
* 白板初始化相關API
白板初始化會用到4個類:`ARBoardAuthParam`、`ARBoardBaseParam`、`ARBoardKit`以及`ARBoardHandler`
`ARBoardHandler`為事件通知類,需使用者繼承及實現
`ARBoardKit`為控制類,透過`ARBoardKit`控制白板
`ARBoardAuthParam`負責傳遞APP_ID、token及uid
`ARBoardBaseParam`負責傳遞白板初始化配置,其架構如下:
- ARBoardBaseParam.ARBoardInitConfig
- String ratio //比例,如1:1、16:9
- int scale //取值100~300,100=1倍
- ARBoardToolType toolType //畫筆型別,預設為PEN
- ARBoardBaseParam.ARBoardInitStyleConfig
- ARBoardTextStyle textStyle //取值:bold,italic,bold_italic,normal,預設normal
- int textSize //文字大小(設定ARBoardToolType為文字時生效)
- String textColor //文字顏色
- String brushColor //畫筆顏色
- int brushThin //畫筆粗細
- String globalBackgroundColor //畫板可以分頁,此屬性可設定每一頁的預設顏色
- String selectBoxColor
- ARBoardBaseParam.ARBoardInitAuthConfig
- boolean drawEnable //畫板是否可以繪製,預設true
- String progressBarUrl //載入畫板時的loading圖,支援gif、jpg、png、base64、http、https
- boolean progressEnable //此屬性為false時不展示loading效果。為true時,progressBarUrl不為空展示Url內容,否則展示預設效果
* 初始化白板
```Kotlin
// 初始化白板
// 初始化ARBoardAuthParam物件,傳入APP ID、token、uid
val authConfig = ARBoardAuthParam(appId, "", uid)
// 在baseParams中定義初始值,如白板比例(radio),畫筆粗細、顏色等
val baseParams = ARBoardBaseParam()
baseParams.authConfig.progressEnable = false
baseParams.config.ratio = "1:1"
baseParams.styleConfig.run {
brushThin = 2
brushColor = "#FF0000"
}
// 建立Kit並將白板View新增到佈局中
kit = ARBoardKit(this, authConfig, roomId, baseParams, MyBoardHandler())
val boardView = kit.arBoardView
binding.boardParent.addView(boardView)
...
```
除了實現畫板,還能順帶實現即時通訊、音影片聊天功能,具體的音影片實現可以參考我們往期文章~
如果您也想擁有如此方便的畫板,請參考以下資料:
> **專案地址:[]()**<br>
> 白板Demo[]()<br>
> 白板API文件[]()
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/82349259c18847da889cb06067a26c75.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYW55UlRD,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013909/viewspace-2859966/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IOS技術分享| 你畫我猜小遊戲快速實現iOS遊戲
- Cocos Creator 實現畫板(你畫我猜)
- Android:單機版的“你畫我猜”你敢信?(Path的使用)Android
- 原生JS實現你畫我猜的一點點功能JS
- 快速實現抖音的分享&登入(android)Android
- Android技術分享| 自定義LayoutManagerAndroid
- 愛奇藝 Android PLT hook 技術分享AndroidHook
- MATLAB 簡易版 你畫我猜小遊戲Matlab遊戲
- 社交畫圖遊戲《你畫我猜》下載量突破5000萬遊戲
- 開源demo| 你畫我猜——讓你的生活更有趣
- 【漫畫技術】Android跨程式通訊Android
- Android技術分享| Context淺析AndroidContext
- 學會這幾招,你就能快速掌握Android開發技術!Android
- Android實現快速高斯模糊Android
- web技術分享| 快速實現一個呼叫邀請 SDKWeb
- Android換膚實現技術思路總結Android
- Android技術分享|【自定義View】實現Material Design的Loading效果AndroidViewMaterial Design
- Android分享一些我平時逛的一些技術社群Android
- Android技術分享| 自定義ViewGroup實現直播間大小屏無縫切換AndroidView
- Android技術分享 | 一行程式碼實現螢幕、聲音採集Android行程
- Android技術棧(三)依賴注入技術的探討與實現Android依賴注入
- Android Binder漏洞挖掘技術與案例分享(下)Android
- Android Binder漏洞挖掘技術與案例分享(上)Android
- Canvas+Socket搞出一個多人遊玩的“我畫你猜”Canvas
- Vue+WebSocket+ES6+Canvas 製作【你畫我猜】小遊戲VueWebCanvas遊戲
- Android技術分享| 安卓3行程式碼,實現整套音視訊通話功能Android安卓行程
- 【漫畫技術】揭祕Android事件分發機制Android事件
- 開源元件DoraemonKit之Android版本技術實現(二)元件Android
- 開源元件DoraemonKit之Android版本技術實現(一)元件Android
- Android github 快速實現多人協作AndroidGithub
- Android快速實現微信支付(真的!很快!)Android
- Android 快速實現微信支付(真的!很快!)Android
- Android日常學習:Android Hook技術小實踐AndroidHook
- Android技術棧(四)Android Jetpack MVVM 完全實踐AndroidJetpackMVVM
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- Android模似打電話程式實現 - Android移動開發技術文章Android移動開發
- canvas+websocket+vue做一個完整的你畫我猜小遊戲CanvasWebVue遊戲
- 【Bugly安卓開發乾貨分享】Android APP 快速 Pad 化實現安卓AndroidAPP