cocos2d学习之CCNode

一文搞懂深度学习:最全神经网络介绍 本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。 阅读详情

CCNode是所有能展示在屏幕上的cocos2d对象的基类。所有节点按照树形结构组织,并且通常以场景(CCScene)对象为根节点。常用的场景(CCScene),精灵(CCSprite),按钮(CCButton)都是节点的例证。CCNode处理转换,为其子节点提供坐标系统。任何CCNode以及子类都可以处理用户输入或者响应用户触摸(从它继承自CCResponder就能看出来)。

下面谈一下坐标系统以及定位。在CCNode的坐标系统中,坐标点通过position属性值来设置。点度量提供了一个处理不同屏幕密度的方法。例如,在视网膜屏上,一个点等同于两个像素;在非视网膜屏上一个点等同于一个像素。使用positionType这个属性,可以指定节点位置如何被解释。例如,设置节点位置类型为CCPositionTypeNormalized,当节点位置属性值为(0.5,0.5)时,该节点将会被放置在父容器的中间位置.

CCNode的属性:

@property (nonatomic, assign) BOOL paused//如果为真,则没有回调函数被调用,没有动作会被执行

@property (nonatomic, readwrite, assign) BOOL visible//是否显示 默认为yes

@property (nonatomic, strong) NSString *name//节点的名称 用来快速寻找节点

@property (nonatomic, readwrite, strong) id userObject//和userData相似

@property (nonatomic, readwrite, assign) CGPoint position//节点的位置坐标

@property (nonatomic, readonly) CGPoint positionInPoints//点坐标系(原点从左下角开始)中的坐标值

@property (nonatomic, readwrite, assign) CCPositionType positionType//位置类型

@property (nonatomic, readwrite, assign) float rotation//节点旋转角度

@property (nonatomic, readwrite, assign) float scale//节点缩放比例  同时影响x和y坐标 1值为1时原比例,2是放大两倍,0.5时一半

@property (nonatomic, readwrite, assign) float scaleX//节点x轴缩放比例

@property (nonatomic, readwrite, assign) float scaleY//节点y轴缩放比例

@property (nonatomic, readwrite, assign) CGSize contentSize//节点的尺寸

@property (nonatomic, readwrite) CGPoint anchorPoint//锚点 节点的锚点在节点位置的比例,比如说一个节点的坐标为(0, 0),宽高各为100,那么当它的锚点坐标为(50, 50)的时候,anchorPoint_.x = 0.5,anchorPoint_.y = 0.5。

@property (nonatomic, readwrite, assign) float skewX//节点横向扭曲的角度

@property (nonatomic, readwrite, assign) float skewY//节点纵向扭曲的角度

@property (nonatomic, readwrite, unsafe_unretained) CCNode *parent//节点的父节点

@property (nonatomic, readonly) NSArray *children//节点的子节点集合

- (CGRect)boundingBox//返回节点的碰撞框。由坐标和宽高组成。这个值会随着节点的旋转和缩放而改变

@property (nonatomic, readonly) CCScene *scene//返回该节点加入的场景,如果没有被加入任何场景,则返回nil

@property (nonatomic, strong) CCPhysicsBody *physicsBody//返回该节点附加的物理主体

@property (nonatomic, readonly, getter=isRunningInActiveScene) BOOL runningInActiveScene//是否被加入了一个正在活动的场景,并且它和它的任意祖先都不是pause状态

CCNode的方法

+ (id)node//创建一个节点

- (id)init//实例化一个节点

- (void)addChild:(CCNode *)node//添加一个子节点  z-order为0 当被加入正在运行的节点时,onEnter’ and ‘onEnterTransitionDidFinish方法会被立即调用

- (void)addChild:(CCNode *)node z:(NSInteger)z//  添加一个子节点 指定z值

- (void)addChild:(CCNode *)node z:(NSInteger)z name:(NSString *)name// 添加一个子节点 指定z值和名字tag

- (void)removeFromParent//将自身从父容器中移除 并清除该节点注册的所有动作

- (void)removeFromParentAndCleanup:(BOOL)cleanup// 将自身从父容器中移除 并决定是否清除该节点注册的所有动作

- (void)removeChild:(CCNode *)child//移除某个子节点 并清除子节点的相关动作  该方法为检测参数节点是否是本节点的子节点

- (void)removeChild:(CCNode *)node cleanup:(BOOL)cleanup//移除某个子节点 并决定是否清除子节点的相关动作

- (void)removeChildByName:(NSString *)name//通过名字移除某个子节点 并清除节点的相关动作

- (void)removeChildByName:(NSString *)name cleanup:(BOOL)cleanup//通过名字移除某个子节点 并决定是否清除节点的相关动作

- (void)removeAllChildren//移除所有子节点 并清除子节点的动作

- (void)removeAllChildrenWithCleanup:(BOOL)cleanup 移除所有子节点 并决定是否清除子节点的动作

- (CCNode *)getChildByName:(NSString *)name recursively:(bool)isRecursive//是否递归寻找名字匹配的子节点,如果为真,则会一直递归寻找下去(子节点寻找子节点);如果为假,则立即返回匹配的子节点

- (BOOL)hitTestWithWorldPos:(CGPoint)pos//检测给出的位置点是否在节点内

- (void)onEnter//当节点进入舞台的时候触发的事件

- (void)onEnterTransitionDidFinish//当节点进入舞台,并且伴随的动画结束的时候

- (void)onExit//当节点离开舞台的时候触发的事件

- (void)onExitTransitionDidStart//当节点离开舞台,并伴随有动画,在动画的开始的时候触发的事件

- (CCAction *)runAction:(CCAction *)action//执行一个动作,并返回该动作 该节点成为动作的目标

- (void)stopAllActions//把正在运行的动作列表上的动作全部移除

- (void)stopAction:(CCAction *)action//把正在运行的动作列表上的某个动作移除

- (void)stopActionByTag:(NSInteger)tag//通过tag值把正在运行的动作列表上的某个动作移除

- (CCAction *)getActionByTag:(NSInteger)tag//根据tag值获得某个动作

- (NSUInteger)numberOfRunningActions//正在运行动作的个数

- (CCTimer *)scheduleBlock:(CCTimerBlock)block delay:(CCTime)delay//一段时间后执行代码块

- (CCTimer *)schedule:(SEL)s interval:(CCTime)seconds//隔一段时间执行方法 如果seconds为0,则每帧都执行

- (CCTimer *)schedule:(SEL)selector interval:(CCTime)interval repeat:(NSUInteger)repeat delay:(CCTime)delay//重复执行方法repeat+1次,每次执行前会等待delay个时间

- (CCTimer *)scheduleOnce:(SEL)selector delay:(CCTime)delay//在一段时间之后执行一个方法 只执行一次

- (void)unschedule:(SEL)selector//终止执行某个方法

- (void)unscheduleAllSelectors//终止执行所有方法






【项目实战】Java9的新特性模块化(Module) Java 9引入了模块化系统,称为"Java Platform Module System"(JPMS)这个系统允许将Java程序分成模块,每个模块都有自己的规范,可以明确地声明它依赖于哪些其他模块,并且只能访问被其所依赖的模块暴露的API。这样可以模块化就是增加了更高级别的聚合,是Package的封装体。Package是一些类路径名字的约定,而模块是一个或多个Package组成的封装体。 阅读详情

相关推荐

合宙Air780EP速连OneNET:AT+MQTT应用指南

本文详细讲解了合宙Air780EP使用AT指令通过MQTT接入OneNET的过程。

2401_82812461的博客 1388

Cocos Creator语法和注意

Cocos Creator语法和注意 1.@property注解 如果属性不添加@property注解,那么该属性将不会出现在Cocos Creator面板中 @property应该指定类型 @property(“string”) @property(cc.node) 基本类型可以不指定数据类型,例如 string ,number ,boolean,bigint ...

qq_44929535的博客 5391

从零开始学版图(二)-----------差分放大电路

从零开始学版图

m0_56112720的博客 8556

Cocos Creator2.4.6 的一些基本代码

_Afra 的博客_会思考的猴子_优快云博客 const { ccclass, property } = cc._decorator; @ccclass export default class TSTest extends cc.Component { // 基本类型可以省略() @property("string") str: string = 'Hello World'; DontDisplayStr: string = 'DontDisplayStr'

我知道你很急,但是路要一步步走 1927

从零到一:在Ubuntu 20.04上搭建ROS1与PX4无人机开发环境

本文详细指导如何在Ubuntu 20.04系统上搭建完整的ROS1与PX4无人机开发环境。内容涵盖ROS Noetic安装、PX4固件源码编译、MAVROS通信桥接以及QGroundControl地面站的配置,并通过Gazebo仿真完成全链路联调测试,为无人机算法开发与验证提供稳定可靠的基础平台。

weixin_29292431的博客 165

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

creator 分帧加载

const { ccclass, property } = cc._decorator; @ccclass export default class Case_FrameLoading extends cc.Component { @property(cc.Node) protected itemPrefab: cc.Node = null; @property(cc.Node) protected content: cc.Node = null; @property(cc.Node) protect

zl198931的专栏 1045

SAP SLT REODPS_REPL API 的使用介绍

本文聚焦 SAP 数据复制生态中的 RODPS_REPL(常被误写为 REODPS_REPL),解析其作为 ODP(Operational Data Provisioning)标准接口的核心功能与应用场景。RODPS_REPL 是 SAP 提供的 ABAP 接口集合,支持从 ODP 上下文(如 ODP_SAPI、ODP_CDS)执行初始化装载和增量捕获,被 SAP BW、Datasphere 及第三方工具(如 Azure Data Factory、Qlik Replicate)广泛调用。 关键要点: 核心对

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

五、CCNode

本将主要介绍下CCNode这个类,CCNode是所有节点的基类,其中包括我们常用的CCScene(场景)、CCLayer(图层)、CCSprite(精灵)等,它是一个不能够可视化显示的抽象类,只是用来定义所有节点的公共属性和方法的。本讲纯粹是理论。 首先来看看CCNode的继承结构图,只列举了常用的类 节点的处理 1.创建一个新的节点 CCNode *node

M了个J 7143

Node-RED教程(一):Node-RED的介绍与安装

最新最全的Node-RED,node-red教程都在这里。 本篇介绍node-red的安装。使用docker 安装node-red

知无涯 3万+

游戏战斗系统架构设计的演绎之路——从一坨意大利面条到一座精密钟表

摘要:游戏战斗系统架构设计的演进之路 本文系统梳理了游戏战斗系统从早期街机到现代3A大作的架构发展历程。70-80年代的街机游戏采用基础碰撞盒判定(如《街头霸王》);90年代实现动画融合与状态机架构(《最终幻想》《拳皇》);2000年后MMO引入服务器验证与同步技术(《魔兽世界》);3D时代融合物理引擎与智能AI(《GTA5》《只狼》);移动端则发展出轻量化架构与云端判定(《王者荣耀》)。现代战斗系统已实现模块化、数据驱动和热更新,未来趋势是AI裁判与云战斗系统。这一演进过程展现了技术与创意的完美结合,数百

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 800

【玩转cocos2d-x之六】节点类CCNode

原创作品,转载请标明:http://blog.youkuaiyun.com/jackystudio/article/details/12703741 节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从...

473687880 244

C语言试题一之计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和

1、题目 计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和 2、源代码实现 #include <stdio.h> #include <math.h> double fun1(int n) { if (n <= 0) return 0; int i; double sum = 0.0; for (i = 1; i <= n;...

码莎拉蒂 1万+

cocos2d游戏学习一:CCNode

CCNode是所有节点的父类包括(CCLayer, CCSprite, CCScene)

jackshiny的专栏 570

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

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

cocos2d-X学习之主要类介绍:节点CCNode

cocos2d-X学习之主要类介绍:节点CCNode 首先是类结构: 可以看到CCNode 几乎是游戏中处理的大部分类的父类,其主要有以下函数: virtual int  getZOrder (void) //获取节点的顺序 virtual const CCPoint &  getPosition (void) //获取节点的位置 virtual voi

XUZHENG19860228的专栏 442

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cocos2d-x学习笔记-CCNode

前面用cocos2d-x完成了一个简单的demo,已经对使用cocos2d-x开发游戏有了一个大概的认识,现在来学习cocos2d-x中的常用类CCNode。学习cocos2d-x应该先了解它的整体结构,从大方向出发再逐步掌握细节问题,分而治之。cocos2d-x的类采用的是树状继承的方式,CCNode类是一个比较核心的类,下图是类结构图: CCObject类是cocos2d-x

Alex Zhou的程序世界 970

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

cocos2d-x API学习---CCNode

在熟悉了Lua的语法后就是需要学习了解cocos2d-x中的各种常用API,之后才能理解项目代码并进行一些功能的实现。 CCNode 对象是所有显示对象的基础类。 主要功能: 提供所有类型显示对象公用的属性,例如位置、尺寸、角度、显示层级等 作为其他显示对象的容器 可以执行各种动作 坐标和锚点 每一个显示对象的位置信息由坐标和锚点两部分组成。

I_Moo的专栏 2009

cocos2d-x 学习笔记之CCNode

//继承关系 CCNode -> CCObject /*CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 CCNode提供包容关系管理*/ //成员函数 virtual bool init(); static CCNode * create(void); //创建和初始化接口,...

weixin_30708329的博客 93

cocos2D 学习记录 一:CCNode类的层次结构

cocos2D  场景图     场景图  有时也成为场景层次体系,是当前所以活跃cocos2D 节点 的层次关系。 cocos2D 节点都是CCNode类派生出来的对象。CCNode 是所有节点的基类。它是一个没有具体显示的抽象类,仅用于定义所有节点的公共属性和方法。    节点的处理方式   CCNode类实现了添加,获取以及删除子节点的所有方法 创建新节点:

u011534664的专栏 629

Cocos2D-x学习:核心类----CCNode

CCNode就是屏幕中的一个节点,在屏幕上见了一个节点是没有任何意义的,但是,使用CCNode可以去管理其他的资源。     CCNode是cocos2d-x中一个很重要的类,CCNode是场景、层、菜单、精灵等的父类。         新建一个项目,并在HelloWorldScene.cpp文件中的init函数中 bool MySceneMenu::init() {    

338

cocos2d-x学习笔记(2)CCNode

1.继承 ccnode为父类:CCNode<CCLayer<CCSprite 2.CCNode的坐标设置:setPosition(CCPoint(0,0)),坐标原点位于左下角 3.设置锚点,setAnchorPoint(CCPointMaker(0,0)); 4,旋转:setRotation(); 5.设置显示order:setZOrder();值越大越靠前 6.获取父节...

qq_22660469的博客 200
上一篇: cocos2d学习之CCAppDelegate
下一篇: 使用addChildViewController时出现的问题
yesjava
博客等级 码龄19年 69粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值