《完蛋!我被美女包围了》Cocos Creator 真人互动影像游戏实现思路!
引言
一、准备素材
1. 首先我们录制一下游戏中分蛋糕的名场面。
2. 然后把游戏录屏,拆分成几个小片段。
-
将蛋糕拿起来片段。 -
选择人物片段。 -
分别递给3个人物蛋糕的片段。 -
当然少不了自己吃的片段。
二、实现原理
1. 组件
cc.VideoPlayer
组件。然后通过在上面添加点击事件去做一些逻辑响应。
2. 遇到问题
无论我们怎么调整节点位置,发现cc.VideoPlayer
组件都是在界面的最上层,包括修改节点的zIndex
。
这样就没办法在视频上方添加 UI 或者一些局部点击事件。
3. 解决办法
cc.VideoPlayer
组件中的StayOnBottom
,这个设置是使cc.VideoPlayer
永远在游戏视图最底层。
Project Settings
-MarcoConfigurations
中勾选ENABLE_TRANSPARENT_CANVAS
。
boot.js
,找到resources\static\preview-templates
目录下的boot.js
文件。
打开boot.js
文件并且在cc.game.run
之前添加cc.macro.ENABLE_TRANSPARENT_CANVAS = true;
开启支持全透明。
Main Camera
中BackgroundColor
的透明度为0。
cc.VideoPlayer
组件之上添加 UI 或者实现局部点击事件了。
三、编写代码
VideoGame
组件包含了对组件VideoPlayer
的引用。同时创建一个cc.VideoClip[]
数据用于获取视频片段。
resourceType
:视频来源:REMOTE
表示远程视频 URL
,LOCAL
表示本地视频地址。
remoteURL
:远程视频的 URL
,resourceType
选择REMOTE
时生效。
clip
:本地视频剪辑,resourceType
选择LOCAL
时生效。
videoPlayerEvent
:视频播放回调函数,该回调函数会在特定情况被触发,比如播放中,暂时,停止和完成播放。
loop
:3.x的版本新增的循环属性,表示视频是否应在结束时再次播放。
isPlaying
:3.x版本将isPlaying修改成属性,表示当前视频是否正在播放,返回值为布尔类型。
play()
:开始播放,如果视频处于正在播放状态,将会重新开始播放视频,如果视频处于暂停状态,则会继续播放视频。
resume()
:继续播放。如果一个视频播放被暂停播放了,调用这个接口可以继续播放。
pause()
:暂停播放。
stop()
:停止播放。
四、编辑UI
1. 创建节点
VideoGame
节点,然后添加一个子节点videoBtnNode
和它的三个子节点video1
、video2
、video3
、video4
。
VideoGame
节点用于添加VideoGame
组件和cc.VideoPlayer
组件,四个子节点video1
、video2
、video3
、video4
用于点击选择人物。
2. 添加组件
VideoGame
节点添加编写好的VideoGame
组件和cc.VideoPlayer
组件。勾选StayOnBottom
,添加选择videoPlayerEvent
事件,添加VideoClips
视频片段。
video1
、video2
、video3
、video4
添加BlockInputEvents
用于拦截事件,防止向下传递。
五、效果演示
结语
评论