我被美女包围了Cocos源码?

news2024/11/25 3:27:26

点击上方亿元程序员+关注和星标

模拟游戏画面,仅供学习和交流,侵删

引言

大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。

近期,国产真人恋爱影视游戏**《完蛋!我被美女包围了》连续多日荣登Steam国区畅销榜首**。这款游戏力压了一众热门免费游戏,如《PUBG》、《CS2》和《Apex》,稳居国区畅销榜首

体验一下游戏,但是花钱是不可能花钱的,于是我用Cocos做了一个Demo实现真人互动影像游戏

本文源码和源工程在文末获取,小伙伴们自行前往。仅供学习与交流,请勿用作其他用途。

1.准备素材

1.首先我们录制一下游戏中分蛋糕的名场面。

游戏截屏,仅供学习和交流,侵删

2.然后把游戏录屏拆分成几个小片段。

其中包括:

1.将蛋糕拿起来片段。

2.选择人物片段。

3.分别递给3个人物蛋糕的片段。

游戏录屏,仅供学习和交流,侵删

下面我们先看看实现原理

2.实现原理

1.组件

要想用Cocos实现真人互动影像游戏,我们可以利用Cocos的cc.VideoPlayer组件。然后通过在上面添加点击事件去做一些逻辑响应

官方API文档截图

2.遇到问题

无论我们怎么调整节点位置,发现cc.VideoPlayer组件都是在界面的最上层,包括修改节点的zIndex。这样没办法在视频上方添加UI或者一些局部点击事件。

遇到问题

3.解决办法

首先要勾选cc.VideoPlayer组件中的StayOnBottom,这个设置是保证cc.VideoPlayer组件置于最底部。

StayOnBottom

然后Cocos2.X版本需要在Cocos安装目录中搜索boot.js,找到resources\static\preview-templates目录下的boot.js文件。

boot.js

打开boot.js文件并且在cc.game.run之前添加cc.macro.ENABLE_TRANSPARENT_CANVAS = true;开启支持全透明。

cc.macro.ENABLE_TRANSPARENT_CANVAS = true

Cocos3.X版本可以直接在项目设置-MarcoConfigurations中勾选ENABLE_TRANSPARENT_CANVAS

ENABLE_TRANSPARENT_CANVAS

最后修改主摄像机Main CameraBackgroundColor的透明度为0。

BackgroundColor

这样就可以实现在cc.VideoPlayer组件之上添加UI或者局部点击事件了。

2.编写代码

创建一个VideoGame组件继承cc.VideoPlayer。同时创建一个cc.VideoClip[]数据用于获取视频片段。

VideoGame

1.核心属性包括:

1.resourceType:视频来源:REMOTE 表示远程视频 URLLOCAL 表示本地视频地址。

2.remoteURL:远程视频的 URLresourceType选择REMOTE时生效。

3.clip:本地视频剪辑,resourceType选择LOCAL时生效。

4.videoPlayerEvent:视频播放回调函数,该回调函数会在特定情况被触发,比如播放中,暂时,停止和完成播放。

5.其他的一些属性大家可以自行查阅。

核心属性

2.核心方法包括:

1.play():如果视频被暂停播放了,调用这个接口可以继续播放。如果视频被停止播放了,调用这个接口可以从头开始播放。

2.isPlaying():判断当前视频是否处于播放状态 。

3.stop():如果一个视频正在播放,调用这个接口可以立马停止播放。

4.其他的一些方法大家可以自行查阅。

核心方法

3.编辑UI

1.创建节点

首先我们先创建个VideoGame节点,然后添加一个子节点videoBtnNode和它的三个子节点video1video2video3

其中VideoGame节点用于添加cc.VideoPlayer组件,三个子节点video1video2video3用于点击选择人物。

节点

2.添加组件

首先给VideoGame节点添加编写好的VideoGame组件。勾选StayOnBottom,添加选择videoPlayerEvent事件,添加VideoClips视频片段。

VideoGame

给参与点击的三个子节点video1video2video3添加BlockInputEvents用于拦截事件,防止向下传递。

BlockInputEvents

3.效果演示

点击开始播放拿蛋糕画面。

模拟游戏画面,仅供学习和交流,侵删

然后切换到人物选择画面。

模拟游戏画面,仅供学习和交流,侵删

给蛋糕郑梓妍。

模拟游戏画面,仅供学习和交流,侵删

给蛋糕肖鹿。

模拟游戏画面,仅供学习和交流,侵删

给蛋糕李云思。

模拟游戏画面,仅供学习和交流,侵删

结语

本文仅供娱乐参考学习,生活虽苦,但是也要时常整活。

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

和8年游戏主程一起学习设计模式

8年主程手把手打造Cocos独立游戏开发框架

从零开始开发贪吃蛇小游戏到上线系列

游戏开发的技巧、心得、资讯

本文源码和源工程可通过阅读原文获取

点击下方绿色按钮+关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬件加速器及其深度神经网络模型的性能指标理解

前言: 现如今,深度神经网络模型和硬件加速器,如GPU、TPU等的关系可谓是“不分彼此”,随着模型参数的增加,硬件加速器成为了训练、推理深度神经网络不可或缺的一个工具,而近年来硬件加速器的发展也得益于加速…

人工智能基础_机器学习014_BGD批量梯度下降公式更新_进一步推导_SGD随机梯度下降和MBGD小批量梯度下降公式进一步推导---人工智能工作笔记0054

然后我们先来看BGD批量梯度下降,可以看到这里,其实这个公式来源于 梯度下降的公式对吧,其实就是对原始梯度下降公式求偏导以后的梯度下降公式,然后 使用所有样本进行梯度下降得来的,可以看到* 1/n 其实就是求了一个平均数对吧.所有样本的平均数. 然后我们看,我们这里* 1/n那么…

不一样的编程方式 —— 协程(设计原理与汇编实现)

主要通过以下9个方面来了解协程的原理: 目录 1、为什么使用协程 1.3、协程的适用场景 2、协程的原语操作 3、协程的切换 3.1、汇编实现 4.协程的运行流程 5.协程的结构体定义(我们其实可以参照线程或者进程的状态来设计) 5.1、多状态集合设计 6.协程的调度…

阿里云2023年双11大促活动优惠券领取与使用及特惠云服务器产品购买规则汇总

2023年阿里云双11大促活动正在火热进行中,今年的双11活动还是延续了去年金秋云创季的活动名称,对于大部分用户来说,最为关心的是活动优惠券与云服务器的优惠政策,在我们领取双11优惠券和购买双11活动云服务器的时候,应…

ubuntu无网络连接,没有网络标识,快速解决方法

在这里插入代码片当我们装虚拟机的时候,需要用到网络时发现没有网络连接,且右上角没有网络标识符,这时只需要简单的输入一下三个命令即可 sudo nmcli networking offsudo nmcli networking onsudo service network-manager restart然后重启客…

泛微e-office系统存在SQL注入漏洞

泛微e-office系统存在SQL注入漏洞 一、泛微简介二、漏洞描述三、影响版本四、fofa查询语句五、漏洞复现 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使…

年度评选开启,边缘力量驱动科技未来!

随着人工智能技术的快速发展,边缘计算作为一种新兴技术,正逐渐成为实现智能制造、智慧城市、自动驾驶等领域的关键技术之一。边缘计算能够在靠近数据源的地方进行数据处理和分析,从而提高数据的实时性和可靠性,同时降低网络带宽和…

【Linux】vim 使用

目录 一,vim 与 vi 1,vim 的基本概念 二,vim 的基本操作 三,vim 正常模式命令集 1,插入模式 2,从插入模式或者底行模式切换为命令模式 3,移动光标 4,删除文字 5&#xff0…

Mitsuba 3多视角渲染简明教程

Mitsuba 3 是一款面向研究的渲染系统,用于正向和反向光传输模拟。 它由一小组核心库和各种插件组成,这些插件实现从材质和光源到完整渲染算法的功能。 Mitsuba 3 努力保持与其前身 Mitsuba 0.6 和 Mitsuba 2 的场景兼容性。然而,在大多数其他…

CSS实现元素显示与隐藏的方式整理

目录 前言 一、display属性 二、visibility属性 三、opacity属性 四、height和width属性 前言 在CSS中,有多种方法可以用来控制元素的显示和隐藏。这些方法主要包括:display, visibility, opacity 和 width/height。理解这些属性的区别、使用场景以…

阿里云2核2G经济型e实例ecs.e-c1m1.large性能测评

阿里云服务器ECS经济型e实例2核2G配置规格ecs.e-c1m1.large,CPU采用Intel Xeon Platinum架构处理器,e系列云服务器是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器。目前云服…

施耐德电气远程 Pro-face Win 版远程 HMI 客户端

施耐德电气远程桌面 Pro-face Remote HMI Client for Win 是 Pro-face Remote HMI 应用程序的 Windows 桌面应用程序。它可以从一台 PC 远程查看多个 HMI RT 屏幕。 Pro-face Win 版远程 HMI 客户端 - 功能 特征 多显示器模式 一台 PC 屏幕上最多可显示 6 个屏幕。 支持全屏模…

GaussDB SQL基础语法示例-数组表达式

目录 一、前言 二、条件表达式的概念及GaussDB中的常见的数组表达式 三、GaussDB中常用的数组表达式(语法 示例) 1、expression IN (value [, ...]) 2、expression NOT IN (value [, ...]) 3、expression operator ANY/ SOME (array expression) …

c语言基础:L1-070 吃火锅

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。 本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。 输入格式&#x…

HT5010 音频转换器工作原理

HT5010是一款低成B的立体声DA转换器,内部集成了内插滤波器、DA转换器和输出模拟滤波等电路。其可支持多种音频数字输入格式,支持24-bit字节。 该HT5010 基于一个多比特位的Δ-Σ调制器,将数字信号转化成两个声道的模拟信号并经过模拟滤波器滤…

创建ABAP数据库表和ABAP字典对象-创建表01

创建表 创建表在你的Package包中 选择(右键单击)包并从上下文菜单中选择New > Other ABAP Repository Object: 2.输入过滤器文本表>数据库表,然后选择Next。 3.输入一个名称,例如ZTRAINING_XXX(一般是具体的项目描述XXX),然后选择Nex…

Go 内存逃逸

内存逃逸(memory escape)是指在编写 Go 代码时,某些变量或数据的生命周期超出了其原始作用域的情况。当变量逃逸到函数外部或持续存在于堆上时,会导致内存分配的开销,从而对程序的性能产生负面影响。Go 编译器会进行逃…

2023年免费CRM软件盘点:14款热门工具全面比较(含开源)

在初创企业或小型企业阶段,特别是在预算有限且客户管理需求较为基础的情境下,使用免费的CRM系统通常是一个理智的选择。这类系统虽然在功能上可能不如付费版本丰富,但基本的客户信息管理、销售跟踪和沟通记录等核心功能通常都能满足需求。 对…

某全球头部ICT公司:全球多个交付中心实现安全的内外网文件交换

全球领先的ICT基础设施和智能终端提供商 H科技公司是全球领先的ICT基础设施和智能终端提供商,致力于为客户创造价值、保障网络安全稳定运行、推动产业良性发展。H科技公司聚焦全联接网络、智能计算、创新终端等领域,在产品、技术、基础研究、工程能力等…

私域流量的完美进阶:从加粉撩客到入站营销

要么写一些值得让大家看的东西,要么做一些值得让大家写的事情。 ——本富兰克林 对普罗大众来说,私域最初的印象要追溯到社交电商兴起之时。 2011年左右,微信的出现,带火了社交电商家族非常重要的成员——微商。让无数本来机会很…