IOS技術分享| 你畫我猜小遊戲快速實現
1:實現多端實時互動白板,這裡使用anyRTC 互動白板SDK
2:你畫我猜題目服務,本demo演示如何一個人畫,多人看猜,本demo省略該服務
3:答案提示/公佈,該功能需要IM支援,這裡使用anyRTC 實時訊息 SDK 來實現
4:多人語音交流,該功能需要音影片方案,這裡使用anyRTC 音影片SDK來實現
Demo 整體效果
跑通Demo
-
-
配置開發者資訊:找到 AppID.swift 檔案並配置 AppID
-
找到專案根目錄執行:pod install,載入demo依賴庫
-
連線真機跑通demo
專案原始碼分析
|-- GuessDraw |-- Podfile //Pod配置項 |-- ARDrawDemo | |-- ARBoard.framework //白板SDK | |-- Base | | |-- ARKeyboardInputViewController.swift // 聊天輸入框 | | |-- AppDelegate.swift // 程式入口 | | |-- SceneDelegate.swift | | |-- ViewController.swift // 主頁面 | |-- Board | | |-- ARBoardViewController.swift // 你猜我畫控制器 | | |-- ARChatViewController.swift // 聊天訊息控制器 | | |-- View | | |-- ARSelectedView.swift // 選擇器頁面 | |-- Common | |-- ARExtension.swift // 擴充 | |-- AppID.swift // 開發者資訊配置 |-- Pods
實現細節
-
初始化白板
let authParam = ARBoardAuthParam ()
// 開發者資訊配置
authParam .appId = AppID
// 標識使用者ID
authParam .uid = getUid ()
let baseParam = ARBoardBaseParam ()
// 預設不可編輯
baseParam .authConfig.drawEnable = false
// 白板的寬高比例為1:1
baseParam .config.ratio = "1:1"
// 白板畫筆顏色為紅色
baseParam .styleConfig.brushColor = UIColor .red
// 白板畫筆粗細為2
baseParam .styleConfig.brushThin = 2
// 初始化白板
boradKit = ARBoardKit ( authParam : authParam , roomId : self .roomId , boardParam : baseParam , delegate : self )
// 畫板View
boardView = boradKit .getBoardRenderView ()
-
初始化 IM 聊天
// 初始化RTM
rtmKit = ARtmKit ( appId : AppID , delegate : self ) !
// 登入RTM
rtmKit .login ( byToken : nil , user : getUid ()) { [ weak self ]
errorCode in
guard let weakself = self else { return }
// 建立訊息頻道
weakself .rtmChannel = weakself .rtmKit.createChannel ( withId : weakself .roomId , delegate : self )
// 加入頻道
weakself .rtmChannel ? .join ( completion : { code in
// 加入頻道成功
if code == .channelErrorOk {
weakself .joinChannel = true
// 獲取頻道屬性
weakself .getChannelAttributes ()
}
})
}
-
初始化語音聊天
// 初始化
rtcKit = ARtcEngineKit .sharedEngine ( withAppId : AppID , delegate : self )
// 設定頻道屬性為直播模式
rtcKit .setChannelProfile ( .liveBroadcasting )
// 設定角色為主播,加入頻道後自動上麥
rtcKit .setClientRole ( .broadcaster )
// 設定音訊屬性,使用媒體模式
rtcKit .setAudioProfile ( .musicStandard , scenario : .gameStreaming )
// 加入頻道
rtcKit .joinChannel ( byToken : nil , channelId : self .roomId , uid : getUid ()) { channel , uid , elapsed in
// 加入成功
}
-
是否有繪畫許可權
使用 RTM 頻道屬性來確定繪畫
獲取許可權
let options = ARtmChannelAttributeOptions ()
// 頻道屬性更改是否要通知頻道內的使用者
options .enableNotificationToChannelMembers = true
// 頻道屬性
let attribute : ARtmChannelAttribute = ARtmChannelAttribute ()
attribute .key = ARKeyChannel
attribute .value = randomString ( length : 9 )
// 新增或者更新頻道
rtmKit .addOrUpdateChannel ( self .roomId , attributes : [ attribute ], options : options ) { errorCode in
if errorCode == .attributeOperationErrorOk {
}
}
釋放許可權
let option : ARtmChannelAttributeOptions = ARtmChannelAttributeOptions ()
option .enableNotificationToChannelMembers = true
rtmKit .deleteChannel ( self .roomId , attributesByKeys : [ ARKeyChannel ], options : option ) { erroCode in
}
監聽頻道屬性變化
監聽頻道屬性變化,進行頁面佈局更改
// 頻道屬性更新回撥
func channel ( _ channel : ARtmChannel , attributeUpdate attributes : [ ARtmChannelAttribute ]) {
// 狀態更改
changeStateWithAtt ( attributes : attributes )
}
總結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013909/viewspace-2856930/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android技術分享| 【你畫我猜】Android 快速實現Android
- MATLAB 簡易版 你畫我猜小遊戲Matlab遊戲
- Cocos 技術派:實時競技小遊戲技術實現分享遊戲
- Vue+WebSocket+ES6+Canvas 製作【你畫我猜】小遊戲VueWebCanvas遊戲
- canvas+websocket+vue做一個完整的你畫我猜小遊戲CanvasWebVue遊戲
- linux實現猜數字小遊戲Linux遊戲
- 用 Java 做個“你畫手機猜”的小遊戲Java遊戲
- 原生JS實現你畫我猜的一點點功能JS
- IOS技術分享| iOS快速生成開發文件(一)iOS
- IOS技術分享| iOS快速生成開發文件(二)iOS
- 猜數字小遊戲遊戲
- 【Java基礎教程】用Java實現猜數字小遊戲Java遊戲
- Google首款小程式「猜畫小歌」用了哪些AI相關技術?GoAI
- Canvas+Socket搞出一個多人遊玩的“我畫你猜”Canvas
- 成語猜謎語/天天樂消除遊戲系統開發/小程式遊戲/技術詳情遊戲
- python實現簡單猜單詞遊戲Python遊戲
- LeetCode 299 猜數字遊戲 Java實現LeetCode遊戲Java
- C語言實現的一個簡單的猜數小遊戲C語言遊戲
- Soap Cutting登頂iOS美國遊戲榜 Carzy Labs 分享小遊戲霸榜之術iOS遊戲
- web技術分享| 快速實現一個呼叫邀請 SDKWeb
- 開源demo| 你畫我猜——讓你的生活更有趣
- 技術分享| 小程式實現音視訊通話
- 雜湊競猜遊戲系統開發技術丨雜湊競猜遊戲開發原始碼部署遊戲開發原始碼
- 遊戲侵蝕現實:產業的成熟,讓遊戲技術跨入現實遊戲產業
- IOS技術分享| 快對講2.0會議場景實現iOS
- 孔明猜成語/系統技術開發/猜謎語遊戲原始碼部署/案例遊戲原始碼
- 雜湊競猜遊戲系統開發DAPP丨雜湊競猜遊戲開發技術程式碼示例APP遊戲開發
- hash雜湊競猜遊戲開發模式丨雜湊遊戲競猜玩法系統開發技術功能遊戲開發模式
- 小遊戲群聊分享又有新套路,小程式實現全面佈局遊戲
- 雜湊遊戲競猜開發穩定版,雜湊遊戲競猜系統開發技術詳情及案例,雜湊遊戲競猜原始碼部署遊戲原始碼
- pyqt5例項——pycharm實現猜數遊戲QTPyCharm遊戲
- Android:單機版的“你畫我猜”你敢信?(Path的使用)Android
- 區塊雜湊競猜遊戲系統開發技術分析遊戲
- Taro下利用Decorator快速實現小程式分享
- 雜湊遊戲系統技術開發丨雜湊單雙競猜遊戲原始碼丨雜湊遊戲程式設計技術遊戲原始碼程式設計
- 「猜畫小歌」召喚靈魂畫手,請開始你的表演
- 關於Hash競猜遊戲開發技術方案丨雜湊競猜遊戲系統開發邏輯(原始碼部署)遊戲開發原始碼
- 競猜雜湊遊戲系統開發程式碼詳情丨競猜hash雜湊遊戲開發技術詳情遊戲開發