自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 网易游戏客户端开发工程师面试

一面:(视频面试)Unity性能优化实时渲染和延迟渲染描边实现阴影实现如何申请的指针在堆上的地址是64的倍数Blin-phong公式多线程服务器如何解决死锁问题Unity协程原理一道关于排行榜的数据结构体一道2个数组做加法的算法题...

2020-02-24 18:50:17 3065 3

原创 腾讯游戏客户端开发面试 (Unity + Cocos) 双重轰炸 社招6轮面试

本人普通一本毕业2年多 一面: HR巴拉巴拉..................15分钟预约了时间视频面试 二面: 技术视频面试我去酒店开了个房,看了30分钟斗鱼dota2直播 然后面试就开始了...虚函数实现,多态实现,虚函数纯虚函数作用,如何让项目代码架构更好STL vector,allocator,map,unorder_map,红黑树 原理扩展因子是多少...

2020-02-19 13:21:54 5894 9

原创 unity 开发问题记录以及解决方案

3D Text 穿透场景物体解决https://blog.csdn.net/alayeshi/article/details/78095559Random范围问题:https://answers.unity.com/questions/233543/randomrangeint-int-returning-only-min-value.html简单点就是int的时候max是不包含的,...

2019-10-14 21:36:28 323

转载 引擎开发_ 碰撞检测_GJK 算法详细介绍

原地址:https://blog.csdn.net/heyuchang666/article/details/55192932概述和SAT(分离轴定理)算法一样,GJK算法也只对凸体有效。 GJK算法的优势是:通过support函数(后面会详细讲述),从而支持任何凸体形状之间的碰撞检测;相比SAT算法,你不需要一些额外的操作,比如增加特殊的代码和算法处理曲面形状。GJK是一...

2019-07-23 20:23:59 1980

原创 c++ const 指针的情况

其实很简单int a = 1, b = 2; // 正确 { int *p = &a; p = NULL; *p = 5; } { const int *p = &a; p = &b; //正确 //*p = 5; //错误 } { int const *p = &a; p = &b; //正确 //*p...

2019-07-02 15:13:01 122

原创 有向图判断是否有环

#LeetCode1.DFS需要建立有向图,用二维数组来建立,我们需要一个一维数组 visit 来记录访问状态,这里有三种状态,0表示还未访问过,1表示已经访问了,-1 表示有冲突。大体思路是,先建立好有向图,然后从第一个门课开始,找其可构成哪门课,暂时将当前课程标记为已访问,然后对新得到的课程调用 DFS 递归,直到出现新的课程已经访问过了,则返回 false,没有冲突的话返回 t...

2019-06-13 13:11:00 708

转载 C++ 模板特化和偏特化

一、模板的定义1.类模板template <class T>class compare{public: bool IsEqual(T t1, T t2) { return t1 == t2; }};int main(){ char str1[] = "Hello"; char str2[] = "Hello"...

2019-06-04 12:26:26 206

原创 C++实现了一个线程池,别人的接口总归不是那么满意

造轮子啊造轮子,造轮子啊造轮子。项目地址: https://github.com/EricDDK/ThreadPool线程池实现也是很简单,就是Pool管理一个vector,vector里存放着n个Task对象,对象中包含着一根线程在跑,平时完全sleep,当Pool查询最少的Task队列并插入一条任务给Task对象的时候,线程自动唤醒,跑完Task执行回调,然后再检测再等...

2019-05-29 17:28:40 148

原创 C++实现了一个跨平台的coroutine协程库,Linux Mac Windows

!! 项目地址: https://github.com/EricDDK/coroutinewindows下是用fiber实现的,也就是win下的纤程Linux下是ucontext实现的,代码很简单协程的话,简单点说就是在一根线程中实现多线程的效果,但是没有线程的上下文切换的开销,线程上下文开销是由CPU操作的,协程是自己用代码实现保存切换上下文的。2个重要的函数re...

2019-05-27 14:25:42 716

转载 linux 安装SSDB,配置记录

SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用Google高性能的存储引擎LevelDB,适合大数据量处理并把性能优化到Redis级别,具有Redis的数据结构、兼容Redis客户端,还给出了从Redis迁移到SSDB的方案。本文是将SSDB安装和测试的步骤记录下来,总结成文档,便于日后使用。1、...

2019-05-24 13:34:21 483

原创 写了一个json库的c++实现,接口方便清晰

地址:https://github.com/EricDDK/Djson有lua和c++版本的cpp版本的创建json和序列化都可以像lua一样// GeneratorDjson::Json j = DjsonObject{ { "key1", "Value" }, { "key2", false }, { "key3", DjsonArray{ 0,1,2,3,4 } ...

2019-05-24 13:33:41 408

原创 3D桌球,cocos2d-x lua 打造

支持拉杆,加塞github地址:https://github.com/EricDDK/billiards_cocos2d

2019-05-21 15:59:01 651

原创 单向链表的插入排序和归并排序

插入排序: O(n^2)class Solution {public: ListNode* insertionSortList(ListNode* head) { ListNode *dummy = new ListNode(-1), *cur = dummy; while (head) { ListNode* tmp = h...

2019-05-19 19:14:14 149

原创 十六进制某一位取反

如何对一个十六进制数的某一位取反,用C语言写,比如0x2F,我想对第六位取反 0x2F ^ (1 << (6-1)) 结果是15 第n位取反同(1 << (n -1)) 异或。

2019-05-17 16:35:54 3473 1

原创 二叉树遍历(先序、中序、后序)

先序递归:void preorderTraversalDFS(TreeNode* root, vector<int>& result) { if (root) result.push_back(root->val); else return; if (root->left) preorderTraversalDFS(root-&g...

2019-05-17 15:57:22 213

原创 部分有环单向链表判断环起点问题

# 方法一 (hash)ListNode *detectCycle(ListNode *head) { unordered_set<ListNode*> map; int index = 0; while (head) { if (map.count(head)) return head; else map.insert(map.begin(), ...

2019-05-15 16:35:33 227

转载 Lua 弱引用表 强引用表

弱引用表会被collectgarbage直接垃圾回收掉,而强引用表不会t = {}t[1] = {"11"}t[2] = {1,2,3}t[3] = function() print("test")endsetmetatable(t, {__mode = "kv"})print(#t)collectgarbage()print(#t)执行一下输出为3和0,说明t被...

2019-05-10 11:13:04 570

转载 Unity常用API(感觉挺实用的)

1、Event Function:事件函数Reset():被附加脚本时、在游戏物体的组件上按Reset时会触发该事件函数 Start():在游戏初始化时会执行一次 Update():每一帧都会运行这个方法 FixedUpdate():会在指定帧调用该方法多少次 LateUpdate():晚于Update的运行顺序,但是FPS和Update是一样的 Awake() St...

2019-04-04 12:49:46 298

原创 cocos2d-x lua 框架中 self.super.ctor(self, app) 和 self.super:ctor(app) 的区别

今天发现了一个问题,框架中我一开始都是使用的self.super.ctor(self, app)来使用父类的构造函数,但是今天看到,lua中元表中函数的调用,  . 和 : 使用是有很大区别的, : 会默认传递一个self进去,而 . 需要自己手动传递self,作为第一个参数所以我将self.super.ctor(self, app)改为了self.super:ctor(app),运行之后报错...

2019-02-21 16:03:57 1886

原创 关于国产开源引擎cocos2d-x

最近在知乎上看到别人问如何评价cocos2d-x 引擎一大票全是喷的,说什么这里沙比那里沙比。其实从我看来,曾经坑确实多,问题确实多,但是开源本来就是如此,大家一起来解决,提交PR,帮助引擎更好。现在的cocos 3.17.1 ,用下来已经很好了,至少bug已经没那么多了,对于熟悉的人开发一个游戏已经非常轻松了,成熟的框架,lua的热更,支持H5,不知道现在的重点cocos creator...

2019-01-04 13:48:17 1776 1

原创 对于开发操作系统

现在网上舆论都有一个共识,中国自己开发一个操作系统不难,是很简单的一件事,难的是生态...恕我直言,开发操作系统是编程行业里最难的过程,没有之一,OS包含了太多的东西,需要掌握许多的知识,而且开发一个商用的,简直太难太难了。包含了内存,驱动,网络,通讯,磁盘IO,进程线程....太多太多了。。任何一个拿出来都够自己研究好久。Linux现在的4.20 包含了2600w行的C代码和一些汇编...

2019-01-04 13:32:13 373

原创 MD5加密算法原理以及C++实现

MD5消息摘要算法,属Hash算法一类。主要运用于数据加密,一致性,信息摘要以及校验用。比如最常用的支付宝,会将多个参数连起来加上一段key,进行MD5,连同参数一起发送给服务端,服务端根据参数进行同样操作,如果MD5码相同即为正确。当然支付宝肯定不是这样使用的,这里只是举个例子!算法原理以下所描述的消息长度、填充数据都以位(Bit)为单位,字节序为小端字节。1、数据填充...

2019-01-03 11:11:53 1031

原创 C++ 单向链表倒置 reverse

struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};现在才知道大学学的基础知识这两年都没怎么用,都快忘完了,今天刷leetcode发现单向链表reverse都快写不出来了hhhh。1) 递归方法:class Solution {public...

2018-12-29 18:12:29 1202

转载 详解cocos2d-x中宏CC_DLL

在Cocos2d-X的源码中,经常看到宏CC_DLL。这个CC_DLL在不同的平台,定义不一样。1)在iOS/Android/Blackberry/Mac平台上,CC_DLL代表“空”;2)在win32平台上,CC_DLL的定义为:#if defined(_USRDLL)    #define CC_DLL     __declspec(dllexport)#else        ...

2018-12-06 14:18:18 279

原创 cocos2d-x 3.X eclipse gradle 多渠道多SDK打包配置教程(二)

根据上一篇的指导,应该已经可以出一个同资源同SDK的包了,现在看下在eclipse gradle下如何像Android studio一样一键打出不同SDK接入的渠道包吧首先一个项目一个项目的复制粘贴到工程下,大概是这样的每个渠道都创建好build.gradle,里面的配置信息是这样的apply plugin: 'android'//获取当前时间的函数(年月日)def rel...

2018-10-29 21:56:53 371

原创 cocos2d-x 3.X eclipse gradle 多渠道多SDK打包配置教程(一)

    最近因为安卓渠道越来越多,基于cocos2d-x 3.10 的游戏所以无法迁移到android studio,还是用的eclipse 打包,导致现在项目下是这样的    每次都要一个一个打开eclipse打包,实在是太麻烦了。所以决定修改一次,全部改为gradle脚本打包。先配置环境,我们是java 1.8 ,eclipse是4.2版本,先做几件事,配置环境,adt,jav...

2018-10-29 11:30:02 472

原创 cocos2d-x lua 面向对象 ===> 调用基类在派生类中已经被重载了的函数

基类:local Base = class("Base", function () return cc.Layer:create()end)function Base:ctor( ... )endfunction Base:test(self, ... ) endreturn Base派生类local BaseClass = require("Ba...

2018-10-10 17:34:47 1045 2

原创 安卓自动打开18:9屏幕适配,自动填满全屏幕,自动隐藏虚拟键

1.自动填满全屏幕 18:9在AndroidManifest.xml中添加&lt;meta-data android:name="android.max_aspect" android:value="2.1" /&gt;2.自动隐藏虚拟键https://developer.android.com/training/system-ui...

2018-09-21 09:58:37 1179 1

原创 C#(Winform) 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件

解决方案:1、在主线程中实例化此ActiveX控件2、将创建此Active控件的线程设定为单线程。      Thread.ApartmentState 获取或设置此线程的单元状态。            newThread= new Thread(MainFormMessageThread);            newThread.SetApartmentState(S...

2018-09-19 12:24:02 7556

原创 C#(Winform) 在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { ...

2018-09-19 12:20:28 6204 1

原创 C# 在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

首先在form1的窗体载入中新建了一个Class1对象并将本身的引用传递进入其构造函数,然后在Class1的构造函数中创建一个线程。该线程所代理的方法事件是本类中的一个add方法。而add方法的内容则是在form1上放一个textbox.然而这个流程你需要注意的有几个问题:1.哪个是主线程?所谓主线程是第一个启动的线程,是从main开始的。form1的这个窗体是由主线程创建的。2.Thre...

2018-09-10 22:13:12 4622 1

原创 cocos2d-x VS debug调试下glfwCreateWindow报错

    今天突然在启动VS debug模式的时候出现的,google了一下说是openGL版本老旧,安装显卡驱动什么的,我试了一下都没什么用,研究了一下,应该是有些dll没加载进去,pdb文件也没生成出来。    VS菜单栏,调试,选项和设置,调试,常规,勾选启动原服务器支持。    符号,勾选Microsoft符号服务器,然后debug一次,很慢,需要从microsoft服务器下载这些d...

2018-07-26 16:42:29 646 1

原创 android开发查看keyStore别名、MD5信息等方法

  使用ctrl+R打开命令窗口,在命令窗口下输入如下指令即可:keytool -list -v -keystore C:\Users\Administrator\Desktop\MSDAPPKey.keystore -storepass xxx其中xxx表示你的keyStore密码中间是keystore文件的绝对路径...

2018-07-17 17:18:58 464

原创 cocos2d-x 3.X 编译luajit在mac ios下

因为appstore禁止了dlopen,dlsym等可以远程下载脚本的函数所以需要删除luajit中的两函数的使用晚上也没有现成的,github中cocos2d-x项目下都是编译完的,去官网下载 http://luajit.org/download.html          2.1.0-beta2放在桌面上,修改脚本中IOSVER SDK的版本号,可以百度一下怎么看,我是Xcode9.1,所以是...

2018-06-10 13:14:58 1072 2

原创 cocos2d-x lua 封装增删改查时间复杂度为O(1)的集合

--创建增删改查复杂度都为O(1)的table--利用了一个额外的数组reverse,来保存数组s中每个数据在s中的位置,相当于以空间换时间--@ 这里删除还可以优化,table.remove实现过于复杂,希望可以只删除table中最后一个(已实现)function table.dictionarySet() local reverse = { } local set = ...

2018-05-22 10:48:38 335

原创 cocos2d-x 解决 ios editBox 键盘退不下去

/frameworks/cocos2d-x-3/cocos/platform/ios/CCEAGLView-ios.mm-(void) handleTouchesAfterKeyboardShow { NSArray *subviews = self.subviews; for(UIView* view in subviews) { ...

2018-05-21 09:24:40 901

转载 cocos2d-x lua 3D模块学习(4)----常见物理约束

在物理引擎中,所谓的约束(constraint)是指一个让刚体失去一定的自由度的一个物理部件,通过它可以限制刚体的移动,旋转。点对点约束(point to point constraint):点对点的约束即限制了一个刚体局部坐标系下指定的任意一个点(也可以称为支点),在物理引擎计算时始终在世界坐标系下固定不变。也可以限制两个刚体,它们各指定一个局部坐标系中的一个支点,这两个点的位置的在世界坐标系下...

2018-05-16 13:52:12 656

原创 cocos2d-x lua 3D模块学习(3)----3D物理引擎

cocos2d-x 3.X封装的是Bullet的物理引擎使用也是很简单,精灵绑定刚体,设置为组件,就可以一起运动了,很方便首先场景必须是物理世界的,这在2d还是3d中都是一样的,不然会黑屏哦    local pScene = cc.Scene:createWithPhysics()    if cc.Director:getInstance():getRunningScene() then ...

2018-05-16 13:45:35 1496

原创 cocos2d-x lua 3D模块学习(2)----3D精灵

3D精灵是cocos的3D模块加入的,要使用,需要在C++部分把宏定义打开 CC_ENABLE_BULLET_INTEGRATION 3D精灵支持的格式包括obj,c3t,c3b obj和FBX是美术用3dmax或者maya之类的工具打出的,需要导成c3b或者c3t给cocos使用。工具位置在cocos目录下的tools\fbx-conv\win目录拖动需要的obj或者FBX到fbx-conv.e...

2018-05-16 11:51:27 1451

原创 cocos2d-x lua 3D模块学习(1)----摄像机

因为工作需要,要在原来的项目基础上使用cocos2d-x 的3D引擎部分版本是3.13,开发语言是lua ,网上是一点关于cocos lua 的3D教程都没有,只能去啃老外的英文版的,所以自己写一个也记录一下吧!cocos2d-x 3D模块默认是关闭的,应该是3.X添加的,源代码写的并不是很好,粗略看了一下实现,有些地方都是implementes,待以后实现什么的,而且使用的物理引擎是Bullet...

2018-05-16 11:36:50 1422

BeDgn_1.6.5.zip

Behavior Designer - Behavior Trees for Everyone 1.6.5

2020-05-25

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

TA关注的人

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