cocos2d-02 基本对象和方法

【爱上cocos2d-x之十八】Tiled瓦片地图编辑器的基本使用 Tield瓦片地图编辑器不但生成地图简单,还能灵活运用于cocos2d-x游戏引擎。编辑生成之后保存的TMX文件格式,被cocos2d-x支持。 Tiled瓦片地图编辑器的下载地址:http://www.mapeditor.org/download.html 本篇所使用的是:Tiled 0.9.1 for Windows 下载后直接安装就行,安装成功后,运行效果如下: 好的,废话不 阅读详情

Cocos2D继承图示

                    CCNode

                         ↑

-------------------------------------------------------------------

      ↗                              ↑                                   ↖  

CCScene                 CCLayer                     CCSprite

                                       ↑

                                 UserScene


CCNode常用方法

@property(nonatomic,readwrite,assign)  CGPoint  position; 
@property (nonatomic,readwrite )  CGSize  contentSize ; 
 
@property(nonatomic,readwrite,assign)  CCNode * parent; 
@property(nonatomic,readonly )  CCArray  *children; 
 
-(void)  addChild: ( CCNode *) child 
-(void )  removeFromParentAndCleanup:(BOOL)cleanup  
-(void) removeChild: (CCNode*)child cleanup:(BOOL)cleanup

CCNode存放的私有字段

@property(nonatomic,readwrite,assign)  NSInteger tag; 
@property(nonatomic,readwrite,assign )  void * userData; 
 
-( CCNode *) getChildByTag :( NSInteger)  aTag; 


CCSprite常用方法

+(id)spriteWithFile :( NSString*)filename 
+(id)spriteWithFile :( NSString*)filename rect :
( CGRect) rect  


CCScene 获取实例方法

+ (id) scene { 
    CCScene *sc = [CCScene node]; 
    CCLayer* ls  = [ [self class] node]; 
    [sc addChild:ls]; 
    return  sc; 
}


导演运行剧场:

CCScene *scene = [LoadingScene  scene]; 
  [[ CCDirector  sharedDirector]  runWithScene:scene ]; //run用于运行第一个剧场


#import <Foundation/Foundation.h>
#import "cocos2d.h"
// CCLayer是所有场景的基类
@interface LoadingScene : CCLayer
{
    CCLabelBMFont *loadingTitle;
    // 定义一个展示字符串的一个对象
}
// 提供给外部一个 scene 
+ (id) scene;
@end

#import "LoadingScene.h"
#import "StartScene.h"

@implementation LoadingScene
+ (id) scene {
    CCScene *sc = [CCScene node];
    // 创建了一个空的剧场
    LoadingScene *ls = [LoadingScene node];
    // 创建了一个我们自己的节目
    [sc addChild:ls];
    // 把我们的节目加到通用的剧场上 CCScene
    return sc;
}
+ (id) node {
    return [[[[self class] alloc] init] autorelease];
}
- (id) init {
    self = [super init];
    if (self) {
        // 标准init方法
        CGSize winSize = [[CCDirector sharedDirector] winSize];
        // 通过导演类CCDirector来获取屏幕的宽高
        CCSprite *sp = [CCSprite spriteWithFile:@"loading.png"];
        // 创建了一个精灵对象,这个对象就是一张图片
        [sp setPosition:ccp(winSize.width/2.0f, winSize.height/2.0f)];
        // ccp = CGPointMake
        // 设置精灵的中心坐标
        [self addChild:sp];
        // 把精灵加入到self中 self就是节目
        
        loadingTitle = [[CCLabelBMFont alloc] initWithString:@"Loading" fntFile:@"arial16.fnt"];
        // 把@"Loading"字符串使用字体 arial16.fnt加载到
        // CCLabelBMFont中
        [loadingTitle setAnchorPoint:ccp(0.0f, 0.0f)];
        // 设置loadingTitle锚点为(0.0f, 0.0f);
        [loadingTitle setPosition:ccp(winSize.width-80.0f, 10.0f)];
        // 设置position
        [self addChild:loadingTitle];
        // 让Loading字符串 每隔1s前进一个.
        [self schedule:@selector(loadTick:) interval:2.0f];
        // 每隔2.0f来调用 [self loadTick:];方法
    }
    return self;
}
- (void) loadTick:(double)dt {
    // 每隔2.0fs会来调用
    static int count;
    count++;
    NSString *s = [NSString stringWithFormat:
            @"%@%@", [loadingTitle string], @"."];
    // [loadingTitle string]原来字符串
    // 在原来字符串后面追加  .
    [loadingTitle setString:s];
    // 把loadingTitle上设置显示字符串 s
    if (count >= 1) {
        [self unscheduleAllSelectors];
        // 取消所有的定时器
        // 加载下一个剧场
        CCScene *sc = [StartScene scene];
        [[CCDirector sharedDirector] replaceScene:sc];
        // 把当前剧场销毁,然后启动sc这个新的剧场
    }
}
- (void) dealloc {
    [loadingTitle release], loadingTitle = nil;
    [super dealloc];
}
@end


cocos2d-x源码剖析之精灵对象 在游戏中我们一个非常重要的元素就是图片,给最初的文字Mud游戏带来了多姿多彩。在3D游戏中,一个图片是采用什么结构表示的呢?其实灰常简单,你也能想得到:  1张纹理图,2个三角面片。那接下来就让我们看看cocos2d-x.们带来什么惊喜不?          游戏世界中的数据结构在我看来可以分为两种:一个是资源,另外一个是物理对象。是不是有点不好理解?资源就是一些原材料,比如纹理啊,声音啊,不 阅读详情

相关推荐

用Cocos2d-x构建潜艇大战:工厂模式和对象池的设计实践

Cocos2d-x是一个开源的跨平台游戏开发框架,它由Cocos2d-iPhone移植而来,支持多种开发语言,如C++、JavaScript和Python,使开发者能够利用同一套代码开发出在iOS、Android、Windows Phone等多个平台上运行的游戏。它的主要特点是易用性强、性能优秀、有着丰富的文档和社区支持,使得游戏开发者能够快速创建出视觉效果丰富和交互性强的2D游戏。简单工厂模式(Simple Factory Pattern),属于创建型模式之一,旨在通过一个工厂函数或类来创建对象。

weixin_33205138的博客 1085

Cocos2dx基础使用相关面试题

根据上次去面试人家HR所提的一些问题做的整理,答案部分是网上找的,关于基础使用,大致会问如下几个问题: Cocos2d-x的执行流程和基础对象 Cocos2d-x对相关工具的了解 Cocos2d-x其他常见问题 如是如何进行内存管理的,所使用的各种设计模式,屏幕适配解决方式

dl15600383645的博客 1746

【GIS效率手册】告别C盘爆满:三步重置ArcMap默认地理数据库路径

本文针对ArcMap用户C盘空间常被占满的问题,提供了三步重置默认地理数据库路径的详细教程。通过修改地图文档属性,将数据存储位置从C盘迁移至其他驱动器,不仅能有效释放系统盘空间,还能提升数据管理效率与安全性,是GIS数据规范化管理的关键一步。

g2h3i4j5的博客 542

[cocos2dx]重要父类——CCObject对象类

CCObject CCObject.h: #ifndef __CCOBJECT_H__ #define __CCOBJECT_H__ #include "platform/CCPlatformMacros.h" //Cocos2d命名空间 NS_CC_BEGIN //声明以下几种类,在后面会定义相应类的成员变量的指针。以下几个类均是CCObject类的派生类。 class CCZone

超越 2873

中兴U30air随身WiFi刷机全攻略:从ABD开启到系统调试(附工具包)

本文提供中兴U30air随身WiFi刷机全攻略,从ADB开启到系统调试的详细步骤,包括必备工具清单、ADB调试模式解锁、Bootloader解锁及自定义ROM刷入与调优。适合技术爱好者深度定制设备,提升网络性能和功能扩展。

weixin_29235923的博客 1925

单像素成像技术原理与Matlab仿真实现

傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。

weixin_29061425的博客 342

【cocos2dx中Node类getParent和getChildByTag()】学习体会

【cocos2dx中Node类getParent和getChildByTag()】学习体会

知至智 6302

ROS——无人机ROS仿真包 rotors_simulator 编译教程

文章目录 安装wstool sudo apt install python3-wstool 创建ROS工程 $ mkdir -p ~/UAV/src $ cd ~/UAV/src $ catkin_init_workspace # initialize your catkin workspace $ wstool init 下载源码 git clone git@github.com:ethz-asl/rotors_simulator.git 源码链接: https://github.com/eth

漫长IT路 5863

Cocos2d基础及基本函数

Cocos2d基础及基本函数 1.基本概念: Scene对象其实是所有层的容器,与Layer一起组织各节点的图像显示。除了Scene外所有节点只有一个父节点,可以有无数个子节点。但注意这里的父子关系并不是面象对象中的继承关系,仅仅是addChild的方式建立起来的父子。   CCDirector类存储了cocos2d中大量的全局配置信息,而且管理所有的cocos2d场景,它可以访问正在运行

Keenite的专栏 1410

STM32 IAP跳转后APP卡死?别慌,手把手教你修复HAL_RCC_OscConfig时钟配置冲突

本文深入分析了STM32 IAP跳转后APP在HAL_RCC_OscConfig函数中卡死的问题,揭示了PLL时钟配置冲突的根本原因。通过详细的代码示例和分步解决方案,指导开发者正确处理STM32F1/F4系列的时钟系统二次初始化问题,确保IAP+APP架构的稳定运行。

weixin_28685287的博客 364

PDN设计

作者:AirCity 2020.2.6 Aircity007@sina.com 本文所有权归作者Aircity所有 PDN设计的目的是降低电源纹波水平,减小电压跌落。我们通常要求LDO的文波水平是30mV,DCDC是50mV,超过这个就需要PDN设计。 PDN设计的方法是用不同的容值,合适的总电容量,降低电源平面与地平面之间的交流阻抗,确定容值总量和电容大小的过程,就是PDN设计过程。 为什么需...

AirCity123的博客 4146

cocos2d-x Sprite精灵对象创建方法

Sprite  精灵类     1.精灵对象创建方法           static Sprite * create() static Sprite * create(const std::string &filename) static Sprite * create(const::string &filename,const Rect &rect) 2.

divine_的专栏 688

【4. BSP开发指南 - [4.6. 安全启动使用说明]】

【4. BSP开发指南 - [4.6. 安全启动使用说明]】

Sugar_wolf的博客 271

cocos2d-js中Math对象的常用方法总结

cocos2d-js中Math对象的常用方法总结 1.丢弃小数部分,保留整数部分 parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.floor(5/2) 二、Math 对象的方法 1. Math.abs(num) : 返回num的绝对值 2. Math.acos(num) : 返回n...

LANGZI7758521的专栏 312

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Cocos2d-x基本概念整理(一)

场景构建模型 这是Cocos2d-x的场景构建模型(借用了《Cocos2d-x手机游戏开发》一书的插图)。 导演对应CCDirector类 场景对应CCScene类 背景对应CCLayer类 人物角色对应CCSprite类 动作对应CCAction类 摄像机对应CCCamera类,不过实际编程的时候好像可以忽略摄像机的存在。 接触多了你会发现其实所有的绘图框架都很像,比如Fla

guinao的专栏 2187

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

cocos2d一些注意事项及vector删除对象的方法

convertToNodeSpace 不考虑scale的影响 setContentSize只设置内容大小,影响之后的锚点位置,但是不影响绘制效果。超过contentSize的部分继续绘制  setTextureRect(Rect)比前者多了剪裁功能;setTextureRect(CCRectMake(1,2,3,4)); 从sprite左上角为起点,x=1,y=2,剪裁width=3,hei

u012944472的专栏 1417

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

cocos2d学习笔记1--基本对象

<br />感谢知易的cocos2d教程,在拜读他的教程时将一些要点记录下来,以便随时查阅。<br />1.场景 (CCScene):构成整个游戏的流程的画面就是我们所说的场景<br />    不同的场景都提供不同的操作,大致可以分为以下几类场景:展示类场景:播放视频或简单的在图像上输出文字,来实现游戏的开场介绍、 胜利、失败提示、帮助简介。选项类场景:主菜单、设置游戏参数等。 游戏场景:这是游戏的主要内容,除了这个场景之外的其他类场景基本上都是通用架构实现的。<br />   每个场景都是通过不同的层

j7fs的专栏 2312

cocos2d-x 基本样条动作

游戏中有事会希望精灵按着一些常规的轨迹进行运动,cocos2d-x中的CCCardinalSplineTo和其他子类有实现这样的功能,只需提供几个离散的点,游戏对象就可以根据这些离散开来的点模拟出相应的路径,这些路径就是相应的公式模拟出来的曲线,那就是基本样条。 这里CCCardinalSplineTo和CCCardinalSplineBy的关系与之前以“To”和"By"结尾的类类似,CCCat

果汁的专栏 1556

Cocos2d-x 网络访问之GET方法和POST

一、回顾:之前用过java和oc的网络编程     1.java需要在线程中执行网络操作这种耗时长的操作,在java中Thread的方法很简单方便,在Android开发时加上Handler就完美至极,可以实现网络访问和界面数据的更新实现异步,AsynTask是封装得比较好的线程访问方式,但是有其弱点就是线程需要排队,不好管理优先级;     2,oc用得并不是很多,但是的方式和C++类

CJ_star的专栏 4944

cocos2d之关于对象赋值

在C++中我们赋值都是通过 = 来进行赋值的,不过在此之前,我们应该首先要删掉this的某个指针成员,然后进行内存分配和赋值,但是在cocos2d中呢,我们不这样做了,是先release掉,然后再赋值,看例子代码: void someClass::setObject(CCObject *otherobject) { this->object->release(); otherob

专注,努力,勤奋 1235

Cocos2d的基本概念

Cocos2d-x是一个跨平台游戏引擎。游戏引擎是提供所有游戏都需要的公共功能的软件的一部分。我们以前经常听到API或者是框架,其实游戏引擎也是这样的东西。 游戏引擎包括了许多组件,可以有效提高游戏开发效率。 游戏引擎通常包括以下这些部分:renderer(渲染器), 2d/3d graphics( 二维/三维图形 ), collision detection(碰撞检测), physics eng...

weixin_40763897的博客 2352

cocos2d-x工厂方法

工厂方法是程序设计中一个经典的设计模式,指的是基类中只定义创建对象的接口,将实际的实现推迟到子类中。 如: 1 CCObject* factoryMethod() { 2 CCObject* ret = new CCObject(); 3 //在这里对ret对象进行必要的初始化操作 4 return ret; 5 } 这段看起来正常的...

a1333001203377的博客 147

【cocos2d-x】基本概念

下面是一个简单的游戏界面:让我们再来看一下,分解这个游戏界面的组件构成。一个菜单(Menu),几个精灵(Sprite),和几个标签(Label)。

Cauchy的博客 944
上一篇: cocos2d - 01 环境搭建
下一篇: iOS iAP 支付与购买
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值