cocos2d-JS核心概念

Cocos2D HTML5游戏开发全攻略 Cocos2D最初是为iOS平台开发的,后来发展成为一个跨平台的游戏开发框架,支持iOS、Android、Windows以及Web等多个平台。其特色在于提供了丰富的游戏开发工具和功能,比如场景管理、动画控制、粒子效果等。Cocos2D-JS提供了许多内置动作类,如MoveToRotateTo等,但开发者有时需要根据游戏特定的需求来创建自定义动作。// 自定义动作// 更新逻辑});// 使用自定义动作this精灵.runAction(new MyCustomAction()); 阅读详情
1.导演
导演类cc.Director用于管理场景,采用单例设计模式,在整个工程中只有一个实例对象,由于是单例模式,能够保存一致的配置信息,便于管理场景对象,获得导演类Director实例语句如下:
var director=cc.Director._getInstance()
也可以在程序中直接使用cc.director,该对象是在框架内使用如下语句进行赋值:
cc.director=cc.Director._getInstance()
所以cc.director只是cc.Director的实例对象。
导演对象职责如下:
(1)访问和改变场景
(2)访问Cocos2d-JS的配置信息
(3)暂停,继续和停止游戏
(4)转换坐标
2.场景
场景类cc.Scene是构成游戏的界面,场景大致可以分为以下几类:
(1)展示类场景
(2)选项类场景
(3)游戏场景
3.层
为了让不同的层可以组合产生统一的效果,这些层基本上都是透明或者半透明的。层的叠加是有顺序的。
4.精灵
5.菜单
在cocos2d-js中菜单类是cc.Menu,cc.Menu类派生于cc.Layer
在菜单中又包含了菜单项cc.MenuItem,cc.MenuItem有很多形式的子类,如cc.MenuItemLabel,cc.MenuItemSprite和cc.MenuItemToggle。它表现出不同的效果,每个菜单项都有三个基本状态,正常,选中,和禁止
6.Node与Node层级架构
Cocos2d-JS采用层级结构管理场景、层、精灵、文本、地图和粒子系统等节点对象。
7.Node中重要的操作
(1)var childNode=new cc.Node()
(2)node.addChild(childNode,0,123)增加新的子节点,第二个参数是Z轴绘制顺序,第三个参数是标签。
(3)var childNode=node.getChildByTag(123),查找子节点,通过标签查找子节点。
(4)node.removeChildByTag(123,true)通过标签删除子节点,并停止所有该子节点上的一切动作。
(5)node.removeChild(childNode,true)删除childNode节点,并停止所有该子节点上的一切动作。
(6)node.removeAllChildrenWithCleanup(true),删除node节点的所有子节点,并停止这些子节点上的一切动作
(7)node.removeFromParentAndCleanup(true),从父节点删除node节点,并停止所有该节点上的一切动作
8.Node中的重要属性
position和anchorPoint
9.游戏循环与调度
每一个游戏程序都有一个循环在不断运行,它是由导演对象来管理、维护,如果需要场景中的精灵运动起来,可以在游戏循环中使用定时器(cc.Scheduler)对精灵等对象的运行进行调度。因为cc.Node类封装了cc.Scheduler类,所以也可以直接使用cc.Node中定时器相关方法。
cc.Node中定时器相关方法主要有:
(1)scheduleUpdate()每个Node对象只要调用该方法,那么这个Node对象就会定时地每帧回调用一次自己的update(dt)方法
(2)schedule(callback_fn,interval,repeat,delay)与scheduleUpdate方法功能一样,不同的是,可以指定回调方法(通过callback_fn指定)interval是时间间隔,repeat是执行的次数,delay是延迟执行的时间。
(3)unscheduleUpdate()停止update(dt)方法调度。
(4)unschedule(callback_fn)可以指定具体方法停止调度
(5)unscheduleAllCallbacks()可以停止所有的时间调度
10.在app.js文件中添加调度使用


为了能够在ctor方法之外访问标签对象,需要为标签设置Tag属性,其中32行代码就是设置Tag属性,第66行代码就是通过Tag属性重新获得这个标签对象。
为了能够开始调度,还需要在ctor方法中调用scheduleUpdate见第35行或第34行代码
为了省电等,如果不再使用调度,一定不要忘记停止调度,可以在Close菜单项的单击事件中停止调度。

第13行代码就是停止调度update,如果是其他的调度方法,则可以采用unschedule或unscheduleAllSelectors停止
全面深入Cocos2d-js游戏开发之旅 Cocos2d-js是Cocos2d游戏开发框架的一个重要分支,针对JavaScript语言的版本。它起源于2008年,最初是作为一个针对iOS平台的游戏开发框架,随着时间的推移,其演变为支持多种平台和语言的开源框架。HTML5,作为互联网基础的标记语言之一,不仅带来了更丰富的语义标签,还增加了强大的新特性,特别是对多媒体和图形处理的支持。在游戏开发领域,HTML5标志着一个新时代的开启,它使开发者能够通过标准的Web技术制作出功能丰富、运行流畅的游戏,而不再受限于Flash等专用插件技术。 阅读详情

相关推荐

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1050

cocos creator 3.8 cc.js打包报错解决方式

反反复复折腾了半天也没找到问题,猜测是电脑环境改变引起的错误,于是卸载cocos creator3.8,重启电脑,然后再次重新安装cocos creator3.8,再次重启电脑,打包终于正常了。2023-10-1 23:02:42-debug: // ---- build task 给所有的资源加上 MD5 后缀 ----昨天打包还是正常的,想来这两天除了安装了一次驱动精灵,后来又删掉了,也没做其他操作。cocos creator 3.8打包忽然报错,log提示错误如下。

coloma2012的博客 1279

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 191

CocosCreator 源码​CCMacro.js详解

CocosCreator 源码​CCMacro.js详解。

weixin_50892911的博客 436

黑暗中的爆破(船讯网Ais爬虫暨爬虫实战js逆向学习经验分享)

船讯网 爬虫 js逆向 python

returnadsss的博客 1576

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, MBD) 的开源自驾仪,可被用来快速构建无人机,无人车,无人船,机器人等平台的控制系统。 系统主要由两部分构成. FMT-Firmware: 一个基于C/C++开发的稳定、高性能的嵌入式系统. FMT-Model: 一个基于MATLAB/Simulink开发的仿真框架以及算法库. 昨天得知FMT开源飞控项目已经开

weixin_45786595的博客 2873

【三】CocosCreator-CCDirector.js源码分析

【三】CocosCreator-CCDirector.js源码分析

zien的博客 1268

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

【Claude】Auto mode cannot determine the safety of an action 报错已解决

Claude Code Auto mode 安全分类器报错完整解析,涵盖 temporarily unavailable、could not evaluate、transcript exceeded 三种情况的根因与处理

博客 1万+

6D位姿估计系列(一)

本研究提出FoundationPose,一个统一的基础模型框架,支持基于CAD模型和无模型的6D物体姿态估计与跟踪。通过神经隐式表示实现高效新视图合成,结合大规模合成数据训练和对比学习策略,模型展现出强大的泛化能力。实验表明,该方法在LINEMOD、YCB-Video等多个基准数据集上显著优于现有专门化方法,处理速度达32Hz,且无需目标域微调。该工作为多场景物体姿态估计提供了通用解决方案。

qq625924821的博客 564

MenuItemLabel

auto send_protocal_label = Label::createWithSystemFont("协议发送", "Arial", 20);     send_protocal_label->setColor(Color3B::BLUE);     auto send_protocal_item = MenuItemLabel::create(send_protocal_label

navno1的专栏 689

eNSP与我这24H2版本不兼容,路由器40错误。这该怎么处理(操作系统-windows)(相关搜索:虚拟机)

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 4112

Cocos2d-js开发之JavaScript初探

Cocos2d-js开发之JavaScript初探 一. HelloJS   alert("Hello JS!");         Hello        二. JS的调试(DebugJS) index.html                         Hello index.js conso

天马行空的专栏 840

VC中sqlite的使用

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Cocos2d-JS中JavaScript继承

JavaScript语言本身没有提供类,没有其它语言的类继承机制,它的继承是通过对象的原型实现的,但这不能满足Cocos2d-JS引擎的要求。由于Cocos2d-JS引擎是从Cocos2d-x演变而来的,在Cocos2d-JS的早期版本Cocos2d-HTML中几乎全部的API都是模拟Cocos2d-x API而设计的,Cocos2d-x本身是有C++编写的,其中的很多对象和函数比较复杂...

weixin_30693183的博客 85

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

cocos 创建一个js项目_cocos2d-js项目全过程

命令新建项目: cocos new -l js projectname运行项目:cocos run -p web项目打包:cocos compile -p web -m release字典Scene:场景,pushScene,加载或切换场景但不销毁上一个场景。popScene,销毁当前场景,回到上一个场景。Director:导演,cc.director.runScene,这个函数用来加载或切换场景...

weixin_33186395的博客 928

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cocos2d-x js学习

因为要求使用JS,所以着手使用JS进行学习,前端时间大概

sh6842的专栏 1229

Cocos2d-js中Chipmunk引擎

我们先介绍轻量级的物理引擎——Chipmunk。Chipmunk物理引擎,由Howling Moon Software的Scott Lebcke开发,用纯C编写。Chipmunk的下载地址是http://code.google.com/p/chipmunk-physics/,技术论坛是http://chipmunk-physics.net/forum。 Chipmunk核心概念 Chipmun

巴黎的妖 667

cocos2d-x/js杂记

cocos creator ​​​参见官方文档,目前有大量小型公司在使用cocos creator 进行游戏开发,这个对于非编程人员来说,确实更容易,开发效率也更高,并且对于团队来说,设计和开发分工也更容易,但是代码量基本不会少。但是对于开发来说,使用cocos2d-js更符合开发人员的习惯。对于cocos2d-x建议使用xcode/clion,对于cocos2d-js,建议使用webstorm。...

zhshuai1的专栏 407

cocos 2d - js

cocos2d - js 知识整理目录结构index.htmlmain.js代码project.json文件启动流程导演节点节点常用基本属性节点坐标场景图层Layer精灵Sprite自定义精灵组合精灵定义FarmScene .jsFarm.jsHouse.js动画精灵定义person.jsPersonScene.js标签Label菜单Menu 目录结构 main.js设置启动的场景 projec...

qq_17080419的博客 966

cocos2d-js 入门 (主要是HTML5)

cocos2d-js是cocos2d-x的JavaScript版本,真正跨全平台的游戏引擎,采用原生JavaScript语言,可发布到包括Web平台,iOS,Android,Windows Phone8,Mac,Windows等平台。 利用cocos2d-js开发HTML5游戏/动画,我们可以通过SDK也可以直接使用js类库: l SDK下载:http://cn.cocos2d-x.org/d...

weixin_30685029的博客 134

Cocos2d-JS 事件处理机制

事件处理机制中的三个角色 在Cocos2d-JS引擎时间处理机制中也有这3个角色。 1.事件 事件类是cc.Event,它的类图如图8-1所示,它的子类有cc.EventTouch(触摸事件)、cc.EventMouse(鼠标事件)、cc.EventCustom(自定义)、cc.EventKeyBoard(键盘事件)和cc.EventAcceleration(加速度事件) 2.

AiCoding_D的博客 1545

Cocos2d-JS中的简易MVC框架指南(一)

一、框架简介 今天开始我将把我写的一套适用于Cocos2d-JS的一套MVC框架分享给大家。首先我先简单介绍一下MVC,然后再逐步的介绍我写的mvc框架和在游戏中的具体应用。 MVC借用百度百科的解释: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分

485

cocos2d-js-3.0-final 笔记(一)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33910434的博客 98

关于Cocosd-x

Cocos2d-x是一个开源的手游开发引擎,可使用C++,Lua和JavaScript进行开发。这是一个跨平台的开发引擎,可以适用于Android,IOS,WindowsPhone等多个平台的手机。 支持平台和编程语言 “o”代表支持并能正常工作, “i”代表支持但不在主干版本内,可以从历史版本里面找到  “w”代表正在研发 Cocos2d-x  

oahsgnat的专栏 578
上一篇: Cocos2d-JS中标签和菜单
下一篇: Cocos2d-JS Sprite精灵类
AiCoding_D
博客等级 码龄11年 4粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值