- 博客(459)
- 资源 (55)
- 收藏
- 关注
原创 [ObjectC]Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以
2016-05-17 00:33:06 4198
原创 [ObjectC]Objective-C内存管理机制
Objective-C继承自C,拥有一套基于对象引用计数的内存管理体系。这跟C#或者Java的垃圾回收机制不同,倒是与C++后来的智能指针有些类似。这种引用计数的思想在很多地方也有应用,不过本质上说,仍然是需要程序员来手动管理计数的,只不过当计数值清零时,对象会被自动释放罢了。Objective-C中提供了两种内存管理机制:MRC(MannulReference Counting-手动引用计数
2016-05-12 02:34:39 792
原创 [Xcode]Xcode自动打ipa包脚本
打包脚本.sh文件# !/bin/shif [ ! -d ~/genParentPackage ];then mkdir -p ~/genParentPackagefiROOT_PATH=~/genParentPackage#############安装brew和xctool#############if which brew 2>/dev/null; then echo
2016-03-30 18:56:44 1588
原创 [Xcode]Provisioning Profile配置文件的来龙去脉
在xcode打包时会用到provisioningProfile的设置。如图:如图,parentsClient_dis从哪来呢?在这个界面生产添加得来的,它由配置参数APP ID和证书生产而来。如图:点击下载到本地文件是parentsClient_dis.mobileprovision。双击次文件,则添加到复制到这个目录“/Users/apple/Library/
2016-03-29 19:36:52 8359
原创 [cocos2dx-lua]Cocos2dx-Lua中Sprite精灵的3种创建方法
---1.从图片文件创建--适合于要显示的这张图片的全部区域或部分区域function TestTest:CreateSprite1() local png = "lobby/lobby.png" --文件路径 local sprite = cc.Sprite:create(png) self:addChild(sprite) local sprite2 =
2015-12-24 19:10:57 7348
原创 SVN命令使用详解
检出svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 --password 密码svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用
2015-09-08 21:08:06 1022
原创 [概念]MD5算法
MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。MD5功能输入任意长度的信息,经过处理,输出为128bit位的信息,32位字符串(数字指纹) 不同的输入得到的不同的结果(唯一性) 根据128位的输出结果不可能反推出输入的信息(不可逆)MD5属不属于加密算法?...
2015-09-06 20:52:24 950
原创 [概念]Base64编码
开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。Base64编码由来为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可
2015-09-01 20:55:45 890
原创 [Linux]工作中常见的命令
export 显示和设置环境变量值-f 带边环境变量为函数名称-n 删除指定的环境变量-p 列出所有的环境变量[root@localhost ~]# aaa=bbb #设置一个变量[root@localhost ~]# export aaa #加入环境变量[root@localhost ~]# env |grep aa #查看环境
2015-08-20 21:00:15 842
原创 [shell]常用语句
获取当前路径#!/usr/bin/env bash#获取当前文件的路径(不包括文件名)DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"echo ${DIR}echo ${BASH_SOURCE[0]} # 输出# /Users/ouyang/Desktop# /Users/ouyang/Desktop/log.s
2015-08-20 20:54:44 804
原创 [cocos2dx]实例认识分析MVC模式
mvc模式Model(模型):一般负责数据的处理View(视图):一般负责界面的显示Controller(控制器):一般负责前端的逻辑处理实例捉虫游戏,背景介绍:两类虫(蚂蚁和蜘蛛)进洞超过3个,玩家就失败。在实际开发中,我遇到的头疼麻烦的事,不知道M、V、C他们之间的调用是怎样的?M模型BugAnt和BugSpider都继承BugBase.
2015-08-11 21:45:40 3025
原创 [cocos2dx]事件分发机制--lua源码(二)
使用过程--加载组件cc(self):addComponent("components.behavior.EventProtocol"):exportMethods()--添加监听事件self:addEventListener("EVENT_PLAYER_DEAD", handler(self, self.changePlayerHead))--分发调用消息self:dispat
2015-07-28 18:40:08 3769
原创 [cocos2dx]概念——坐标系
屏幕坐标系和Cocos2d坐标系屏幕坐标系/UI坐标系:iOS, Android, Windows Phone等在开发应用时使用的是标准屏幕坐标系,原点在左上角,X轴向右,Y轴向下。(比如处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系。因此在cocos2d中对触摸事件做出响应前需要首先把触摸点转化到GL坐标系。可以使用CCDirector的convertToGL来完成这一转化。)Ope...
2015-07-27 20:08:40 940
原创 [cocos2dx]抽象元素——CCCamera摄像机类
概述所有节点都拥有一个摄像机类CCCamera。只有通过摄像机类,节点才会被渲染出来。当节点发生缩放旋转和位置变化的时候,都需要覆盖CCCamera类,让这个节点通过CCCamera类重新渲染。注意:CCNode类里有些方法可以实现缩放、旋转和位置变化,当使用摄像机类实现这些的时候,那些方法就不能同时使用了。使用摄像机类也不可以同时使用世界坐标了。 Cocos2D-X中的
2015-07-24 20:35:12 1687
原创 [cocos2dx]抽象元素——CCDirector导演类
在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作.在Coc
2015-07-21 18:47:21 872
原创 [cocos2dx]抽象元素——CCAction动作类
概述每个角色都可以通过CCAction实现运动、旋转、渐变等;CCAction有三个子类:FiniteTimeAction类:所有在有限时间能够完成的动作(action)的基类。Follow类:一种“跟随”某一个节点的动作。Speed类:一个action的运行速度,使他持续更长时间 (speed>1)或者更短的时间(speed。(Speed对象不能作为一个动作序列的一部分, 因
2015-07-18 21:07:31 920
原创 [cocos2dx]可视元素——CCSprite精灵类
CCSprite精灵是整个游戏开发处理的主要对象,包括主角和敌人、NPC等,甚至随机飘过的一片云或飞鸟从技术上讲也是精灵,因为精灵在cocos2d-x中,就是一个可以不断变化的图片,这些变化包括位置变化,旋转、放大缩小和运动等。 Sprite类继承关系精灵实际上可以说就是游戏总的主角,游戏中我们可操作的人物、宠物等待。我们所看到的精灵本质上就是一个静态的二维图。在Coco
2015-07-18 20:56:24 1241
原创 [cocos2dx]可视元素——CCLayer图层类
Layer是处理玩家事件响应的Node子类。与场景不同,层通常包含的是直接在屏幕上呈现的内容,并且可以接受用户的输入事件,包括触摸、键盘输入等。我们需要在层中加入Sprite(精灵)、文本标签或者其它游戏元素,并设置游戏元素的属性,比如位置、方向和大小;设置游戏元素的动作等。在我们设计好层以后,只需要把层按照顺序添加到场景中就可以显示出来了。一个场景中有多个可以交互的图层,每层显示不同的角色信息。
2015-07-18 20:46:09 1013
原创 [cocos2dx]抽象元素——CCScene场景类
在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的图层,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理这多个CCLayer,进行场景展现,相关业务逻辑的处理等; 一个场景就是一个界面,定义了所显示的所有角色图层信息
2015-07-18 20:35:12 825
原创 [cocos2dx]重要父类——CCNode节点类
CCNode节点类CCNode可以说是游戏元素的祖宗了,基本上我们看得到的游戏元素都是以它为原型进行扩展的。像CCScene,CCLayer,CCSprite,CCMenu,CCSpriteBatchNode等等都是从CCNode继承而来。另外如果我们要自定义精灵,那么从CCNode继承也是一个很不错的选择。CCNode直接从CCObject继承而来,有如下几个特点:可以包含其他C
2015-07-18 19:13:49 1544
原创 [cocos2dx]Mac操作系统下的cocos2dx-lua环境配置
Xcode运行程序1.下载安装cocos2d-x-3.6从官网下载cocos2d-x-3.6.zip,解压后是,命令行进入到此目录中,安装运行setup.py,运行干了什么,如图:最后的结果是,vim ~/.bash_profile#cocos start # Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x#export CO...
2015-07-10 20:50:53 6084 1
原创 [数据结构]非线性结构——多维数组
多维数组和广义表是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前驱和多个直接后继。多维数组1、一维数组(向量)——常用数据类型一维数组(向量)是存储于计算机的连续存储空间中的多个具有统一类型的数据元素。同一数组的不同元素通过不同的下标标识。(a1,a2,…,an)2、二维数组二维数组Amn可视为由m个行向量组成的向量,或由n个列向量组成
2015-07-09 21:25:51 4924
原创 [数据结构]线性结构——串
在非数值处理、事务处理等问题常涉及到一系列的字符操作。计算机的硬件结构主要是反映数值计算的要求,因此,字符串的处理比具体数值处理复杂。串类型的定义 串的基本概念串(字符串):是零个或多个字符组成的有限序列。记作: S=“a1a2a3...”,其中S是串名,ai(1≦i≦n)是单个,可以是字母、数字或其它字符。串值:双引号括起来的字符序列是串值。串长:串中所包含的字符个数称为该串
2015-07-08 20:32:09 7740
原创 [数据结构]线性结构——栈
栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。栈和队列被广泛应用于各种程序设计中。栈栈的概念栈(Stack):是限制在表的一端进行插入和删除操作的线性表。又称为后进先出LIFO(Last In First Out)或先进后出FILO(First In Last Out)线性表。栈顶(Top):允许进行插
2015-07-07 20:46:44 1547 1
原创 [数据结构]线性结构——队列
队列队列的基本概念队列(Queue):也是运算受限的线性表。是一种先进先出(FirstIn First Out ,简称FIFO)的线性表。只允许在表的一端进行插入,而在另一端进行删除。队首(front):允许进行删除的一端称为队首。队尾(rear):允许进行插入的一端称为队尾。例如:排队购物。操作系统中的作业排队。先进入队列的成员总是先离开队列。队列中没有元素时称为空队
2015-07-07 20:43:38 2422
原创 [数据结构]前言——概述
数据结构的位置计算机科学已经深入应用到各个领域,不仅有效地解决了各种工程和科学计算中的数值计算问题,而且也有效地解决了许多文本处理、信息检索、数据库管理、图像识别、人工智能等非数值的数据处理问题。数据结构有助于程序员更有效地组织数据、设计高效的算法、完成高质量的程序以满足错综复杂的实际需要。数据结构是计算机学科的重要分支研究领域。数据结构和算法在计算机学科中的地位十分重要,其他计算机科学领
2015-06-10 00:31:00 2668
原创 [cocos2dx]事件分发机制(一)
事件分发机制什么是事件? Event及子类EventXXX,核心成员_type谁监听事件? EventListener及子类EventListenerXXX,核心成员_onEvent谁派发事件? EventDispatcher分发器,核心方法dispatchEvent,(导演类全局实例化了一个EventDispatcher) 基本概念:事件监听器:封装了事件处理的代码;事件
2015-05-20 01:19:04 3620 1
原创 [cocos2d_lua]cocos2d_lua中的框架MVC
MVC简介MVC,即Model View Controller。Model(模型),一般负责数据的处理;View(视图),一般负责界面的显示;Controller(控制器),一般负责前端的逻辑处理。拿一款手机游戏来说,界面UI的显示、布局等就是View负责;点击了按钮,手势的滑动等操作由Controller来处理;游戏中需要的数据资源就交给Model。 其中cocos、Controlle...
2015-05-13 00:24:26 4571 1
原创 [cocos2d_lua]cocos2d_lua中class语法
在lua中,可以通过元表来实现类、对象、继承等。与元表相关的方法有setmetatable()、__index、getmetatable()、__newindex。关键:实现Lua面向对象可以分解为类的定义和类的实例化两个问题。类的定义主要是实现继承,即怎么让子类拥有父类的方法集。类的实例化需要解决实例如何共享类的方法集,但独享自己的成员变量实例。方案:子类在定义时复制所有基类的方法,在实例化...
2015-05-12 00:26:54 4843
原创 [cocos2dx]基于Cocos2d-x引擎的游戏框架设计
游戏架构与实现目前,很多基于cocos2d-x的代码基本上仅是对引擎功能的使用,完全不能按照游戏项目的标准来参考。作为游戏项目代码,不仅需要实现游戏的诸多功能,还需要从架构层面,从模块设计的角度来思考和设计,使代码具有更好的复用性和拓展性。对于游戏客户端,按照功能模块的区别可分为:引擎封装层模块、游戏数据管理模块、应用程序配置模块、日志记录模块、网络管理模块、消息事件机制模块、输入输出控制
2015-04-27 01:58:34 6876
原创 [C++基础]深拷贝和浅拷贝
普通类型对象的拷贝普通类型对象的拷贝很简单,就是值的复制而已。比如:int _tmain(int argc, _TCHAR* argv[]){ int a=1; int b=a; return 0;}类对象的拷贝类对象的拷贝相比于普通类型的拷贝就复杂多了,它存在着各种成员变量。比如://CopyTest.hclass CCopyTest{public: CCo
2015-04-27 00:55:26 788
原创 [cocos2dx]重要父类——CCObject对象类
CCObjectCCObject.h:#ifndef __CCOBJECT_H__#define __CCOBJECT_H__#include "platform/CCPlatformMacros.h"//Cocos2d命名空间NS_CC_BEGIN//声明以下几种类,在后面会定义相应类的成员变量的指针。以下几个类均是CCObject类的派生类。class CCZone
2015-04-26 12:43:24 2711
原创 [cocos2dx]cocos2dx主要概念
Cocos2dx 中的主要概念包括:应用、导演、场景、图层、精灵、动画、动作。层次关系如下:CCDirector(导演)在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游
2015-04-24 16:39:50 1179
原创 [cocos2dx]cocos2dx介绍
引擎简介Cocos2d-x 的原型是 Cocos2d,一个最早来源于几位 Python 开发者在 PyWeek 竞赛中的作品,目的是封装底层绘图代码,简 化2D 游戏的开发过程,避免每次都"重新发明轮子"。有了Cocos2d,开发者就可以把全部精力集中在游戏开发上,而不必关心绘图的细节。这个 Python 版本的引擎最早发布于2008 年 4 月,并一直保持版本的更新。在 Cocos2d
2015-04-23 22:01:20 2333
原创 [libevent]时间管理
为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数、时间缓存、时间校正和定时器堆的时间值调整等,主要在头文件evutil.h中。初始化检测Libevent在初始化时会检测系统时间的类型,通过调用函数detect_monotonic()完成,它通过调用clock_gettime()来检测系统是否支持monotonic时钟类型:
2015-04-22 10:09:05 1180
原创 [libevent]支持I/O多路复用技术
Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题。 统一的关键Libevent支持多种I/O多路复用技术的关键就在于结构体eventop,这个结构体前面也曾提到过,它的成员是一系列的函数指针, 定义在event-int
2015-04-21 23:15:52 1833
原创 [cocos2dx]Cocos Code IDE使用教程
环境下载安装java jdk,如果你安装的jdk是32位,那你就下载32位的IDE,如果是64位就下载64位的IDE下载安装Python,最好是2.7.5(32位还是64位根据你系统选择)下载安装vs2012版本及以上下载安装Cocos Code Ide 1.2.0 下载引擎cocos2d-x3.3, cocos2d-x-3.3.zip下载android SDK,adt
2015-04-21 14:44:24 6265
原创 [libevent]集成信号处理和集成定时器事件
上文中提到了libevent中I/O事件和Signal以及Timer事件的集成,本文将分析如何将Signal集成到事件主循环的框架中。 集成策略——使用socket pair上一文已经做了足够多的介绍了,基本方法就是采用“消息机制”。在libevent中这是通过socket pair完成的,下面就来详细分析一下。socket pair就是一个socket对,包含两个socket,一个读so
2015-04-21 00:17:10 932
原创 [cocos2dx]在windows7下搭建Cocos2D-X win32开发环境
Cocos2D-X 是一个开源的2D 移动游戏框架,它的原型是Cocos2D。此框架的目的是简化游戏开发的流程,让开发者能够专注于开发游戏本身。选择Cocos2D-X 的理由Cocos2d-X 的核心点是围绕Cocos2D 跨平台。使用Cocos2D-X 创建的项目可以很容易地运行在iOS、Android、Windows Phone 等移动设备上。Cocos2D-X 还支持Windows、
2015-04-20 16:23:56 3406
原创 [libevent]事件主循环
libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理事件。事件处理主循环libevent的事件主循环主要是通过event_base_loop ()函数完成的,其主要操作如下面的流程图所示,event_base_loop所作的就是持续执行下面的循环。 上图的简单描述就是:校正系统当
2015-04-20 13:25:42 5645
sqlite3API的封装
2013-07-17
远程文件下载--select模式
2013-05-31
Boost1.5.0
2012-12-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人