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遊戲
- Android:單機版的“你畫我猜”你敢信?(Path的使用)Android
- 原生JS實現你畫我猜的一點點功能JS
- 快速實現抖音的分享&登入(android)Android
- Android 動畫實現Android動畫
- Android技術分享|【自定義View】實現Material Design的Loading效果AndroidViewMaterial Design
- Android技術分享| Context淺析AndroidContext
- Android技術分享| 自定義LayoutManagerAndroid
- Android 動畫框架實現Android動畫框架
- Android技術分享| Activity 過渡動畫 — 讓切換更加炫酷Android動畫
- 愛奇藝 Android PLT hook 技術分享AndroidHook
- Android技術分享| 自定義ViewGroup實現直播間大小屏無縫切換AndroidView
- Android技術棧(四)Android Jetpack MVVM 完全實踐AndroidJetpackMVVM
- Android日常學習:Android Hook技術小實踐AndroidHook
- Android動畫實現繪製原理Android動畫
- Android分享一些我平時逛的一些技術社群Android
- Android技術分享 | 一行程式碼實現螢幕、聲音採集Android行程
- Android技術棧(三)依賴注入技術的探討與實現Android依賴注入
- 開源元件DoraemonKit之Android版本技術實現(二)元件Android
- 開源元件DoraemonKit之Android版本技術實現(一)元件Android
- web技術分享| 快速實現一個呼叫邀請 SDKWeb
- 開源demo| 你畫我猜——讓你的生活更有趣
- MATLAB 簡易版 你畫我猜小遊戲Matlab遊戲
- SAP OData offline store在Android平臺的技術實現Android
- 【Android】 給我一個Path,還你一個動畫ViewAndroid動畫View
- Android技術分享| Android 中部分記憶體洩漏示例及解決方案Android記憶體
- Android技術分享| 安卓3行程式碼,實現整套音視訊通話功能Android安卓行程
- Android持久化技術Android持久化
- Android——Activity切換炫酷動畫實現Android動畫
- Android技術分享| 視訊通話開發流程(一)Android
- Android技術分享| Bugly 應用升級自定義UIAndroidUI
- Android技術分享| 視訊通話開發流程(二)Android
- 我所經歷的Android面試|掘金技術徵文Android面試
- Android元件化demo實現以及遇坑分享Android元件化
- Android 技術的下半場Android
- 快速實現android版抖音主介面的心得Android
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- Android技術分享|【Android踩坑】懷疑人生,主執行緒修改UI也會崩潰?Android執行緒UI