自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 Ue4C++编程------总结篇

    通过前面的一系列文章,已经将游戏的基础组成要素已经讲完了,当然,都是单机的,不涉及网络部分。通过前面的一系列文章,我想制作一个简单的游戏demo也不难了吧。    UMG是制作游戏界面一个十分简便,强大的模块,它是由封装自slate。slate有兴趣的可以看下官方文档,是纯用代码编写界面的,我更喜欢可视化的UMG。    动画蓝图对游戏人物是很重要的,什么时候该执行哪个Animation,...

2018-07-13 15:59:27 1214

原创 Ue4C++编程------bgm与c++(一)

    bgm相信大家都知道,就是背景音乐,每个游戏都有背景音乐,能让人彷佛身临其境一样,本文就来讲述下如何播放bgm。在UE4中,那是非常的简单,首先先下载两首音乐吧,我这里就使用英雄联盟的音乐,一个是极地大乱斗,一个是无限乱斗时候的音乐。    首先在下面的目录下新建一个文件夹,叫sound,如下图所示:        然后导入下载好的音乐,使用import,需要注意的UE4只支持wav格式的...

2018-07-11 21:02:43 1500

原创 Ue4C++编程------Loading界面与c++(四)

    我们知道,在基本所有的游戏中,Loading界面是必不可少的,该界面是在关卡间过度的时候显示的,用于告知玩家,正在加载资源,Loading界面有几种方法,其中一种是Level Streaming,还有可以参考ue4给我们提供的项目,里面也有关于loading界面的介绍,不过是单一的添加个新模块,而我要介绍的是另一种方法。    首先在我们的gameinstance中,添加两个新的成员函数,...

2018-07-10 21:50:04 3280

原创 Ue4C++编程------保存游戏与c++(一)

    在单击游戏中,一般都有保存游戏的选项,在这篇博客中,我就来讲讲如何保存游戏,然后在开始游戏时,读取我们保存的信息,进行恢复游戏。    在讲述保存游戏之前,先来介绍GameInstance这个类,在UE4中,gameinstance是伴随整个游戏进程的,我们知道,gamemode是每个关卡都有不同的gamemode,所以呢,要保存伴随整个游戏进程都有效的数据,应该放在gameinstanc...

2018-07-09 21:18:51 4049

原创 Ue4C++编程------伤害与c++(一)

    前面文中讲述了如何创建一个血条,本文将讲述如何创造伤害,怎么收到伤害。这在游戏中是相当重要的,因为大部分游戏都是有伤害机制的,当然,我们不会对伤害的数值进行研究,只进行简单的处理。    首先在武器actor中,在构造玩collision时,设置为不碰撞,因为我们是只需要在挥剑的时候开启碰撞,其它时候应该是取消碰撞的。如下所示:WeaponCollision->SetCollisio...

2018-07-04 21:02:20 3719

原创 Ue4C++编程------血条与c++(一)

    前面的篇章中,我们介绍了AI,在该文中,我们将介绍血条。相信大家也玩过不少游戏,我本人还是很喜欢玩lol的,那么在一般的游戏中,敌人的头上,或者小兵的头顶上都会有一个血条,用来实时的显示小兵的目前血量,接下来我就来解析如实现,首先,在AI文件夹中,新建一个UserInterface,并命名为RobotHealth,如下所示:        然后按照前面的UMG与c++文中的介绍,创建一个血...

2018-07-03 21:52:39 2957

原创 Ue4C++编程------AI与c++(四)

    上文中,我们介绍了怎么更新我们的黑板数据,怎么将黑板数据与行为树绑定,怎么运行我们的行为树。本文将介绍行为树的一些节点。首先介绍的就是Task节点,Task故名思意就是任务节点的意思。Task节点只能作为行为树的叶子节点。首先我们创建一个c++类,继承自BTTask,如下图所示:        创建完该类后,重写ExecuteTask函数,在ExecuteTask函数中,我们需要让我们的A...

2018-06-28 22:13:21 2320 4

原创 Ue4C++编程------AI与c++(三)

    上文中我们重写了Possess函数,在possess函数中,运行我们的行为树,既然有Possess肯定就有UnPossess啦,因此,我们需要重写UnPossess函数,在该函数中,停止运行我们的行为树,如下所示:void AAIBlogController::UnPossess(){ Super::UnPossess(); if (BehaviorTreeCompo != null...

2018-06-27 21:16:24 2049 2

原创 Ue4C++编程------AI与c++(二)

    在上一篇文章中,我们介绍了行为树与黑板资源,及寻路组件,了解了怎么使用这些组件,在本文中,我们将创建一个AICharacter,并运用上行为树以及黑板资源。现在我们创建一个新的character,并命名为AIBlogCharacter。该character要做的事情也很简单,就是发现hero,然后走到该hero处。创建好AIBlogCharacter后,我们新建一个AIBlogContro...

2018-06-26 20:51:38 2565 5

原创 Ue4C++编程------AI与c++(一)

    前面的文章介绍了武器的类怎么写,怎么使我们的人物能装备武器,接下来,我们将介绍AI,AI是游戏中不可缺少的一环,比如怪物去寻找玩家,怪物去攻击玩家,都是有决策的,而在ue4中,这种决策是有行为树和黑板来进行制定的,黑板是为行为树提供数据的,我们将在接下来的文中,介绍相关知识。首先让我们做好准备工作把。    首先,在你的关卡中,选择modes,拖入寻路组件,如下图所示:        拖入...

2018-06-25 20:23:28 4629 2

原创 Ue4C++编程------武器Actor与c++(二)

    在上一文中,我们讲述了如何创建一个武器,并将武器装备到人物的手上,接下来我们要讲述的就是如何为武器actor添加碰撞事件,使我们在挥刀的时候,能够产生伤害。    首先在weaponactor类里添加成员,如下所示: UPROPERTY(EditAnywhere, Category = Collision) class UBoxComponent* WeaponCollision;FO...

2018-06-20 21:44:36 1171

原创 Ue4C++编程------武器Actor与c++(一)

    前面的文中,我们介绍了怎么通过动画蓝图来使我们的人物有基础的行动能力及攻击能力。其中,我们的人物是有一个挥刀斩击的动作。所以,接下来,我们将创建武器。使我们的人物在挥刀时,可以斩击。    首先,打开我们的人物的骨骼,在我们的index_01_r下右键,新增一个子socket,并命名为weapon。如下:        接着,我们在刚才新建的socket中,右键,选择预置资源,我们选择一把...

2018-06-19 21:59:27 2455 2

原创 Ue4C++编程------AnimationInstance与c++(三)

    前面一文中,我们的动作蓝图已经有了人物的基础行动,即走动,及跳跃,接下来,我们将使我们的人物可以进行攻击。首先进行准备工作,绑定攻击键,如下图所示:        在我们的character类中,添加如下函数:用于对攻击键即上图设置的鼠标左键进行绑定。 // 攻击函数 void Attack();    并在SetupPlayerInputComponent函数中绑定,如下: // 绑定...

2018-06-14 21:30:41 2736 3

原创 Ue4C++编程------AnimationInstance与c++(二)

    上一篇中,我们已经把需要准备好的资源准备好了,现在让我们开始创建动画蓝图吧。这里不打算解释什么是动画蓝图。。请读者自行查阅官方文档。    在创建c++新类中,选择父类为AnimInstance,这个类作为动画蓝图的基类,我们的逻辑将在这个类中实现。命名为HeroAnimInstance。...

2018-06-13 21:32:03 5017

原创 Ue4C++编程------AnimationInstance与c++(一)

    前面的文章讲到了如何制作一个菜单,在点击开始游戏后将跳转到游戏关卡,接下来我打算写一个小小的游戏,使单击开始游戏后可以跳转到我们所写的游戏关卡中。    准备工作:unreal engine为我们提供了很多免费的素材,毕竟我不是场景设计师,也不是模型制作师,搭游戏场景,制作3d模型对我来说是难度很高的- -,但是有unreal engine为我们提供的素材,我们可以简单的使用场景及模型来制...

2018-06-12 21:24:08 2759 1

原创 Ue4C++编程------UMG与c++(二)

    12:为MainMenuMap创建GameModeBase类和HUD类和playcontroller类。即继承GameModeBase类和HUD类和playcontroller类,playcontroller类是为了将鼠标显示出来,重写HUD类的beginplay函数,并且在begameplay时,创建widget,并addtoviewport,如下图。        13:在MainMe...

2018-06-11 23:02:29 3706

原创 Ue4C++编程------UMG与c++(一)

    打开一个游戏,最先进入眼帘的便是加载页面,然后便是ui界面,如开始游戏等等按钮。本文将介绍如何在UE4中将制作一个游戏菜单项。在UE4中,有两种方式创建ui,一种是使用slate的方式,一种便是UMG,UMG是slate的封装,是一个可视化的ui编辑器,类似于mfc。slate则是纯c++方式,本文将介绍UMG。    打开ue4编辑器,创建一个c++ basecode的项目,选择with...

2018-06-11 22:27:34 12483 3

原创 Ue4C++编程------序

      Ue4是一个非常强大的3d开源引擎,用它开发的3d游戏也很多,比如大火的绝地求生和堡垒之夜。学习这个引擎也有一两个月了,大都通过翻墙,国内有的资源还是较少的。所以只能翻墙google了。ue4有两种编程方式,一种是蓝图,另一种就是c++了,各有各的好处吧,蓝图可视化强,但是一旦项目比较大的时候,代码量比较多的时候,蓝图看起来就稍微有些杂乱了,虽然也可以注释,但是项目大了看蓝图代码比较不...

2018-06-11 14:44:47 1010

原创 快速排序的实现

#include #include #include void quicksort(std::vector& vec, int nbegin, int nend){ if (nbegin >= nend) return; int nPos = (nbegin + nend) / 2; int nPosV = vec[nPos]; std::vector l

2017-12-12 15:05:01 200

原创 学习QML遇到的问题,以后会逐渐加上去

1、自定义的qml作为组件的时候,首字母必须大写,这样才能导出。2、使用信号时注意不要定义相同的信号,因为不支持重载3、自定义标题栏时,首先置flag:viewer.setFlags(Qt::FramelessWindowHint); 再导入以便qml识别:viewer.rootContext()->setContextProperty("login", &viewer);在鼠标区域移

2017-10-26 11:37:27 336

原创 使用c++11的function函数绑定参数个数不同的成员函数

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-09-22 17:07:58 1552

转载 Clion激活方式

转载于 http://blog.csdn.net/ksksjipeng/article/details/70840293

2017-09-05 16:38:17 2005

原创 《数据结构实战》------------------------------------------------------ 霍夫曼算法的实现

霍夫曼算法的实现。#ifndef __CHUFFMANCODE__H#define __CHUFFMANCODE__H#include #include #include #include //哈夫曼编码struct TreeNode{ std::string strName; int nFrequence; // 出现的频率 int

2017-06-14 20:24:25 442

原创 一个简单的爬虫程序,包含请求头。

import urlparsefrom os import sep, unlink, makedirs, rmdirfrom os.path import splitext, dirname, isdir, existsimport urllibimport urllib2from htmllib import HTMLParserfrom formatter import Abstr

2017-06-12 20:34:06 5183

原创 《数据结构实战》------------------------------------实现Dijkstra算法

下面该代码是对dijkstra算法的实现:#ifndef __CDIJKSTRA__H#define __CDIJKSTRA__H#include #include #include //dijkstra 算法 仅针无负权有向图const int NERVER_ATTACH = 9999;struct AdjacencyNode // 邻接点 含加权{ struct

2017-06-07 19:41:25 2137

原创 《数据结构实战》-------------------------------------------图论 无加权最短路径算法

该代码是用于计算无加权的最短路径算法:#ifndef __CDIRECTEDGRAPH__H#define __CDIRECTEDGRAPH__H#include #include // 邻接表表示有向图 拓扑排序 无权最短路径const int NERVER_ATTACH = 9999;struct VertexNode // 顶点{ std::string cName

2017-06-06 21:09:34 2126

原创 windows平台下一次创建多级目录

该代码用于一次性创建多级目录:#include #include #include #include int main(){ char szPath[128] = { 0x00 }; sprintf_s(szPath, 128, "%s/%d/%d/", "D:/SVNCode", 10100703, 1); char* szBefore = szPath; while (

2017-06-06 21:07:39 4695

原创 《数据结构实战》------------------------ 一个二叉堆的实现

该代码是一个二叉堆的实现,堆排序。#ifndef __CBINARYHEAP__H#define __CBINARYHEAP__H#include #include // 小根堆的实现// 没有值的节点填充为-9999class CBinaryHeap{public: CBinaryHeap(int nSize); // 初始大小 ~CBinaryHeap();pu

2017-06-06 21:03:09 1738

翻译 一个好的散列函数

通常对hash表的key的计算都是通过字符串来的,因此需要一个好的散列函数,在数据结构与算法分析-c++描述该书中,提供了一个好的散列函数,如下:int hash(const string& key, int tablesize){ int hashval = 0; for (int i = 0; i < key.length(); i++) hashval

2017-05-27 11:27:10 2901

原创 《数据结构实战》创建一颗平衡二叉树

平衡二叉树是一种防止搜索二叉树退化成链表的树,平衡二叉树的左右子树的高度相差不超过1,因此在插入及删除时有必要重新旋转树,以达到是一颗平衡树。为简单起见,仅使用int型数据,并且在有相同节点时,更新nCount的值。代码如下:

2017-05-26 16:45:08 1799

原创 《数据结构实战》将后缀表达式变成表达式树------二叉树的应用

编译原理中对于表达式的管理,前面已经有如何将中缀表达式转为后缀表达式算法了,原理同计算后缀表达式同理,为简单起见,操作符都是简单的二元表达式操作符。因此遇到操作数就形成一个叶子节点,并压栈,遇到操作符,则从栈中取两个节点,形成一颗新的树,并进行压栈。最后从栈中取出的为最终的表达式树。代码如下:

2017-05-25 15:28:50 3026

原创 《数据结构实战》模拟文件系统目录组织------树的应用

简单模拟文件系统的目录组织,多节点树的应用,为求简单,没有进行错误处理。代码如下:#ifndef __CFILEDIRECTORY__H#define __CFILEDIRECTORY__H#include #include // 文件系统目录结构const int MAX_LEN = 128;struct TreeNode { char szName[MAX_LEN]; //

2017-05-24 19:58:56 2524

原创 《数据结构实战》中缀表达式转后缀表达式----栈的应用

栈的使用:该代码是将中缀表达式转为后缀表达式,并计算后缀表达式。此只支持简单的整形数字

2017-05-23 18:30:39 1977 4

空空如也

空空如也

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

TA关注的人

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