自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 资源 (9)
  • 收藏
  • 关注

原创 17【cocos2d-x 源码分析】:多分辨率支持的详细分析

对应源码位置:cocos2d-x-3.3\cocos\platform\GLView设计分辨率与屏幕分辨率cocos2d-x中,进行游戏设计时使用逻辑上的设计分辨率,当具体游戏运行在物理机上时对应具体屏幕的分辨率,这就存在从设计分辨率到具体屏幕分辨率的适配问题,主要有一系列的适配策略,这里暂不列举,但就源码进行分析,一目了然。//这里设置 设计分辨率的大小 并指定 设计分辨率的策略voi...

2019-05-26 00:31:30 414

原创 16【cocos2d-x 源码分析】:HttpClient 的详细分析

对应源码位置:cocos2d-x-3.3\cocos\network\Http*HttpRequest的实现typedef std::function<void(HttpClient* client, HttpResponse* response)> ccHttpRequestCallback;//(cocos2d::Ref::*SEL_HttpResponse) 代表cocos...

2019-05-24 10:51:56 694

原创 15.【cocos2d-x 源码分析】:localStorage的详细分析

对应源码位置:cocos2d-x-3.3\cocos\storage\local-storage\localStoragelocalStorage 的接口cocos2d-x提供了简单的本地数据存储的功能,其主要是由对sqlite的封装来实现。//初始化 数据库void CC_DLL localStorageInit( const std::string& fullpath = ""...

2019-05-23 21:49:09 651

原创 14.【cocos2d-x 源码分析】:Audio的详细分析

对应源码位置:cocos2d-x-3.3\cocos\audio\include\SimpleAudioEngineSimpleAudioEngine的实现SimpleAudioEngine是提供了简单的 播放音效,以及播放背景音乐的功能。class EXPORT_DLL SimpleAudioEngine{public: static SimpleAudioEngine...

2019-05-23 21:31:04 332

原创 13.【cocos2d-x 源码分析】:内存管理的详细分析

对应源码位置:(1)cocos2d-x-3.3\cocos\base\CCRef ;(2)cocos2d-x-3.3\cocos\base\CCAutoreleasePool内存管理的在引擎中的位置void DisplayLinkDirector::mainLoop(){ if (_purgeDirectorInNextLoop) { _purgeDirect...

2019-05-23 20:30:15 234

原创 12.【cocos2d-x 源码分析】:UI系统的详细分析(下)

对应源码位置:cocos2d-x-3.3\cocos\ui\UI*HBox与 VBox这两者的实现很简单class CC_GUI_DLL VBox : public Layout{ public: /** * Default constructor */ VBox(); /** * Default ...

2019-05-22 22:19:46 298

原创 11.【cocos2d-x 源码分析】:UI系统的详细分析(中)

对应源码位置:cocos2d-x-3.3\cocos\ui\UI*Layout的原理这里选取少量的重点部分。//找当前节点的下一个可以聚焦的节点//主要看思想 已经删了很多了Widget* Layout::getNextFocusedWidget(FocusDirection direction, Widget *current){ Widget *nextWidget = ...

2019-05-22 21:03:23 387

原创 10.【cocos2d-x 源码分析】:UI系统的详细分析(上)

对应源码位置:cocos2d-x-3.3\cocos\ui\UI*从 Widget 看起先从 一些布局的基本讲起//这里是 代表边距的类class CC_GUI_DLL Margin{public: float left; float top; float right; float bottom; public: Margin(); ...

2019-05-22 21:02:19 486

原创 9.【cocos2d-x 源码分析】:Texture的详细分析

对应源码位置:cocos2d-x-3.3\cocos\render\CCTexture*从Sprite谈起Sprite其实内部必然包含一个纹理图片,但我们写代码时候用到的是传入一个图片路径,从下面看://直接 传入Texture2D 对象Sprite* Sprite::createWithTexture(Texture2D *texture){ Sprite *sprite = ...

2019-05-22 10:41:39 1233

原创 8.【cocos2d-x 源码分析】:渲染部分的详细分析(下)

对应源码位置:cocos2d-x-3.3\cocos\render*从 RenderQueue说起//渲染 队列class RenderQueue {public: void push_back(RenderCommand* command); ssize_t size() const; //按照 z值进行排序 void sort(); Render...

2019-05-20 22:26:12 499

原创 7.【cocos2d-x 源码分析】:渲染部分的详细分析(中)

对应源码位置:cocos2d-x-3.3\cocos\render*从RenderCommand看起class CC_DLL RenderCommand{public: //以下 主要 7种 enum class Type { UNKNOWN_COMMAND,//这一种 就是不知道是哪一种 QUAD_COMMAND, CU...

2019-05-20 11:14:32 442

原创 6.【cocos2d-x 源码分析】:渲染部分的详细分析(上)

对应源码位置:cocos2d-x-3.3\cocos\render\*主循环中的渲染部分下面代码选自 void Director::drawScene()if (_runningScene) { //clear draw stats _renderer->clearDrawStats(); //render th...

2019-05-18 20:36:14 325

原创 5.【cocos2d-x 源码分析】:Node 类体系的详细分析

对应源码位置:(1)cocos2d-x-3.3\cocos\2d\CCNode (2)cocos2d-x-3.3\cocos\2d\CCLayer(3)cocos2d-x-3.3\cocos\2d\CCSceneNode是整个游戏对象的根节点基本后面熟知的 sprite 、 layer 以及 scene都是他的子类。Node类的部分代码由于Cocos2d-x采用继承的方针组织整个游戏对象...

2019-05-16 17:58:45 692

原创 4.【cocos2d-x 源码分析】:EventDispatcher类的详细分析

对应源码位置:(1)cocos2d-x-3.3\cocos\base\CCEvent*先从 Event 类开头class CC_DLL Event : public Ref{public: //可想而知 对应这几个类型 分别有对应的Event子类 //以及 对应事件的 eventlistener enum class Type { TOUCH, ...

2019-05-16 11:00:23 350

原创 3.【cocos2d-x 源码分析】:ActionManager类的详细分析

对应源码位置:(1)cocos2d-x-3.3\cocos\2d\CCActionManager (2)cocos2d-x-3.3\cocos\2d\CCAction(3)cocos2d-x-3.3\cocos\2d\CCActionInterval (4)cocos2d-x-3.3\cocos\2d\CCActionInstant先看看ActionManager 的大致原理在Director...

2019-05-14 17:13:25 331

原创 2.【cocos2d-x 源码分析】:Scheduler类的详细分析

对应源码位置:(1)cocos2d-x-3.3\cocos\base\Scheduler.*Scheduler 一般译作 定时器,主要用于控制触发每帧都会需要的update以及用户自定义的更新操作。Timer类的实现这是一个 Light-weight timer,提供了指定delay延迟时间后,每次经过seconds时间间隔,触发trigger时间一次,执行次数为 _repeat+1,或...

2019-05-14 10:11:23 379

原创 1.【cocos2d-x 源码分析】:引擎 mainloop 简要分析

以Win32平台为例,找到 main 函数int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nCmdShow){ UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCm...

2019-05-13 16:54:37 570

原创 PDF内复制文字多余换行问题【完美解决】

问题描述从PDF中复制文字后粘贴,结果每行出现换行。影响最大的就是笔者google翻译论文的时候,效果很差

2019-05-08 11:33:00 19461 4

原创 C++内存管理-笔记

本文主要内容为 侯捷先生 的《C++内存管理》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。内存分配方式无论是哪种方式,最终使用的都是c语言底层的malloc。C++ new 关键字编译器将 new关键字翻译成 分配内存和调用其构造函数两部分。分配内存使用运算符 new,如果类本身有自定义 new运算符,则调用自定义版本,否则使用全局的 ::operator new,同理...

2019-04-26 16:13:53 343

原创 C++ Move与Forward实现原理

这部分可重点参考《C++ Primer 》第5版 P608-P614,写的很透彻。Forward的使用#include<iostream>#include<string>#include<vector>using namespace std;template<typename T>void print(T& t) { c...

2019-04-26 12:39:24 5137 4

原创 C++新标准C++11&14-笔记

本文主要内容为 侯捷先生 的《C++新标准C++11&14》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。 语法部分

2019-04-25 22:26:09 1412

原创 C++ type_traits实现原理

以 is_void 为例分析,源代码选择vs2017库文件#include<iostream>#include<type_traits>int main(){ std::cout << std::is_void<void>::value;// 1 std::cout << std::is_void<int>::va...

2019-04-24 22:23:47 1002

原创 STL标准库与泛型编程-笔记

本文主要内容为 侯捷先生 的《STL标准库与泛型编程》课程个人学习记录,并非完全照搬讲义,有机会请读者看原视频。STL结构泛型 forc++11之后,提供了泛型for,更方便的用在容器遍历。std::vector<int> v = {1,2,3};for (auto &it : v){ std::cout << it <<std::e...

2019-04-24 20:28:09 716

原创 C++ typename与非类型类模板参数

typename 的特殊用法C++ STL源码中有如下用法:template<class T>void foo() { typedef typename T::iterator iterator_type; // ...}这里 typename 主要作用是告诉编译器 “ 这是个类型,请放行通过!”,因为**T:

2019-04-24 14:28:27 415

原创 C++11给Non-static Data Member赋值

class Widget { private: int x{ 0 }; // fine, x's default value is 0 int y = 0; // also fine int z(0); // error! 这会与函数声明冲突};这里的一个背景是C++11允许了类在声明的时候直接给Non-static Data Member复值。而在C++98,你要...

2019-04-18 10:53:28 5538

原创 四元数,四叉树的理解

四元数四元数是复数向三维的扩充扩展,使用复数乘法来实现旋转。具体参考如下:Understanding QuaternionsUnderstanding Quaternions 中文翻译四叉树其实就是将二维空间使用矩形大小来表示,每个结点分为 0:LeftUp, 1:LeftDown, 2:RightUp, 3:RightDown,然后递归存储数据,一般数据存储在叶子节点,也可以进行改进,...

2019-04-09 22:44:18 456

原创 6.快节奏的多人游戏 (第六部分):Demo代码讲解(译者自加)

1.**Entity **代表客户端与服务端的传输模型,代表客户端的属性,服务端更新后将该对象返回客户端。var Entity = function() { this.x = 0; this.speed = 2; // units/s this.position_buffer = []; } // Apply user's input to this entity. ...

2019-03-29 22:15:53 396

原创 5.快节奏的多人游戏 (第五部分):样例代码和生动的Demo

英文原文地址 Fast-Paced Multiplayer: Sample Code and Live Demo能力有限,如有错误,请谅解,并欢迎指正!      这是客户端 - 服务器体系结构的示例实现,演示了我的快节奏的多人游戏系列文章中解释的主要概念。除非你先阅读这些文章,否则没有多大意义。  &nb...

2019-03-29 19:58:16 815

原创 4.快节奏的多人游戏 (第四部分):延迟补偿

英文原文地址 Fast-Paced Multiplayer (Part IV): Lag Compensation能力有限,如有错误,请谅解,并欢迎指正!介绍前三篇文章解释了客户端 - 服务器游戏架构,可以总结如下:服务器从所有客户端获取带有时间戳的输入服务器处理输入并更新世界状态服务器将常规世界快照发送给所有客户端客户端发送输入并在本地模拟其效果客户获得世界更新和同...

2019-03-29 17:19:44 446

原创 3.快节奏的多人游戏 (第三部分):实体插值

英文原文地址 Fast-Paced Multiplayer (Part III): Entity Interpolation能力有限,如有错误,请谅解,并欢迎指正!介绍      在本系列的第一篇文章中,我们介绍了权威服务器的概念及其防止客户开挂的用处。然而,天真地使用这种技术可能会导致关于可玩性和响应性的潜在问题。在第二篇文...

2019-03-29 17:01:01 745

原创 2.快节奏的多人游戏 (第二部分):客户端预测和服务器协调

英文原文地址 Fast-Paced Multiplayer (Part II): Client-Side Prediction and Server Reconciliation能力有限,如有错误,请谅解,并欢迎指正!介绍      在本系列的第一篇文章中,我们探讨了一个客户端 - 服务器模型,它具有权威服务器和愚蠢的客户端...

2019-03-29 16:19:02 832

原创 1.快节奏的多人游戏 (第一部分):客户端 - 服务器游戏架构

英文原文地址 Fast-Paced Multiplayer (Part I): Client-Server Game Architecture能力有限,如有错误,请谅解,并欢迎指正!介绍      本文是探索快节奏的多人游戏系列文章的第一篇,这个系列主要有关快节奏的多人游戏的相关技术和算法。如果您熟悉有关多人游戏的概念,您可...

2019-03-29 15:14:10 656

原创 网络游戏同步机制的思考

1.为什么同步机制网络游戏中,由于网络延迟的不确定性,造成游戏玩家游戏内容的不一致性问题,因此需要同步机制进行处理。主要分为帧同步与状态同步两种。2.帧同步     早先,在局域网中使用Peer-to-Peer模式,大致原理为:所有玩家将输入操作发送给与自身相连的客户端,让他们也去根据发送的操作模拟游戏世界。这样在网络情况好的情况下,表现很好...

2019-03-21 23:04:34 2063

原创 基于OpenGL的 Breakout游戏

1.近来学习OpenGL,跟着教程最后做了一个demo,效果如下。

2019-03-08 22:17:35 846

原创 字符迷阵

#include&amp;amp;lt;vector&amp;amp;gt;#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;string&amp;amp;gt;using namespace std;vector&amp;amp;lt;int&amp;amp;gt; ves;int M, N;char **map;int times = 0;void fin

2019-03-08 22:14:50 237

原创 推箱子

#include&lt;iostream&gt;#include&lt;queue&gt;#include&lt;cstdio&gt;using namespace std;int M, N;char map[10][10];int x, y, bx, by, ex, ey;int a[] = { 0,0,1,-1 };int b[] = { 1,-1,0,0 };struct ...

2019-03-08 22:09:33 144

原创 动态链接库的引入库

动态库引入库:在使用动态库的时候,往往提供两个文件:1.引入库(.lib)和.dll。引入库包含被Dll导出的函数和变量的符号名,Dll包含实际的函数和数据。在编译链接可执行文件时,只需要链接引入库,Dll中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载Dll,访问Dll中导出的函数。具体可参考静态链接库、动态链接库使用方法...

2019-01-24 10:54:18 737

原创 7.补充知识

补充知识局部变量和代码块Lua语言中的变量在默认情况下是全局变量,所有的局部变量在使用前必须声明。局部变量的作用域仅仅在声明它的代码块(一个代码块是一个控制结构的主体,或者函数的主题,或者是一个程序段(Lua中一个Lua文件或者交互模式的一行称为程序段))local x=1局部变量有常见的作用域,局部变量的声明可以包含初值,未赋初值则为nil。还可以使用do-end程序块。local ...

2019-01-07 21:51:25 253 1

原创 6.输入输出

输入输出对于文件操作而言,Lua I/O库提供了两种不同模型。简单I/O模型简单I/O 模型虚拟了当前输入流和一个当前输出流,其I/O操作在这些流上实现的。默认当前输入流为标准输入流(C的stdin),输出流为标准输出流(C的stdout).io.input与io.output可以用于改变当前的输入输出流,调用io.input(file-name) 会以只读模式打开指定的文件,并将其设置...

2019-01-07 16:37:19 131

原创 5.函数

函数函数的简单定义:function add( a,b ) local c=a+b print(c) return cendprint(add(1,2))--输出33函数调用时:当函数只有一个参数且该参数是字符串常量或表构造器时,括号可选print "abc" -- 等价于 print("abc")print {1,2,3} -- 等价于 print({1,2,3})...

2019-01-04 15:23:15 139

huffman APP源码

翻出来的以前写的huffman编码相关APP,主要用于huffman编码实现文字的压缩与解压缩

2018-05-23

计算机网络统考题

突然翻出来的计算机网路统考题,可以在期末复习派上用处。

2018-05-23

opencv3.0已使用cmake编译文件

opencv3.0已使用cmake编译文件,为了资源量小,已经抽取出了关键部分吗,遇到问题博客留言。

2017-04-01

android zxing demo

基于android zxing的二维码扫描/生成 特别适合二次开发 上传太累 所以收一分。

2017-03-19

java Swing实现三子棋源码

java Swing实现三子棋源码,自己亲自动手实现,所以收一分。

2016-10-15

消灭星星源码及资源

对书中源码做了一定的修改,更正,以及简化,方便直接对该游戏开发思路学习

2016-09-24

cocos2d-x 案例开发大全 第二章(源码)

与3.0有很多差别,可以私信找我要修改版的。。

2016-05-08

Android百战经典

适合Android初中级的童鞋,自己亲试过,感觉里面例子都挺详细。

2016-05-04

空空如也

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

TA关注的人

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