- 博客(41)
- 收藏
- 关注
原创 完整版BlackJack/21点小游戏C++控制台版
完整版BlackJack/21点小游戏C++控制台版下载地址:Github这个版本,是基于我自己的控制台小游戏模板(CMDGameTemplate)模板编写的BlackJack游戏标准的BlackJack游戏,除了比较容易实现的要牌、停牌以外,还有加倍,保险,分牌等游戏元素。有关21点的介绍这里就不赘述了,请到百度百科自行查看最近准备把这些原来的东西都整理一道...
2020-09-22 20:45:54
1332
原创 (四)C++游戏开发-本地存储-二进制文件读写
二进制文件读写简介为什么二进制格式比文本格式更高效?译码空间什么时候用二进制格式去存储数据?数据持久化数值型资源数据使用二进制格式读写数据制定规则将数据写入根据规则进行读取字段类型关卡热重载案例步骤读取并解析JSON制定二进制文件规则从二进制文件还原到程序结束简介这是本专栏的最后一篇文章正如第一篇文章中说的,二进制格式文件比文本格式文件更加高效,那么到底有多高效?高效在哪里?怎么去用?这些问题在本篇都会一一解答,这篇文章有两个数据持久化的例子,以及一个将JSON文件转成二进制文件的例子。在上一篇文
2020-09-21 00:27:33
1529
原创 (三)C++游戏开发-本地存储-JSON文件读写
JSON文件读写简介相关知识环境准备数据基本步骤读(ASCLL)读(UTF-8)写(ASCLL)写(UTF-8)综合案例简介这章将讲述JSON文件的读写,使用的解析库是RapidJSON这个库的评价和性能还是蛮好的,官方网站也有很详细的教程和文档,这里只记录一些比较基础的第一个例子,对本专栏第一篇文章中讲到的英雄联盟数据进行简单的读写操作。第二个例子,进行稍微复杂的读取操作,从JSON文件中读取俄罗斯方块的方块数据。相关知识首先非常清晰的明白个概念JSON节点只有Object和Array两种
2020-09-21 00:26:35
1019
原创 (二)C++游戏开发-本地存储-文本文件读写
简介文件IO属于IO的基础操作,网上也有好多资料,写法挺多的,这里直接给出我写的读写代码的例子并稍作解释,包括UTF8文件的读写方法。这里的代码都是完整的读到内存和完整的写入一个字符串,为了容易对比,返回值和参数都是统一的,真要运用到某个程序中还得自行进行修改。Read第一个例子,使用std::string接收数据#include <iostream>#include <string>#include <fstream>std::string GetStr
2020-09-21 00:25:16
953
原创 (一)C++游戏开发-本地存储-介绍
简介这系列文章计划有四篇文章,从基础的C++文本文件读写,到JSON文件读写,再到二进制文件读写。这篇文章将以英雄联盟的例子简单探讨一下我对游戏中数据存储的认识后面会有一些存储的小游戏案例,但是不会涉及到游戏引擎,思路应该能够通用。主要说的是本地存储,所以不会涉及到太多网络、服务器、数据库之类的东西,但是有了本地存储的基础,可以很快建立远程存储英雄联盟英雄数据如果你之前没有接触过数据存储这方面,那么这里可以让你简单的了解一下俗话说耳听为虚眼见为实,我拿自己瞎写的例子肯定不行,所以找了英雄联盟的
2020-09-21 00:24:37
2170
2
原创 WPF和软件工程综合实践
影院管理和售票系统此文档仅简单介绍项目,完整文档请到项目doc目录下载软件说明书和演示PPT项目已上传到Github简介本系统分管理端和顾客端两个子系统管理端帮助影院管理员管理和统计电影数据、档期数据、订单数据。顾客端为顾客提供购票服务。功能管理端:查看电影,档期,订单数据导入电影自动排制档期销售统计顾客端:查看正在上映的电影查看电影对应的档期选择座位付款软件工程图片如果加载不出来,可以下载帮助文档自行查看用例图最开始画了几层,到最后只剩一层
2020-09-01 10:40:17
432
原创 (蓝图)虚幻4制作超级马里奥(十一)规则和目标
规则和目标目录规则和目标BP_MyGameModeBP_DeadBox(Actor)BP_MyPlayerController绑定Setting键事件清除状态事件角色攻击敌人第一种方式,检测玩家角色进入该体积时的运动方向来判断生死(踩)第二种方式,拾取道具,发射子弹,攻击敌人新建BP_Bullet子弹蓝图(Actor)发射子弹添加子弹道具总结...
2019-07-18 16:38:45
1304
原创 (蓝图)虚幻4制作超级马里奥(十)基本UI
基本UI新建空白TouchInterface制作UI之前我们再创建一个空的TouchInterface用于替换之前的实现隐藏效果新建用户控件U_UMG设置VisiblityContinue按钮的Visibility设置成Collapsed,游戏开始时不需要显示它,在玩家结束后也不需要显示它Collapsed的效果就是不显示又不占位,用户永远不可能 点击它因为...
2019-07-18 16:38:31
1083
原创 (蓝图)虚幻4制作超级马里奥(九)Child Actor Component和Construction Script快速制作场景
最后效果如下,Floor细节面板中对生成的Wall数量和位置进行设置本章我们将实现在构造脚本程序化生成若干个StaticMesh并对其Transform进行设置,从而实现快速搭建场景的目的。通过这个部分你可能会明白各种Component的核心用法。目录Component实验融合Actor实验Component总结场景制作Wall升级——WallTypeWall升...
2019-07-15 16:41:40
2055
原创 (蓝图)虚幻4制作超级马里奥(八)两种方法实现AI移动
目录NavMeshBoundsVolumeAIMoveTo控制AI1.创建Character类型蓝图2.记录AI的初始位置,提升为变量3.AutoWalk自定义事件4.停止移动完成行为树控制AI1.新建Character类型蓝图命名为AI_Character2.黑板命名为MyBlackboard3.新建行为树命名为MyBT4.新建AIContro...
2019-07-14 16:50:49
1803
原创 (蓝图)虚幻4制作超级马里奥(七)道具的生成和效果
目录生成1.一个新的Actor类蓝图修改BP_Base_Wall控制生成次数效果枚举类型记录道具的种类修改BP_Item道具蓝图执行不同事件Wall生成Item解决持续时间问题修改BP_MyPlayerController修改BP_Item蓝图顶动方块之后有几率产生道具,角色接触到道具,获得效果生成1.一个新的Actor类蓝图...
2019-07-14 16:49:21
1110
1
原创 (蓝图)虚幻4制作超级马里奥(六)跳动的方块
角色顶动方块就是一个最基础的触发事件,而对于触发事件基本的思路就是一个碰撞盒子,当角色进入或触碰到盒子时调用事件。这一点很重要,游戏与玩家的交互总的来说就是一个触发与反馈。自定义事件wallJump首先保存了方块的初始位置,时间轴控制方块移动,iscanmove布尔变量为了防止在方块跳动的时候重复触发OnComponentBeginOverlapBP_BaseW...
2019-07-13 16:03:09
599
原创 (蓝图)虚幻4制作超级马里奥(五)角色属性和基本场景元素
目录角色属性基本场景元素UV缩放问题角色属性随着版本更迭,引擎中很多地方的翻译已经很完整了,这里就不对属性赘述了。CharacterMovement中封装了一个角色有的基本属性,我们直接对其进行简单的修改JumpZVelocity:跳跃高度Air Control:空中控制左右移动的程度,1为完全可控,重力和摩擦力系数行走速度...
2019-07-13 16:03:01
1016
原创 (蓝图)虚幻4制作超级马里奥(四)安卓打包
这章没有特别的,我之前俄罗斯方块也述说过,如果已经掌握安卓打包,可以直接跳过,如果不会建议先学会打包以便后面测试,可以在电脑上用安卓模拟器进行调试,也可以真机调试。当然你可以等到做完整个游戏再打包出来测试安卓开发包资源(手动安装,详情见后面)链接:https://pan.baidu.com/s/1xFMOGJcGuz1w2PcTgg_YZw提取码:29el项目设置取消勾选...
2019-07-13 16:02:55
699
1
原创 (蓝图)虚幻4制作超级马里奥(三)Touch Interface(设置虚拟摇杆)
目录资源下载导入图片开始设置属性解析完成动态设置TI资源下载下面是我使用的触控图片(之前使用的,项目中没有用十字图片,你可以用AB图片作为虚拟摇杆的图片),网上也有很多资源,也可以自己做链接:https://pan.baidu.com/s/1eGSBohFFstmpQxGHETuHsg提取码:rhfr导入图片将图片直接拖入引擎或者导入资源...
2019-07-12 15:14:14
4064
7
原创 (蓝图)虚幻4制作超级马里奥(二)准备
这一章主要就是创建一些基本的组件和蓝图,主要注意移动设备只支持静态天光目录创建项目创建关卡蓝图天空光源(移动设备只支持静态天光)BP_SKY_SPHERE定向光源(直射光)box暂时用来当地板GameModePlayerController按键设置玩家角色BP_Player创建项目蓝图,移动设备,最高质量,没有初学者内容,项目路径(最好全英...
2019-07-12 15:14:04
1344
1
原创 (蓝图)虚幻4制作超级马里奥(一)
简介这个项目难度一般,有一定综合性,分享出来,内容就是一些虚幻4功能的应用,相对完整的制作流程,比较特别的有移动端的摇杆和按钮的使用,官网上的AI行为树简化教程,以及虚幻4里面逻辑和UI分离的类MVC实例,蓝图之间的交互很多人可能觉得只有这一个超级马里奥游戏,甚至觉得超级马里奥已经过时了,实际上超级玛丽奥这系列的游戏有至少上百个版本,直至今日都在不断在更新。我复刻的这一款超级马里奥应该...
2019-07-11 20:24:31
1548
原创 虚幻4场景优化-融合Actor
使用前使用后这个功能可以在游戏没有运行和运行中把场景中多个StaticMesh整合到一个StaticMesh中,也可以把Actor中的StaticMesh整合到一起,并且保留每一个StaticMesh的材质通道在你重复用了太多Actor组合一个场景的时或者想重复利用摆放的某个场景时,如果它们都是静态的,可以考虑使用这个将所有模型组合起来使用也很方便,选中要合并...
2019-05-05 21:27:15
2071
原创 虚幻4UMG控件实用技巧
主要内容如何快速做出UI框架?几个实用的小控件虚幻4中界面的制作,有两种方式,稍微复杂的是HUD,简单一点的是UMG(User Widget)HUD和UMG都可以制作简单的显示,按钮之类的,我觉得HUD更适合制作小地图和其它复杂一点的,HUD跟材质结合的比较密切。如果是简单点的UI,UMG就可以了,操作方便,属性绑定也快。值得一提的是使用蓝图制作UI比用C++实现方便的多...
2019-03-13 23:47:40
5798
原创 (蓝图)虚幻4重制俄罗斯方块(十)安卓打包
在这里仅仅以打包成APK为标准的基本设置,其它格式和自定义的不做介绍第一步肯定是安装各种安卓的环境,在你安装的路径里面找到这个程序按照流程安装就可以了,原来会遇到很多问题,比如什么网速太慢啊,有一个包下载不了啊什么的,不过现在貌似没什么问题了,满载下载,安装什么的也一步到位,如果遇到什么问题,还是老规矩百度吧项目设置里过一遍打包选项build configurati...
2018-10-31 00:07:10
863
原创 (蓝图)虚幻4重制俄罗斯方块(九)设置相机
固定视角,可能这一步应该早一点我们只需要一个摄像机。。。放到合适位置,可以自己先根据方块的长宽高和个数计算一下把相机设置成正交模式,就是平面的这个orthowidth设置到合适最重要的来了,就是这个相机的尺寸,因为我们要让游戏在手机上竖着运行,那你这个相机肯定要先显示一个竖着的长方形,其实在这里,设置长宽比,或者直接设置像素,这里我随便弄了个最后找到...
2018-10-31 00:07:04
1118
原创 (蓝图)虚幻4重制俄罗斯方块(八)UI和结束
让我们盘点一下游戏还差什么游戏结束判定难度不断上升UI界面,计分,开始,继续,退出,重新开始等游戏结束判定只需要判定最顶部的一层方块元素值是不是2,如果是很显然就堆满了在移动函数中调用 在事件图表中暂时也调用一下,后面再用UI调用难度不断上升我使用了一个对数函数来作为游戏难度的上升曲线,同时在游戏开始之初,和正版俄罗斯方块一样,不改变游戏难度,...
2018-10-31 00:06:58
995
原创 (蓝图)虚幻4重制俄罗斯方块(七)增加切换消去方块
思路:方块是从数据表格里面的,如果想生成更多的方块,直接添加到数据表格就完事了切换方块只需要主动改变当前方块的名称就可以了在固定了方块之后,检测不就好了,满足消去条件就消去并分数增加,不满足就重新下落方块。 增加方块在之前的数据表格中,将13种基本方块的形状输入进去,注意,尽量填满左面底部,不要将方块放中间,因为前面底部判断的原因,如果放在中间,有的方块落到底部下方就是...
2018-10-31 00:06:52
988
原创 (蓝图)虚幻4重制俄罗斯方块(六)-碰撞检测
思路先想一下,什么时候会发生碰撞?与什么东西发生碰撞?移动方块值为1,围墙值3,固定方块值为2,那么我们需要判定方块所在的16个格子是否会发生碰撞16个格子只检测移动方块(值为1)的下方是否为固定方块(值为2),如果是就固定,如果不为2就继续移动。检测算法有点类似于数据结构中的串的BF匹配算法,双重循环简单粗暴(一)检测碰撞新建一个IsCanMove函数,3个布尔类...
2018-10-31 00:06:44
1347
原创 (蓝图)虚幻4重制俄罗斯方块(五)Timer和底部固定
思路让我们先整理一下在玩俄罗斯方块的时候,一块方块下落过程中会发生的事情方块不断下落 玩家左右下移动方块 方块移动到固定方块上方停止移动 到达底部停止移动 那么,第一步很好实现,设置一个计时器,一定时间间隔就执行一次下降操作即可,第二步在前面我们也初略实现了一下,那么就剩下让方块停止。下面我们先让方块不断下落,再让方块到达底部停止,最后再实现方块的堆叠(一)整理首先先把...
2018-10-31 00:06:38
997
原创 (蓝图)虚幻4重制俄罗斯方块(四)移动方块
(一)思路首先大家要搞清楚方块在地图中显示的原理,是根据定位点,把B数组中的元素,映射到地图A数组里面去而移动则是改变定位点的位置,实际上没有任何东西在移动,仅仅是改变定位点的位置因为由于定位点坐标已知,那么可以计算出B数组映射在A的中范围,同时遍历B数组,如果B中为0就设置A中相同位置也为0,反之则为1即可如果设定位点坐标为(a,b),那么A中的范围可以表示为a<=X&...
2018-10-31 00:06:26
2377
原创 (蓝图)虚幻4重制俄罗斯方块(三)宏的使用与数据表格存储方块
宏创建在上一篇文章中,我们使用了一些像这样嵌套循环遍历二维数组,可是看起来很复杂,每次也要复杂粘贴一大堆,下一步我们先进行一下优化,自定义一个和这个功能相同但比较简单的宏(宏其实就是把很多操作合为一个)在宏这里定义一个新的TraveA(遍历A数组),将上面那两个节点拷贝过来,直接将输入节点和输出节点分别拖拽到输入值和输出值上( 注意连线不要连错) 可以看到和函数不同...
2018-10-31 00:06:15
1029
3
原创 (蓝图)虚幻4重制俄罗斯方块(一)二维数组构建地图
老规矩,先上效果图(一)内容简介:主要就是在蓝图中利用结构体声明,设置,调用二(多)维数组(矩阵)最终构建出俄罗斯方块的整块画布 (二)创建资源GameMode和PlayerController内容浏览器中右键创建这两个东西并命名右边世界设置里面设置GameMode和PlayerController为刚才自己创建的两个,如果没有世界设置,在左上角窗口中可以设...
2018-10-31 00:06:03
3941
6
原创 (蓝图)虚幻4重制俄罗斯方块(二)划分区域和显示方块
上图! 在上一篇中我们使用了BuildMap函数生成了若干个方块,但是并不是我们想要的我们要的是让方块根据A的值来显示和隐藏首先我们先将游戏开始生成的方块隐藏起来,这时候就要调用Block里面的HideBlock函数了,在BuildMap函数中,从spawnactor中的return value节点引出HideBlocks函数,并连接到add后面到ReStar...
2018-10-31 00:05:48
1585
1
原创 (蓝图)虚幻4重制俄罗斯方块-简介、源码和APK
分享一波虚幻4制作俄罗斯方块链接:4.18项目文件提取码:v8vc链接:APK提取码:hqsn也可以到我上传的文件处下载;概述蓝图之间进行交互和打包成apk的基本流程,以及一些思路蓝图中的结构体实现二维数组蓝图中(我认为)不能直接创建二维或者多维数组,可以通过结构体能实现蓝图中数据表格记录并使用静态数据俄罗斯方块可移动的方块形状是确定的,所以不需要动态创...
2018-10-31 00:05:28
2333
3
原创 UE4切换交通工具实例(Socket在Actor的外部使用)
本篇文章将讲述大致实现类似于吃鸡里面上下车的功能直接上图,后讲思路和制作方法,蓝图为关卡蓝图,使用了两个模板包,里面用到的Sedan是Vehicle模板中的汽车Actor,ThirdPersonCharacter是官方自带的模板包比如看门狗里面的摄像机视角和主角视角的切换也可以用这里的方式实现可以直接在这里添加两个官方模板包这里一开始最好设置成第三人称的mode...
2018-07-24 00:07:52
3430
原创 零基础Unreal Engine 4(UE4)图文笔记之影音(十)
目录声音导入资源环境音Actor调整声音属性视频总结声音导入资源目前(2018年7月22日)只支持WAV格式(波形)的音频,这种格式的音频没有经过压缩,一般一首歌就是四五十MB使用方法最快的方式就是直接拖拽到内容浏览器中,然后可以直接拖到场景中(场景中这个叫环境音Actor)环境音Actor作用就是在某个固定地方播放声音,比如什么流水声啊,...
2018-07-22 03:10:23
2333
原创 零基础Unreal Engine 4(UE4)图文笔记之UI(八)
目录准备要显示的属性GameMode-DefaultPawnClass设置变量创建UI添加控件设置属性设置锚点创建绑定建立联系在屏幕上显示Createwidget创建控件AddtoViewport添加到视窗调整进度条创建其它类型的控件水平和垂直框布局总结下一篇最终效果前几篇呢主要讲述简单的材质制作和蓝图的使用,但是我们...
2018-07-20 16:22:07
5533
1
原创 零基础Unreal Engine 4(UE4)图文笔记之粒子系统(九)
目录创建粒子材质创建粒子Spawn(持续生成) 和 Burst(爆发生成)LiftTime属性Inital sizeInital VelocityColor over Life和Alpha over Life总结下一篇上一篇讲述了UI的实现,这里我们来看看一个看起来很复杂的东西,粒子系统,它当然是能做很多很牛逼的东西的啦,什么血啊,雪啊,雨...
2018-07-20 16:21:58
16378
3
原创 零基础Unreal Engine 4(UE4)图文笔记之Relative和World(七)
目录概念参考系层级关系结论ActorLocationRelativeLocationWorldLocation总结下一章在前面的教学中,使门旋转的核心节点就是SetRelativeRotation,还有Location和Scale这三种属性都有三种参考系不同的方法Actor,World,Relative概念参考系参考系不同,坐标不同假设在...
2018-07-19 21:22:40
7573
原创 零基础Unreal Engine 4(UE4)图文笔记之多种开门方式的实现与合并(六)
目录按键开门设置按键映射蓝图中使用按键快速复制(Ctrl+W)测试按键长按开门整理蓝图原理创建bool变量选择语句总结:下一篇 在上一篇文章中,讲述了如何用蓝图制作一个简单的门和玩家进行交互 那么这篇文章将让你对蓝图有更多的理解,同时也会弄一些小东西出来 主要是制作多种开门方式,以及将开门多种开门方式合并,并且在创建中快速调...
2018-07-19 21:22:15
6834
4
原创 零基础Unreal Engine 4(UE4)图文笔记之基础篇-简易交互门(五)
目录创建蓝图Actor添加组件调整碰撞盒子编写蓝图触发事件时间轴设置旋转完整蓝图编译保存使用ActorBUG设置StaticMesh碰撞总结:本章开始介绍蓝图,首先实现自动门功能图比较多,如果懂,可以直接到最后查看最终蓝图创建蓝图Actor前面创建的材质我已经放到了文件夹中,并创建了新的蓝图文件夹打开新创建的蓝图文件夹,右...
2018-07-19 00:17:03
8375
3
原创 零基础Unreal Engine 4(UE4)图文笔记之基础篇-初步运行(四)
目录运行游戏PlayerStartWorldSetting设置GameMode总结:下一章交互门运行游戏前面我们都只停留在观看阶段,连游戏都没有运行过。。。那现在我们就来运行一下PlayerStart首先找到这个PlayerStart,放到合适的位置,调整朝向,朝向就是玩家开始时摄像机的朝向。如果被你删掉了,可以把基本里面的玩家起始拖到场景中,场景...
2018-07-19 00:16:54
5353
原创 零基础Unreal Engine 4(UE4)图文笔记之基础篇-材质入门(三)
目录创建材质RPG(3+左键)常量(1+左键)设置材质基础颜色预览窗口金属值使用材质材质实例总结:下一章初步运行创建材质在引擎界面的下方(默认)的内容浏览器中,先创建一个自己的文件夹,养成分类的习惯右键点击空白处,点击新建文件夹,并命名为Mine(名字自定),重命名快捷键是F2进入刚创建好的文件夹,右键空白处,点击下方的创建基础...
2018-07-19 00:16:46
18936
1
原创 零基础Unreal Engine 4(UE4)图文笔记之基础篇-基本操作(二)
目录场景漫游运用Geometry进行简单的场景移动物体(W)旋转物体(E)缩放(R)细节面板Brush Settings--Brush TypeBrush实例组合(CTRL+G)解组(SHIFT+G)世界大纲记得保存总结下一章:材质入门场景漫游在虚幻4引擎界面的中间,也就是场景模块按住右键+移动鼠标,改变镜头朝向按住右键+WA...
2018-07-19 00:16:38
16971
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人