Cocos2dx游戏教程(三):“见缝插针”,Cocos2dx核心类介绍

使用cocoscreator开发的见缝插针小游戏 使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插针小游戏使用cocoscreator开发的见缝插 立即下载

前面给大家介绍了图片精灵的加载和相关核心类的描述,聪明的小伙伴们应该都已经了解了相关的使用方式吧,这次呢就详细的介绍下几个核心类的作用,使用方式和框架结构,巩固一下。

序、框架结构图

我们看一下将要实现的游戏的示意图,能看出哪些是场景,哪些是精灵么,还有文字和菜单按钮哦(后面介绍)
在这里插入图片描述
如下图所示,上章的Director,Node,Scene,Layer,Sprite结构图如下。
Node类是绝大部分类的父类,如Scene、Layer、Sprite等等的父类都是Node。
在这里插入图片描述

一、Director导演类

Director俗称导演类,Director是Cocos2d-X的核心。
我们在开发过程中可以通过单例模式获取导演对象:

auto director= Director::getInstance();

还比如,我们想获取屏幕可视区的大小可以使用

auto visibleSize = Director::getInstance()->getVisibleSize();

屏幕大小可以使用

auto winSize = Director::getInstance()->getWinSize();

说道这大家肯定也想起了前面切换场景吧,这也是导演类所处理的,对于切换场景,我们来看一下几种方法

1、初始化游戏场景

该方法有且仅在启动游戏的时候会调用,只此一次,用来初始化游戏显示的第一个场景。

runWithScene( Scene *scene );

2、将一个场景压入栈中,并运行下一场景

pushScene( Scene scene );

3、释放当前场景,代码执行场景中弹出栈顶的场景,如果栈为空,直接结束应用。和PushScene结对使用。

popScene()

4.直接替换场景,当前场景被释放,这是切换场景时最常用的方法。

replaceScene( Scene *scene );

当然Director还有好多用法,大家可以去参考源代码或者运行Cocos2dx自带的例子学习哈。

二、Scene场景类

Scene是继承与Node类的。场景就像是一个容器,将不同的布景层(Layer)组合在一起,方便管理。
一个游戏会有很多的场景,比如,主界面,游戏界面,载入界面等等都是一个场景。而每一个场景都是由多个图层组合在一起,形成一个完整的游戏画面。

场景的创建如下

 auto scene = Scene::create();

三、Layer布景层类

Layer继承于Node。Layer不仅继承了Node的所有操作,还附加触控、重力加速度计、支持键盘输入的事件代理。
一个布景层(Layer)可以包含多个元素,如标签(Label)、菜单(Menu)、精灵(Sprite)等等。
注意:Layer的锚点默认为(0,0),即左下角。并且忽略锚点的设置,即使你setAnchorPoint了锚点,Layer的锚点也不会改变,依然是(0,0)。

布景层创建如下

auto layer = HelloWorld::create();

我们上面创建了场景,那么我们怎么将布景层加入场景呢

scene->addChild(layer);

四、Sprite精灵类

Sprite继承于Node,简单一点,其实就是一个2D的图片,一般加载在Layer上。默认锚点为(0.5,0.5)居中哦。
Sprite不仅继承了Node,还继承了纹理协议接口TextureProtocol。

如何创建一个精灵呢

auto sprite = Sprite::create("filename");

然后将精灵加入布景层

layer->addChild(sprite);

五、总结

一个简单的游戏场景的建立离开不了上面几个核心类的共同作用,总体来说我们需要

导演指挥->创建一个场景->创建一个层加入场景->创建游戏元素加入层

到这里应该对核心的操作有些了解了吧,后续将会结合游戏例子介绍相关的操作,遇到其他知识点穿插着讲哈,希望和大家共同进步!!

nnU-Net v2实战:从零开始配置环境与训练自定义医学影像数据集 本文详细介绍了nnU-Net v2在医学影像分割中的实战应用,从环境配置到自定义数据集训练的全流程。重点讲解了Python 3.9+环境搭建、PyTorch安装技巧、医学影像数据预处理规范,以及五折交叉验证训练方法,帮助开发者快速掌握这一先进的医学影像分析工具。 阅读详情

相关推荐

windows10下Boost的安装与初试

https://blog.youkuaiyun.com/s_lisheng/article/details/72871218 https://blog.youkuaiyun.com/yockie/article/details/8856190?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-12.vipsorttest&depth_1-utm_source=dis

焦露的博客 6392

cocos creator 3.0见缝插针(口红机)

cocos creator3.0 见缝插针效果展示实现思路关键代码试玩地址(加载慢,自己服务器带宽低)下载地址开源不易,仅学习使用 效果展示 ## gif 帧率较低 实际体验效果更好 实现思路 1、中间一个节点 里面有两个node 分别放背景橘子node,存放刀的node 然后只旋转这个中间节点让刀和背景一块旋转就行了 2、碰撞检测给每一把刀放上碰撞检测 3、下边放一把假的刀 用来做动画执行,刀子到达位置 将假的刀放回原来的位置,将复制新的刀到中间存刀的节点 4、判断下一关 将中间节点存刀的node判

张无忌的博客 1368

App渗透 - 人脸识别登录绕过

一、APP抓包和逆向破解加密算法打开APP是一个登录框抓包后发现参数被加密了使用Jadx脱源码发现,并没有加壳也没有混淆,运气很好根据经验,先搜索Encrypt、Decrypt等关键字,发现在Common.js中有一个encryptData函数定位过去,一套加解密算法都写好了放在这放到浏览器console里面调试,果然没错二、寻找注入点首先测试了一下注入明文:{"userName":"TEST'...

渗透测试研究中心 2823

Cocos2dx游戏教程(十四):“见缝插针”,点击事件

Cocos的事件分为大概6种,分别为屏幕点击事件、键盘输入、鼠标点击、加速度事件、focus、自定义事件,对事件的操作施行的是监听机制,就是每种事件都有一个监听者类型。 本节主要介绍屏幕/按键点击事件,其他不做详细说明,使用方式类似。 一、屏幕点击事件 我们首先来看屏幕点击事件的函数原型,屏幕点击事件分为单点触摸和多点触摸 1、单点触摸 std::function<bool(Touc...

小白的专栏 570

Ubuntu20.04下运行LOAM系列:A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM

在我第一篇博文Ubuntu 20.04配置ORB-SLAM2和ORB-SLAM3运行环境+ROS实时运行ORB-SLAM2+Gazebo仿真运行ORB-SLAM2+各种相关库的安装的基础环境下跑通A-LOAM首先已经按照上一篇文章已经安装好了ROS noetic、Eigen3.4.0、OpenCV4.2.0和PCL1.10,A-LOAM在Github的开源地址:https://github.com/HKUST-Aerial-Robotics/A-LOAM。接下来根据代码要求,需要安装Ceres,另外环境的变

zardforever123的博客 3万+

STM32+CubeMX实战:5步搞定LWIP HTTP服务器搭建(附常见编译错误解决)

本文详细介绍了基于STM32和CubeMX平台,快速搭建LWIP HTTP服务器的5步实战指南。内容涵盖从项目初始化、LWIP深度配置到解决经典的`HTTPD_FSDATA_FILE`编译错误,并分享了使用VSCode进行高效开发的工作流,旨在帮助嵌入式开发者快速实现网络功能并规避常见陷阱。

weixin_29192365的博客 572

Cocos2dx游戏教程(四):“见缝插针”,第一个场景的建立

从这一篇开始就正是进入游戏具体实现啦,前面都了解了核心类的基本操作,那么现在我们开始具体实现吧 一、见缝插针的玩法 简单的说,玩家有一些小球,将这些小球弹射到大球上且不能碰到大球上的小球哦,前面介绍的“口红机”就是这样的玩法,只不过我们把小球换成了口红而已。 看看广告词,说的还是很清楚的么 又是一款简单而不简略的游戏,游戏画面简略但玩法新颖。玩家手中有一定数量的针头,必须把所有的针头都插进旋转的球...

小白的专栏 736

(UE5 5.2)HISM Mobile DrawInstance在渲染层的实现浅分析

在 (UE4 4.27) UHierarchicalInstancedStaticMesh(HISM)原理分析 这篇博客大致介绍HISM组件从游戏线程到渲染线程的重建KD-Tree和剔除并提交DrawCall逻辑,但是没有分析渲染层的大致数据结构和实现. 可以看出FHierarchicalStaticMeshSceneProxy 实际存储Instance数组数据来自于FInstancedStaticMeshSceneProxy FHierarchicalStaticMeshSceneProxy只是以FClu

qq_29523119的博客 2724

Cocos2d-x游戏开发入门教程

请注意,以上只是一个简要的大纲,实际的教程会更加详细和细致。建议您参考官方文档、教程网站、在线视频教程以及书籍来深入学习Cocos2d-x游戏开发,并且在实践中不断积累经验。希望您能够顺利掌握Cocos2d-x游戏开发,创作出精彩的游戏作品!- 常用组件的使用(渲染组件、物理组件、动画组件等)- 导入和管理游戏资源(精灵、纹理、音频等)- 下载和安装Cocos2d-x。- 游戏对象的层级结构和变换。- 游戏对象的属性和组件。- 游戏对象的控制和交互。- 场景管理和资源管理。- 物理模拟和碰撞检测。

m0_75198698的博客 2124

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

SAP 发布了很多标准的 Fiori 应用,可以通过笔者的文章里提到的进行浏览。比如 My Opportunities 就是 SAP CRM 领域的一个 Fiori 应用:下图是 Opportunity 明细页面的 Info 标签页:假设我们想在这些标准字段的末尾增添一个新字段 Created By,用来维护当前 Opportunity 的创建者。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1166

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 248

Cocos2dx游戏教程(六):“见缝插针”,菜单Menu与C++11新特性

上一节我们已经实现了第二个场景界面,最后按下按钮发现没有反应是不是,这一节将会给大家介绍下Cocos2dx另一个重要的对象,菜单Menu。 一、Menu介绍 提到Menu,不得不提到MenuItem,MenuItem继承自Node,所以它的子类菜单项都可以使用Node的相关操作。 MenuItem是所有菜单项的父类,建议不要直接使用该类,因为它并不包含具体显示的功能。 作为其它菜单项的父类,主要提...

小白的专栏 886

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Cocos2dx游戏教程(一):“见缝插针”,游戏项目的搭建

前篇文章展示了“见缝插针”的游戏截图,下面带领大家一步一步完成自己的小游戏吧,前提是cocos2dx环境已经搭好了哦,官网有搭建的详细教程,这里不多说啦 cocos2dx 英文官网:http://www.cocos2d-x.org/ cocos2dx 中文社区:http://www.cocos.com/ 先说说自己,其实最开始根本没想到会走游戏这条路。曾经总是认为自己是小说里面的主角,最后才发现自...

小白的专栏 1589

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Cocos2dx游戏教程(二):“见缝插针”,从添加一幅图开始

前面的教程中我们已经完美的运行起了游戏工程,Cocos2dx是C/C++编写的呢,一个面向对象编程的游戏引擎哦,是不是有些心动呢,那么一起共勉吧! 错了,下面才是 一、认识工程目录结构 前面的教程已经认识了工程的目录结构,默认的目录有两个类 AppDelegate.cpp //程序入口文件 HelloWorldScene.cpp //默认场景文件 1.AppDelegate类 我们可以仔细看...

小白的专栏 1114

Cocos2dx游戏教程(十一):“见缝插针”,主场景实现

前面是节介绍了Cocos2dx的相关知识,也实现了相关场景,这一节设计的游戏的具体实现啦,我们看一下新增的类,主要有小球类ball,定义类define,全局方法类GlobalManage,主场景类GameScene 这一节完成后大家就可以初步进行游戏啦,前介绍过的相关功能在本章节中都有体现哦,这章节主要就上代码吧。 下面我们看下文件列表,可以看到红框中新增的文件,下面介绍文件的具体实现。 大家将第...

小白的专栏 747

Cocos2dx游戏教程(九):“见缝插针”,场景切换效果介绍

他来了,他来了,他带着炫酷的效果来了,前面我们一直想知道场景怎么切换,效果是什么,在这一节中将会给大家介绍Cocos2dx场景切换的效果。 一、游戏代码实现 前面我们已经介绍了游戏场景的跳转,现在结合游戏逻辑具体介绍下 1、将AppDelegate中的场景跳转还原到WelcomeScene auto scene = WelcomeScene::createScene(); 2、在welcomeS...

小白的专栏 492

Cocos2dx游戏教程(十三):“见缝插针”,更新函数Update

在前两个教程中是不是都出现了update方法呢?那么这个方法的左右时什么呢?本节将会给大家介绍下cocos2dx update方法以及定时器的运用。 相信大家在一看是创建空工程的时候应该就已经接触到了吧,运行工程后在屏幕的左下角有一个不停变换的数字,就在实时刷新哦,有一个方法 pDirector->setDisplayStats(true); pDirector->setAnimati...

小白的专栏 1383

Cocos2dx游戏教程(十二):“见缝插针”,游戏结算界面和音效

前面游戏主场景已经可以试玩了吧,但是是不是感觉很单调呢,如何进入下一关呢?要不要配置些音乐呢,在我的BGM中是不是有些无敌的感觉呢 首先我们来看一下需要添加的文件 我们可以看到,在这一节新增了GameFailedLayer,GameSuccessLayer,GameMusic,GameLevel四个类。 我们都知道如何创建一个层,我们首先来看一下胜利失败的界面吧 下面带领大家看看下如何实现界...

小白的专栏 922

Cocos2dx游戏教程(十):“见缝插针”,动作篇Action

一个成功的游戏如果只是一堆静态图片,那么和一幅画有什么区别呢?所以动静结合才是王道~~ 动作体系对于一款游戏的成功与否是有着非常重要的影响的。在这一节中将会带大家简单的认识动作体系。 常见的动作 我们在上节中发现场景的切换方式还可以采用runAction的方式使用 //跳转场景 this->runAction(Sequence::create( DelayTime::create(2.5f...

小白的专栏 744

Cocos2dx游戏教程(八):“见缝插针”,UserDefault数据存储与读取

前面已经介绍了前两个场景使用,中间涉及到了几个核心类,菜单,label标签等,同样我们也实现了两个场景的切换和关卡数字的显示。那么我们怎么记录游戏相关的信息呢? 下面我们将走进cocos2dx的数据存储,UserDefault。 一、UserDefault介绍 cocos2dx提供了一个数据存储类UserDefault,可以作为一个轻量级的数据库来使用。它支持五种基本数据bool、int、floa...

小白的专栏 669

Cocos2dx游戏教程(五):“见缝插针”,第二个场景的建立

上一篇中我们建立了第一个场景,下面我们着手建立第二个场景哦,第二个场景比较复杂了,我们先看一下实现的效果吧,在本节中将会带大家一起实现第二场景。 场景的将会涉及到文件标签,菜单按钮等操作,下两节将会分别介绍文字标签和菜单的实现,现在可以先带着问题做下去哦。 看下对比图,是不是很有感觉了, 好像当时上数学课的样子~~ 开始准备今天的场景吧。 一、准备场景素材 场景中存在的元素有哪些呢? 对,有背...

小白的专栏 528

Cocos2dx游戏教程(七):“见缝插针”,Label标签的使用

在创建第二场景中我们不仅看到了Menu的创建,其中是不是还有如下的创建方式啊? //关卡数字 auto levelTTF = Label::createWithCharMap("fonts/label/label_ball.png", 14, 20, '0'); levelTTF->setString(StringUtils::format("%d", 1)); levelTTF-&g...

小白的专栏 629

Cocos2dx游戏教程(十五):“见缝插针”,愿你走出半生,归来仍是少年

从决定写这个教程到第一个有戏教程结束也经历了好长时间,有的地方可能写的不好,也请大家多多包涵。决定写这个教程也是对自己学习的一个总结吧,写教程的过程也是自己学的过程。 一个小游戏所涉及到的知识点毕竟不是很全面,后续还是会继续写相关的内容介绍其他功能的使用,大家可以继续关注哦。 开篇 还记得夕阳下的奔跑,那是我逝去青春 2020年开春,一场突如其来的疫情打乱了大家的生活,让很多人一下陷入十分被动的...

小白的专栏 533

Cocos2dx游戏教程(序):火爆抖音的网红口红机真能扎到口红吗?

一、口红机是什么 最近口红机简直刷爆抖音,是不是看着都觉得手痒啦,它的玩法也很简单,扫码支付几块钱,然后就会获得一次闯三关的机会,用口红扎水果,三关如果口红全部扎上去了,就可以获得商家精心准备的各种大牌口红,那么小伙伴们是不是都去试了一式呢?到底能不能扎到口红呢?反正自己没试过~~~ ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020030723465794...

小白的专栏 990

Cocos2dx游戏教程(十六):绘制图形,DrawNode扇形以及环形

通过前面十五章的介绍,大家应该都能实现“见缝插针”的基本玩法了吧。 但从头玩到尾都是一个模式,是不是有些单调呢? 在这篇中将结合如何提升游戏难度和可玩性给大家介绍一下Cocos2dx 的DrawNode。 提到DrawNode我们可以通过cocos2dx自带的例子,其中有很多已经实现了的方法。 1、使用方法 //创建DrawNode,然后后加入到Layer层中 DrawNode* drawNode...

小白的专栏 1452

见缝插针小游戏开发

####一、主要逻辑 ​ 首先根据配置表设置好游戏数据(比如大球的旋转速度、旋转方向、默认已经插上的针数及间隔角度,小球的数量等按需设置即可),开始游戏后大球不停的旋转,点击屏幕从下方发射“大头针”,并计算好移动距离,这样可以不需要检测针尖和大球的碰撞,当“大头针”移动到指定位置时修改它的父节点为大球,关键来了,这里因为大球一直在旋转,为了让“大头针”始终垂直的插上大球,这里要正确设置小球的旋转角度,大头针的目标坐标为大球的底部,根据大球的半径和角度可以求得具体x、y。如果大头针和大头针相碰了则游戏失败,如

随风的博客 2078
上一篇: Cocos2dx游戏教程(二):“见缝插针”,从添加一幅图开始
下一篇: Cocos2dx游戏教程(四):“见缝插针”,第一个场景的建立
胖胖的战士
博客等级 码龄18年 104粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值