- 浏览: 244037 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
yulanlian:
...
实现在删除数据后,自增列的值连续 -
RonQi:
楼主写的很好,支持原创!
Google Protocol Buffers
摘自:知易教程
Cocos2d-iPhone 实现地图显示的有主要 2 组文件:
1) 负责整体地图的显示:CCTMXTiledMap.h, CCTMXTiledMap.m
2) 负责 xml 文件读取和解析:CCTMXXMLParser.h,CCTMXXMLParser.m
在实际游戏编程中,我们主要用到以下几个类:
1) CCTMXTiledMap
Layer 类的 init 凼数中通过以下的代码加载地图:(确保 PNG 文件不 tmx 在一起)
// Load level map gameWorld = [CCTMXTiledMap tiledMapWithTMXFile:@"Level1.tmx"]; [self addChild:gameWorld z:0 tag:9];
TMXTiledMap 是从 CocosNode 直接派生出来的。他的定义比我们预想的要简单:
@interface CCTMXTiledMap : CCNode { CGSize mapSize_; CGSize tileSize_; int mapOrientation_; NSMutableArray *objectGroups_; NSMutableDictionary *properties_; NSMutableDictionary *tileProperties_; }
分析初始化凼数 init 如下:
-(id) initWithTMXFile:(NSString*)tmxFile { NSAssert(tmxFile != nil, @"TMXTiledMap: tmx file should not bi nil"); if ((self=[super init])) { [self setContentSize:CGSizeZero]; CCTMXMapInfo *mapInfo = [CCTMXMapInfo formatWithTMXFile:tmxFile]; NSAssert( [mapInfo.tilesets count] != 0, @"TMXTiledMap: Map not found. Please check the filename."); mapSize_ = mapInfo.mapSize; tileSize_ = mapInfo.tileSize; mapOrientation_ = mapInfo.orientation; objectGroups_ = [mapInfo.objectGroups retain]; properties_ = [mapInfo.properties retain]; tileProperties_ = [mapInfo.tileProperties retain]; int idx=0; for( CCTMXLayerInfo *layerInfo in mapInfo.layers ) { if( layerInfo.visible ) { CCNode *child = [self parseLayer:layerInfo map:mapInfo]; [self addChild:child z:idx tag:idx]; // update content size with the max size CGSize childSize = [child contentSize]; CGSize currentSize = [self contentSize]; currentSize.width = MAX( currentSize.width, childSize.width ); currentSize.height = MAX( currentSize.height, childSize.height ); [self setContentSize:currentSize]; idx++; } } } return self; }
CCTMXTiledMap 直接由类 CCTMXLayer 来实现地图的每一个层。每一个 CCTMXLayer 的实例都是通过 Cocos2D-iPhone 标准的 AddChild 添加给 CCTMXTiledMap 的。
2) CCTMXlayer
CCTMXLayer 类定义如下:
@interface CCTMXLayer : CCSpriteBatchNode { CCTMXTilesetInfo *tileset_; NSString *layerName_; CGSize layerSize_; CGSize mapTileSize_; uint32_t *tiles_; // GID are 32 bit NSUInteger layerOrientation_; NSMutableArray *properties_; unsigned char opacity_; // TMX Layer supports opacity NSUInteger minGID_; NSUInteger maxGID_; // Only used when vertexZ is used NSInteger vertexZvalue_; BOOL useAutomaticVertexZ_; float alphaFuncValue_; // used for optimization CCSprite *reusedTile_; ccCArray *atlasIndexArray_; }显然,CCTMXLayer 对于“瓦片”图像块的管理是通过 CCSpriteSheet 来实现的。 因此,地图的每一个“瓦片”图像就是一个 CCSprite 对象。于是,每一个“瓦片”图 像都可以迚行任意的 CCSprite 操作(增加、删除、移劢、放缩、旋转、变色...)。所有 这些操作都是劢态迚行的。这就允许我们在游戏迚行过程中的对地图迚行劢态操作,通过劢态改变地图的状态来反映游戏精灵对环境产生的影响。
发表评论
-
ios 国际化相关
2011-10-08 18:49 1456添加国际化 1. 代码中使用字符串的地方 使用 NS ... -
iPhone开发笔记
2011-09-26 21:52 1104退回输入键盘: - (BOOL) textFie ... -
ios开发基础知识 - 1
2011-09-26 21:51 1129输出 command+shift+r NSLog(@& ... -
ios---超链接的UILabel教程
2011-09-26 21:50 1548超链接的UILabel教程 -
ios开发基础问题总结
2011-09-26 21:49 1284订阅 1,如何进入应用后首 ... -
UILabel用法
2011-09-26 20:45 1827/设置换行 UILabel*label; / ... -
IPhone之UIScrollView [转载]
2011-09-22 15:55 921原文地址:IPhone之UIScrollView作者:飞 ... -
手势识别
2011-09-03 17:19 895注册: UISwipeGestureReco ... -
“碰撞”探测
2011-08-21 14:28 845首先要向大家说明的是,所谓“碰撞”探测没有大家想想 ... -
Cocos2D 的事件处理机制
2011-08-21 07:21 1594摘自:知易教程 系统当前场景对象包含多个层 ... -
cocos2d游戏开发,常用工具集合
2011-08-20 19:40 834位图字体工具Bitmap Font ToolsBMFon ... -
iPhone OS 的 Touche 事件
2011-08-20 19:34 1350知易教程 基础知识 在开始介绍 iPhone OS ... -
iPad, iPhone, and Aspect Ratio
2011-08-05 11:58 956好,现在处理iphone上 ... -
Retina Display and Cocos2D
2011-08-05 11:57 1340最新版本的cocos2d完全 ... -
网络编程总结
2011-08-04 15:41 829一:确认网络环境3G/WIFI 1. 添加源文件和fra ... -
Cocos2D界面切换方式
2011-08-04 15:37 1639CCTransitionFade, //渐隐 ... -
Protocol协议的用法
2011-08-04 15:30 1260一、说明 两个类进行通讯,用协议就比较方便。 (书 ... -
IOS开源项目和官方例子汇总
2011-08-04 14:22 1851开源项目: 扫描wifi信息:http://code. ... -
cocos2d场景和UIViewController视图的切换
2011-08-04 14:20 1621cocos2d中从场景切换到UIViewController视 ... -
视差滚动
2011-08-02 21:09 1135我们已经有一个很酷的飞船在屏幕上了,但是,它看起来就好 ...
相关推荐
"cocos2d-iphone-2.0.tar.gz" 是一个压缩包,包含了Cocos2d-iPhone 2.0版本的所有源代码和相关资源。 Cocos2d-iPhone 2.0是该框架的一个重要版本,引入了许多新特性和改进,旨在提高性能和开发效率。以下是关于这个...
本文将详细介绍如何在Cocos2d中实现视频播放,以及相关的步骤和技术要点。 首先,我们需要了解Cocos2d的基础知识。Cocos2d是一个开源的游戏开发框架,基于Python、Objective-C和C++等语言实现,它提供了丰富的2D...
《cocos2d-x嵌入Webview:游戏与网页交互的深度解析》 在移动游戏开发领域,cocos2d-x作为一个广泛使用的2D游戏引擎,以其高效、跨平台的特性受到众多开发者青睐。然而,游戏往往需要与网页进行交互,以实现动态...
cocos2d-x提供了Sprite类,用于显示图像并进行简单的动画处理。源码中可能包含了战斗、移动等不同状态下的动画实现,值得深入研究。 3. **物理引擎**:策略游戏中可能涉及到单位的碰撞检测和物理行为模拟。cocos2d-...
在【压缩包子文件的文件名称列表】中,"Cocos2D"可能包含了Cocos2D的源代码文件、示例项目、文档、库和其他相关资源。通过研究这些文件,你可以逐步理解和掌握Cocos2D的内部工作机制,以及如何利用这些知识来创建...
在提供的"Classes"目录下,我们可以找到源代码文件,这些文件包含了游戏逻辑、场景切换、精灵定义、动作控制、事件处理等相关类。而"Resources"目录则包含游戏所需的图像、音频、XML配置文件等资源。 通过对这些...
本篇将深入探讨cocos2d-x地图编辑器的使用和相关知识点。 一、cocos2d-x地图编辑器概述 cocos2d-x地图编辑器并非内置于引擎本身,而是通常指的是Tiled Map Editor,一个跨平台的开源地图编辑工具,它能导出为cocos...
在cocos2d-master中,org目录下很可能包含了cocos2d引擎的Java源代码,如游戏场景管理、精灵、动画控制等相关类。 **cocos2d-android核心功能** - **场景和层管理**:cocos2d-android提供了一套灵活的场景(Scene...
在IT行业中,Cocos2d是一个非常流行的2D游戏开发...开发者通过自定义的`QR_Encode`和`QRSprite`类,成功地将二维码编码和渲染集成到Cocos2d的游戏或应用中,既实现了基本的显示功能,也具备了较高的可定制性和灵活性。
《Cocos2d-x实战 JS卷 Cocos2d-js开发》是一本专注于使用JavaScript进行Cocos2d-x游戏开发的专业书籍。随书源码包含了从第13章到第24章的示例代码,由于文件大小超出上传限制,源码被分为两个压缩包。在这些章节中,...
这个资料收藏包含了与Cocos2d相关的各种资源,包括源码、工具以及其他学习材料,旨在帮助开发者深入理解和使用这个强大的框架。 1. **源码分析**: - Cocos2d源码是理解其内部工作原理的关键。通过阅读源码,...
《cocos2d-x案例开发大全》第二章的源码主要涵盖了使用cocos2d-x进行游戏开发的各种实践技巧和示例。cocos2d-x是一个开源的游戏开发框架,基于C++,支持跨平台,包括iOS、Android、Windows等多个操作系统。本章的...
在iOS平台上,main.m通常会包含AppDelegate的实例化和Cocos2d初始化代码,从而确保ccjoystick可以正确地在游戏场景中加载和显示。 【cocos2d_Joystick_Prefix.pch】是预编译头文件,通常包含一些全局的宏定义和导入...
Cocos2d-x 2.2.x Json解析Demo 无需引入jsoncpp库 相关博文地址:http://blog.csdn.net/u012945598/article/details/17398925
6. **暴露接口**:为了让其他应用程序能够控制Cocos2D场景,你需要在MFC ActiveX控件中定义一些接口方法,这些方法可以调用Cocos2D的相关API。例如,你可以创建一个方法来改变场景中的精灵位置,或者播放特定的动画...
cocos2d提供了一些路径相关的类,如CCBezierBy、CCCatmullRomTo等,可以创建平滑的路径。结合A*寻路算法,我们可以自动生成合理的敌人行走路线。 七、数据结构与AI设计 为了实现敌人智能行为,我们需要设计简单的AI...
本项目是一款基于cocos2d的游戏——"切水果游戏",让我们一起探讨cocos2d在游戏开发中的应用及其相关知识点。 一、cocos2d框架介绍 1. **引擎概述**:cocos2d最初是为Python设计的,后来发展出了多个版本,包括...
在 Cocos2d-lua 中,我们可以使用 `cc.Label` 类来创建文本节点。默认情况下,Label 只能显示基本的纯文本,但通过集成特定的富文本库,如 `ccui.TextField` 或 `cc.LabelTTF`,我们可以实现富文本功能。 2. **富...
Cocos2d-x的`ui`模块提供了丰富的UI组件,如`Text`, `Button`等,可以在`Classes`目录下找到相关的UI布局和事件处理代码。 7. **性能优化**: 在源码中,可能会发现一些性能优化技巧,如缓存重复使用的对象,合理...
根据给定的文件信息,我们可以总结出一系列与Cocos2d相关的IT知识要点,这些要点主要围绕游戏开发、iOS编程以及使用Cocos2d引擎进行游戏制作的关键概念和技术。 ### Cocos2d游戏开发入门 #### 引言:游戏开发的新...