C++中,hpp文件的使用
hpp文件是Header plus plus的缩写,实质是将.cpp的实现代码混入.h头文件,即声明与定义(实现)都包含在同一个文件中。
该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。
实现代码将直接编译到调用者的obj文件中,不再生成单独的obj。
采用hpp将大幅度减小project中的cpp文件数与编译次数,也不再发布烦人的lib与dll,因此非常适合用来编写公用的开源库。
hpp文件与h文件的联系:
与*.h类似,hpp是C++程序的头文件
是VCL(Visual Component Library的缩写,即可视组件库)专用的头文件,已预编译
是一般模板类的头文件
一般来说,*.h里面只有声明,没有实现;而*.hpp里面既有声明也有实现,显然后者可以减小cpp的数量。
一些特征
是Header Plus Plus 的简写。
与*.h类似,hpp是C++程序头文件 。
是VCL 专用的头文件,已预编译。
是一般模板类的头文件。
一般来说,*.h里面只有声明,没有实现,而*.hpp里声明实现都有,后者可以减 少. ...
《泰坦陨落2》动态皮肤(VTF)MOD制作教程
前言泰坦陨落2是由重生娱乐制作组开发一款快节奏FPS游戏,游戏由其畅快的高机动性枪战体验和独有的泰坦机甲而广受玩家好评。
本文是一篇关于如何为泰坦陨落2制作动态武器皮肤的教程。教程内容全部由本人HK560编写,感谢各位热爱泰坦陨落的玩家支持。
本教程为武器动态皮肤制作教程,其他泰坦皮肤或铁驭皮肤可参考本教程和其他文档进行类推,无论是是否动态静态的。
注意:泰坦陨落2皮肤制作有两种方式:一种是VTF方式,一种是DDS方式
简单描述差异: VTF方式能实现动态效果,可以打包为北极星MOD方便北极星启用禁用,缺点是无法使用法线贴图AO贴图等只能使用基础颜色贴图。而DDS方式只能是静态贴图,但是能够使用游戏所支持的法线贴图AO贴图发光贴图等,能再现游戏内贴图效果。两种方式打包制作复杂度类似。
本文教程是动态皮肤教程,所以是VTF方式制作皮肤。
转载请标明原作者和原文章地址
制作动态皮肤的大体流程流程简述:
获取武器模型文件
获取武器模型对应贴图文件
处理模型文件
根据获得到的资源文件进行基础皮肤制作
将基础皮肤处理为动态皮肤
压缩动态皮肤文件
打包导入皮肤文件
动态皮肤原理:动态皮肤的贴图 ...
【NorthStarCN】 一个适用于泰坦陨落2的MOD框架
什么是 NorthStarCN 北极星CN ?NorthStar 是一个MOD和MOD框架,它允许玩家用户使用脚本架设他们自己的泰坦陨落2客制化服务器并自定义内容,也能够架设 vanilla 内容。对于普通玩家而言,使用NorthStar能够游玩由NorthStar架设的服务器房间,不经过官方服务器。
NorthStarCN 则是基于原版NorthStar,进行本地化修改,修改了MasterServer并进行了部分汉化,使得在中国大陆环境下能更流畅使用NorthStar框架并进行多人联机,并提供相关可使用的MOD。该项目由国内泰坦陨落粉丝玩家维护。
NorthStar 和 NorthStarCN 都属于早期项目,仍有许多地方需要完善,如果您遇到任何问题欢迎积极交流。
我们由衷感谢感激原作者为泰坦陨落2社区贡献和付出,本项目遵守MIT协议。
快速开始
首先你需要下载NorthStarCN的客户端并安装,请访问发布仓库下载
将下载下来的客户端压缩包的所有文件解压到泰坦陨落2游戏的根目录
启动并登陆Origin完毕后,点击运行游戏根目录下的NorthstarLauncher.exe即可启动
...
STL C++ 二维MAP查找find()函数的使用
放在前面STL中的unordered_map类若想要实现二维map可以这样写
1unordered_map<char, unordered_map< char, string> > Map;
这样相当于是一维二维的的数据类型为char,内容为string使用起来就是
1Map['A']['B']="AB";
不过若是我们想要给定了一个key<char,char> 查找这个二维map是否存在该key的值要怎么写呢?
查找二维map的值对于一维的我们直接调用成员函数find()就可以了不过对于二维的,我们可以这样写:
12345//查找Map['A']['B']if((Map.find('A')!=Map.end()||Map.end()->first=='A') &&(Map['A'].find('B')!=Map['A'].e ...
《代码整洁之道》阅读笔记
代码整洁?
代码永远存在,无论软件行业发展,代码永远是各种工具的基石地基,没有代码这些东西工具也不会存在,无代码运动就是个笑话
糟糕的代码会给项目发展逐渐显现弊端,混乱增加,生产力下降,最后趋于零,这是非常可怕的。
花时间保持代码整洁不但有关效率,还有关生存。整洁你的代码,保护你的饭碗。
多数经理想要好代码,他们想要知道代码实情,所以不应当羞于高数项目进展实情
写出整洁的代码是困难的,需要技巧和不断练习
整洁代码读起来是愉悦的,糟糕的代码会引发混乱,别人修改往往会越来越乱
代码应当讲述事实,不引人猜测,便于其他人增加修改
如何整洁你的代码,不如说是如何在意你的代码
不要重复代码,只做一件事,表达力,小规模抽象
名字要起的有意义
变量,函数,类的名字就应该能解释大部分的东西,备注都是额外的,能做到不需要额外备注就是最好的
避免取容易引发歧义猜测的名字,比如一些专有名字,大家耳熟能详但在代码中缺失另一种含义的名字
accountList 除非你是真的用List类才这样写。否则还是写成AccountGroup吧
太过相似的变量名也不合适,应该做容易区分的,尤其是“I”“l” 还有“O”“0 ...
在Hexo博客上使用自定义Live2D
放在前面之前看到有很多人用hexo博客左下角右下角总有个live2d,自己也稍微研究了一下,发现用起来还是蛮简单的,作者提供了几个live2d模型的包,但其实我们是可以使用其他的自定义的live2d模型
安装使用live2d,并配置自定义live2d模型
首先安装 hexo-helper-live2d 仓库链接 官方文档写了怎么安装配置了,按照步骤来即可。不同hexo主题应该是不受影响的。
配置模型,官方文档里写了需要在博客根目录创建一个live2d_models模型文件夹,然后你的模型文件要放在一个文件夹内,再把这个文件夹放到live2d_models文件夹下面文件目录示例:
使用自定义live2d模型,首先确保你的模型文件是旧版的live2d,新版好像是不兼容的。然后将你的模型json文件改名为XXX.model.json,XXX为模型名字,你可以自己设置自己想要的名字。然后将整个模型文件夹的名字也改为XXX 把这个文件夹放到live2d_models。 要使用这个文件夹就在_config.yml的live2d配置 live2d.model.use 配置为XXX ,就如下图一样 ...
战地风云2042艺术设定集原生轨音乐领取下载链接
前言说起来我其实也算是个战地系列粉丝了,bf3开始玩的,一直很喜欢运河,这次运河回来了,就没忍住买了个终极版。不过这个终极版说送设定集和OST,找了好久没找到,最后终于在reddit上看到有人发了链接
BF2042设定集和OST领取方法1.进入领取地址2.点击sign登陆ea账号
3.下载
应该是只有终极版玩家才能领取?不过我下面附上了能直接下载的官方链接
直接下载链接
直链下载设定集
直链下载OST
希望2042慢慢完善,对得起大家的期待
QT实现使用遗传算法解决旅行商TSP问题
放在前面
来自广州大学人工智能实验
仅记录代码实现过程思路,不对涉及知识过多讲解遗传算法解决旅行商问题一 对旅行商问题进行编码旅行商问题,目标是求一个走过所有目标地点尽量最短的路径。我们可以将这个路径视为一个数组,数组中的每个元素就是经过的城市的编号,元素的排列顺序就是走过地点的顺序。以遗传算法的视角来看,该数组(路径)中的元素相当于基因,但是这个基因并不重复,因为旅行商问题不会重复走过同一个地点。所以我们可以将每一条路径视为一个数组,数组中的元素就是地点。种群由这些一条条不同的数组(路径)组成。
在QT中可以用以下这种方式存储路径,元素int类型可以是地点的编号
1QVector<int> path;//路径
不过我们还是得创建一个location类,将地点信息(名称,坐标等)存储一下,方便后面操作
12345678910111213141516171819202122//location.h#ifndef LOCATION_H#define LOCATION_H#include <QObject>#include<QtDebug>class l ...
解决vscode终端执行hexo命令提示无法加载文件因为在此系统上禁止运行脚本
问题今天在用vscode的终端创建hexo文章时候,执行hexo new 时候得到如下错误提示
原因原因已经告诉我们了,因为当前系统上的powershell策略不允许我们执行脚本
解决使用管理员身份打开powershell输入命令 get-ExecutionPolicy
12PS C:\WINDOWS\system32> get-ExecutionPolicyRestricted
返回结果为Restricted 微软doc说明如下:
RestrictedThe default execution policy for Windows client computers.Permits individual commands, but does not allow scripts.Prevents running of all script files, including formatting and configuration files (.ps1xml), module script files (.psm1), and PowerShell profiles (.ps1) ...
机器学习实验朴素贝叶斯逻辑回归处理adult数据集(附代码)
放在最前面
题目来自广州大学机器学习实验
本文以解决数据集处理问题为最高目标,不会对涉及到的知识过多介绍,会写出问题解决思路方式实验题目
基于Adult数据集,完成关于收入是否大于50K的逻辑回归分类、朴素贝叶斯模型训练、测试与评估。
1 准备数据集并认识数据 下载Adult数据集 http://archive.ics.uci.edu/ml/datasets/Adult 了解数据集各个维度特征及预测值的含义
2 探索数据并预处理数据 观察数据集各个维度特征及预测值的数值类型与分布 预处理各维度特征
3 训练模型 编程实现训练数据集上逻辑回归模型的梯度下降参数求解、朴素贝叶斯参数统计
4 测试和评估模型 在测试数据集上计算所训练模型的准确率、AUC等指标
实验内容及步骤数据集下载处理http://archive.ics.uci.edu/ml/datasets/Adult
下载后用excel打开文件,发现没有index没有列名,只好手动处理添加一下,处理好的文件我会放在源码文件夹里。
使用pandas读取文件,简单处理一下
1234# 读取数据,预处理df = pd ...