c++
文章平均质量分 58
zzk1995
这个作者很懒,什么都没留下…
展开
-
cocos编译安卓apk一晚上经验
一.配置环境需要的环境和开发包:cocos framework(cocos的库文件,必要不解释)android sdk(用于安卓开法,这个一定要有,目前使用安卓api22,考录到22兼容性问题,最好下个老版本的api用于编译)android ndk(十分重要,版本要到r10,之前用r7就会出错,ndk是用于c++代码编译为安卓代码的,而r7不识别c++11的代码,游戏源代码中是原创 2015-05-25 19:25:52 · 3412 阅读 · 0 评论 -
UE4的NetWork简单原理
UE4内部封装实现了大量和网络相关的代码,使得我们不需要再自行编写很多底层的网络同步代码了(连接主机,套接字传输等等)。我们只需要实现相关的函数接口,并进行一定的设置,就可以实现网络游戏的功能了。 下面先讲讲UE4NetWork的几个要点: *1.UE的网络同步和Replicate密切相关,从字面上理解,就是Server到Client的信息同步。 2.大部分的自动化Replicate都是Ser原创 2015-12-11 17:34:27 · 11829 阅读 · 3 评论 -
error c2678解决方法
使用UE4时发生 error C2678: binary ‘==’ : no operator found which takes a left-hand operand of type ‘const HUDMessage’ (or there is no acceptable conversion)最后可以定位到这里int32 Find(const ElementType& Item) cons原创 2015-11-30 14:01:58 · 16979 阅读 · 0 评论 -
UE4简单巡逻BehaviorTree的构建
上次我们搞了一个C++的AI代码初始化,但是只有C++初始化,AI是不会行动的。这次我们接着初始化之后的步骤,搞一个可以简单巡逻并且发现玩家之后会追踪的简单AI逻辑。 主要逻辑如下: 1.平时按照固定路线巡逻 2.发现玩家之后,追踪玩家 3.拾取玩家视野之后,继续追踪最后一次看见的位置几秒,之后放弃 4.放弃之后,继续按照原路线巡逻 5.如果听到声音,警惕地向声音发生处张望几秒 6.张原创 2015-11-23 15:05:29 · 5410 阅读 · 0 评论 -
UE4的Cast方法与类型转化
UE4中,我们经常会用到Cast函数,作用是强制转化一个指针到我们需要的类型,并且如果不能强制转化,就会返回nullptr。通过判断转换之后是不是nullptr,我们也能实现很多有用的功能(比如用于判断子弹击中的到底是什么) 那么Cast到底是如何实现的呢?要看Cast,首先要看到一个类型,叫做UClass,他是实现UE类型识别的重要类型。 我们经常打交道的类型都是继承自UObjectBase的原创 2015-11-17 00:48:41 · 23243 阅读 · 2 评论 -
UE4的AI c++代码初始化
AI的行动主要逻辑位于BehaviorTree内,AI的主要行动实现主要位于AIController中,而AI的记忆主要位于Blackboard内。下面是一些基本概念:1.BehaviorTree内部含有一个成员是Blackboard。所以我们一般只给一个AICharacter内部设置一个成员BehaviorTree就行了,而在Editor内把Blackboard指认给BehaviorTree。2.原创 2015-10-10 00:19:58 · 3280 阅读 · 0 评论 -
UE4实用类PawnSensingComponent简介
PawnSensingComponent是涉及AI编程时候的常用类,实现了很多强大的功能,对于AI感知帮助很大。 主要功能有 1.AI的视觉,是一个锥形感知体。 2.AI的听觉,主要与距离和声音大小有关,与遮挡物也有关。首先介绍一下AI的视觉方面吧,PawnSensingComponent的初始化很简单,在类内声明一个PawnSensingComponent字段,之后this->sensing原创 2015-11-21 19:56:26 · 4752 阅读 · 0 评论 -
学习一个WinAPI实现的线程基类
这个基类通过调用WinAPI的方法,编写了一个可以管理线程的基类,功能和用法都很基础,但是对理解线程的工作很有帮助。 h文件:#include <windows.h>static DWORD WINAPI threadFunction(LPVOID);class Thread { friend DWORD WINAPI threadFunction(LPVOID);public:原创 2015-11-16 00:49:44 · 1513 阅读 · 0 评论 -
UE4的Collision与Physics
Collision和Physics都是各种Mesh的属性,和Unity3D很像,Collision和Physics是两个独立的Component,Collision仅仅掌管碰撞发生的检测和回调,而Physics仅仅模拟碰撞发生之后位置速度等等的变化,可见Collision似乎用处更大一点。比如Collision可以设置各种perset,里边的标签都是不同的碰撞处理逻辑,但是本质上都是一些channe原创 2015-10-10 18:43:36 · 14090 阅读 · 1 评论 -
UE4的MaterialInstance作用
我们经常会在游戏中看到Materials,但是还有一种数据结构名字叫做MaterialInstance。其实不少游戏的Mesh指认的都是MaterialInstance而不是Materials,为什么呢?1.Materials和MaterialInstance都可以指认给Mesh 2.Materials是在游戏运行之前编译好了的,而想要修改Materials的内部参数(比如动态修改其基本色,法线贴原创 2015-10-10 00:21:19 · 5734 阅读 · 1 评论 -
UE4的射线拾取
Ray-Trace作用于射线拾取。射线拾取主要相关 1.拾取函数是UWorld的多个方法。比如LineTraceSingle是单一拾取,拾取到一个之后就不继续穿透了,而LineTraceMulti会拾取多个目标。 2.射线拾取的主要参数有拾取开始点,结束点,拾取结果(一个FHitResult类型的引用,相当于返回值)拾取的碰撞通道和一个FCollisionQueryParams类型的参数。这个F原创 2015-10-10 00:23:16 · 14476 阅读 · 0 评论 -
UE4的delegate
首先,UE4中的delegate和C#里边是一样的,delegate的本质是一个特殊类的对象,它可以储存(一个或多个)函数指针和payload数据(就是除了函数指针,还能存些你调用时候的额外参数)UE4中的delegate类名字中都有signature,这里我们以overlap的回调委托为例:在各种mesh components中,都有这么一个字段FComponentBeginOver原创 2015-09-05 13:03:56 · 10095 阅读 · 0 评论 -
OpenBLAS矩阵乘法源码结构分析
用于记录阅读分析OpenBLAS源代码的各种知识点,防止遗忘。这里主要记录OpenBLAS的代码结构,因为确实比较复杂,直接看源代码很可能比较蒙比,如果知道其结构,看起来就比较轻松了。至于OpenBLAS矩阵乘法的算法,这篇不涉及,我会在另一篇文章中简单(瞎jb)分析。OpenBLAS代码总体上可以分成三个层次:1.接口层 在OpenBLAS接口层中,运算又分为三个类型,分别是level1到3,原创 2017-04-30 02:11:54 · 11826 阅读 · 6 评论