自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蚂蚁的坚持

生命不息、学习不止

  • 博客(31)
  • 收藏
  • 关注

转载 Cocos2d-x3.2与OpenGL渲染总结Cocos2d-x3.2的渲染流程

最近几天,我都在学习如何在Cocos2d-x3.2中使用OpenGL来实现对图形的渲染。在网上也看到了很多好的文章,我在它们的基础上做了这次的我个人认为比较完整的总结。当你了解了Cocos2d-x3.2中对图形渲染的流程,你就会觉得要学会写自己的shader才是最重要的。    第一,渲染流程从2.x到3.x的变化。    在2.x中,渲染过程是通过递归渲染树(Rendering tr

2015-04-28 16:58:15 472

原创 coco2dx-动作(Action)原理二 动作分类详解

http://blog.csdn.net/zh13544539220/article/details/45223863上篇文章是关于Action的工作流程和ActionManager的执行原理,本文说说Action的分类和具体的设计动作类型的分类:一、限时动作:FiniteTimeAction包括:即时动作(CCActionInstance)和持续时间动作(CCActi

2015-04-27 20:28:42 989

原创 coco2dx-定时器(Scheduler)原理二 -- Scheduler

Scheduler 类在Scheduler类之前声明了四个结构体,我们看一眼struct _listEntry;struct _hashSelectorEntry;struct _hashUpdateEntry; #if CC_ENABLE_SCRIPT_BINDINGclass SchedulerScriptHandlerEntry;#endif后

2015-04-24 15:44:24 1529

原创 coco2dx-定时器(Scheduler)原理一 -- Timer

这章我们就来剖析Cocos2d-x的调度器 Scheduler 类的源码,从源码中去了解它的实现与应用方法。直入正题,我们打开CCScheduler.h文件看下里面都藏了些什么。打开了CCScheduler.h 文件,还好,这个文件没有ccnode.h那么大有上午行,不然真的吐血了, 仅仅不到500行代码。这个文件里面一共有五个类的定义,老规矩,从加载的头文件开始阅读。#i

2015-04-24 15:32:26 1132

原创 coco2dx-动作(Action)原理

相关类Action及子类, 提供如何改变Node属性的算法Node,被Action改变的对象ActionManager,Action的驱动器Action类图由一个例子说开例子// Move sprite 20 points to right in 2 secondsauto moveBy = MoveBy

2015-04-23 16:55:05 2129

转载 Cocos2d-x 3.3为Android平台提供的封装

proj.android分析AndroidManifest.xml1. use opengl es 2.01"0x00020000" />2. 问题1,在哪里用到的这个so?123        "android

2015-04-15 16:02:45 1322

转载 OpenGL ES之GLSurfaceView学习四:Android Demo里的Cube分析

关于android中Cube的绘制,可以看出一个3D图像的绘制机制。本文分析了Cube对象。 需要用到两张图片:第一张是立方体顶点顺序和位置图,第二张是三角面示例图。    [java] view plaincopypackage com.example.android.apis

2015-04-15 15:53:54 744

转载 OpenGL ES之GLSurfaceView学习三:交互式的实例

import javax.microedition.khronos.egl.EGLConfig;  import javax.microedition.khronos.opengles.GL10;  import android.app.Activity;  import android.content.Context;  import android.opengl.GLSurfa

2015-04-15 15:34:05 481

转载 OpenGL ES之GLSurfaceView学习二:非交互式的实例

使用GLSurfaceView开发3D应用时,如果是非交互式的应用,可以直接使用GLSurfaceView。如果需要交互式的行为,则需要继承GLSurfaceView并重写一些方法。交互式应用示例见下篇。  [java] view plaincopyimport javax.microedition.khronos.e

2015-04-15 14:45:03 416

转载 OpenGL ES之GLSurfaceView学习一:介绍

原文地址::http://120.132.134.205/cmdn/supesite/?uid-5358-action-viewspace-itemid-6527 GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。        GLSurfaceView提供了下列特性:                1> 管理一个

2015-04-15 14:41:46 510

转载 Render的mode可以设为两种模式

Render的mode可以设为两种模式,一种是自动循环模式,也就是说GL线程以一 定的时间间隔自动的循环调用用户实现的onDrawFrame()方法进行一帧一帧的绘制,还有一种的“脏”模式,也就是说当用户需要重绘的时候,主动 “拉”这个重绘过程,有点类似于Canvas中的invalidate()具体的调用方法是在GLSurfaceView中a.自动模式setRenderMo

2015-04-15 14:29:20 7034

转载 Android 第一个OpenGL ES程序

在你的Android应用中用OpenGL ES绘制图形,首先需要有一个容器,最直接的方法是实现GLSurfaceView 和  GLSurfaceView.Renderer。  前者是一个放置图形的View容器,后者用来控制在这个View中如何进行绘制。   GLSurfaceView只是一种选择,比较适合于全屏绘制图形或者近似全屏绘制,其他可以选择的还有 Textur

2015-04-15 14:27:38 532

转载 HTML5做个画图板

首先要说明的是这里不是用鼠标画画,而是在触摸设备上用手指,比如ipad。做画图板,自然使用html5的canvas来实现了。在canvas中我们可以画圆,画矩形,画自定义的线条等等。这次主要使用的画圆跟画线条来实现。html中支持对触摸事件的响应。onTouchStart 触摸开始onTouchMove 触摸滑动onTouchEnd 触摸结束有了这些事件,我

2015-04-10 14:31:25 1267

转载 Html5 Canvas画线有毛边解决方法

Html5 Canvas 所有的画线指令画出来的线条都有毛边(比如 lineTo, arcTo,strokeRect),这是因为在Canvas中整数坐标值对应的位置恰巧是屏幕象素点中间的夹缝,那么当按这样的坐标进行线条渲染时所要用到的就是夹缝两边的象素点,这样即便设置了lineWidth为1也将看到两个象素效果的线条,解决方法原象素点+0.5进行偏移。下面是处理前后的效果比较:

2015-04-08 14:35:59 9591

转载 JS在子类中用Object.getPrototypeOf去调用父类方法

每个function有个prototype属性,称为原型,每个对象也有个原型。Firefox/Safari/Chrome/Opera 中可以通过__proto__来访问,IE中没有提供相关接口。 function Person(){ this.method1 = function(){} } Person.prototype.method2 = function(){}

2015-04-08 14:34:01 1882

转载 HTML5触摸事件(touchstart、touchmove和touchend)

HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享。今天为大家介绍的事件主要是触摸事件:touchstart、touchmove和touchend。  一开始触摸事件touchstart、touchmove和touchend是iOs版Safari浏览器为了向开发人员

2015-04-08 11:39:22 786

转载 一个不错的HTML5 Canvas多层点击事件监听实例

CanvasRenderingContext2D.prototype.roundRect = function(x, y, width, height, radius, fill, stroke) { if (typeof stroke == "undefined") { stroke = true; } if (typeof radius === "undefined") { rad

2015-04-07 17:57:26 3878

转载 提高HTML5 canvas性能的几种方法(转)

简介HTML5 canvas 最初起源于苹果(Apple)的一项实验,现在已经成为了web中受到广泛支持的2D快速模式绘图(2D immediate mode graphic)的标准。许多开发者现在利用它来实现众多的多媒体项目、可视化醒目以及游戏等等。然而,随着我们构建的应用程序的复杂度的增加,我们难免会遇到所谓的性能问题。已经存在众多优化canvas性能的方法了,但是还没有一

2015-04-07 15:50:00 1524

转载 js中this的总结

在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如C++、C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便和意义确定的。JavaScript也提供了这个this关键字,不过用起来就比经典OO语言中要"混乱"的多了。    下面就来看看,在JavaScript中各种this的使用方法有什么混乱之处?    1、在HTML元

2015-04-07 15:34:33 393

转载 JS-arguments.callee

argument代表当前函数的参数数组  arguments.callee表示引用当前正在执行的函数,或者说是调用arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式。通过如下例子,可以更好的理解概念。var func = function() { alert(func === arguments.callee);}func(); 

2015-04-07 15:20:30 1495

转载 JS之Window对象

一.说明:他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用“Window.XXX”这种形式,而是直接使用“XXX”。一个框架页面也是一个窗口。二.Window窗口对象有如下属性。   1.name 窗口的名称,由打开它的连接()或框架页()或某一个窗口调用的 open() 方法(见下)决定。一般我们不会用这个属性。   2.status

2015-04-07 14:47:38 372

转载 深入了解javascript中的prototype与继承

通常来说,javascript中的对象就是一个指向prototype的指针和一个自身的属性列表。javascript创建对象时采用了写时复制的理念。只有构造器才具有prototype属性,原型链继承就是创建一个新的指针,指向构造器的prototype属性。prototype属性之所以特别,是因为javascript时读取属性时的遍历机制决定的。本质上它就是一个普通的指针。构造器包括

2015-04-07 14:34:17 331

转载 javascript深入理解js闭包

一、变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域。 变量的作用域无非就是两种:全局变量和局部变量。 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 Js代码   var n=999;  function f1(){    alert(n);  }  f1(); // 999另一方面,在函数外部自然无

2015-04-07 14:24:51 353

转载 JS 中 new 操作符

按照javascript语言精粹中所说,如果在一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上。这个话很抽象,我想用实例来让自己加深理解。1.如果就一个函数,没有返回值,没有prototype成员,然后使用new,会是什么结果呢?如果一个函数没有返回值,那么如果不使用new来创建变量,那么该变量的值为un

2015-04-07 13:40:28 407

原创 网络游戏通信协议

1、 概述   游戏通信协议包含两种不同的部分:客户端和服务器(C-S)之间的交互协议,游戏内部服务器(S-S)之间的交互协议。前者为了降低延迟,应该尽可能减少报文长度。同时,为了防止外挂,必须作加密处理。相反,后者在服务器之间,通信协议就可以比较灵活。  客户端和服务器的通信经过服务器的网关,经过中转分发到其他类型的服务器上或者分发给客户端。   2、客户端和服务器通信协

2015-04-03 16:19:28 8880

转载 C++ socket编程基础五(I/O - 同步,异步,阻塞,非阻塞 )

同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不

2015-04-03 15:59:00 7555 1

原创 C++ socket编程基础四(I/O多路复用)

除了可以采用多进程和多线程方法实现并发服务器之外,还可以采用I/O多路复用技术。通过该技术,系统内核缓冲I/O数据,当某个I/O准备好后,系统通知应用程序该I/O可读或可写,这样应用程序可以马上完成相应的I/O操作,而不需要等待系统完成相应I/O操作,从而应用程序不必因等待I/O操作而阻塞。与多进程和多线程技术相比,I/O多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维

2015-04-03 11:00:11 5168

原创 C++ socket编程基础三(Windows异步套接字)

异步套接字:如果使用阻塞的套接字的话,在控制台下还好!如果是WIN32程序的话,那么就容易造成界面的假死,因为接收函数一直等待有消息进来之后才会被返回!所以此时界面一直属于假死的状态,如果你乱动的话,那么就容易真死了。解决办法如下:第一:使用多线程技术,多线程和SOCKET结合的话,可以使用单独一个线程来接收消息。这样即使接收函数阻塞了也不会影响其他线程,例如界面线程。但是如果使用多线程的

2015-04-03 10:48:44 6701

原创 C++ socket编程基础二(三种Socket:TCP,UDP,原始Socket)

一、基于TCP(面向连接)的的Socket 1、服务器端 创建套接字SOCKET socket( int af, //参数af指定通信发生的区域:AF_UNIX、AF_INET、AF_NS等,而DOS、 WINDOWS中仅支持AF_INET,它是网际网区域。因此,地址族与协议族相同。 int type, //参数type 描述要建立的套接字的类型。这里分三种:TCP

2015-04-02 15:46:30 5045

原创 C++ socket编程基础一(概念和常用API)

SOCKET一种进程通讯的方式,简言之就是调用这个网络库的一些API函数就能实现分布在不同主机的相关进程之间的数据交换. SOCKET几个定义概念: 一、是IP地址:IP Address我想很容易理解,就是依照TCP/IP协议分配给本地主机的网络地址,就向两个进程要通讯,任一进程要知道通讯对方的位置,位置如何来确定,就用对方的IP二、是端口号:用来标识本地通讯进程,方便

2015-04-02 15:19:30 3965 1

转载 简单的 C++ SOCKET编程 ---基于TCP/IP协议

server端: #include #include #pragma comment(lib,"ws2_32.lib")void main(){ //创建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err; err=WSAStartup(myVersionR

2015-04-02 10:56:18 904

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除