自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

略游

学习和读书,创作与进步

  • 博客(60)
  • 资源 (3)
  • 收藏
  • 关注

原创 【C++】Bullet3代码存档

之前试了一下Bullet3物理引擎,但在linux上编译失败,于是放弃了。令我不满的还有另外一个原因,下载的发行包竟然有500M。C++的Bullet3代码根本用不了,大部分教程实际都是用的老版本。而且此项目还整了python版本,各种蹭人工智能的热度,感觉后面的维护者越来越不靠谱了。于是我准备换用ode引擎,下面对bullet3的简单使用记录一下。

2023-08-06 13:52:29 293

原创 C++标准演绎(未完)

标准:C++语言标准,我们假设与公理等价。结论:由标准推导出的事实。类型:同一类型,它们在C++内存模型中一致。用符号T表示。实例:基于类型的不同实例对象,在内存中拥有不同的值。容器:容纳0到N个,同类型的实例。用符号C表示,它也是一种类型。函数:执行后,改变程序的内存状态。用F表示。

2023-06-29 00:22:46 432

原创 【Visual Studio】常用路径和名字宏

常用的定义名字$(SolutionDir) 解决方案路径 $(ConfigurationName) 配置名,比如Debug $(ProjectName) 项目名

2023-03-06 11:40:57 705 2

原创 Assimp库代码存档

个人感觉assimp存在bug,打算替换至tinygltf,所以备份一下代码。

2022-10-29 15:16:45 561 1

原创 【Arma3脚本教程】二、常用命令

此章内容展示一些常用命令,如果你是服务器管理员的话,可以很方便的在游戏里执行代码(前提是地图文件启用了管理员可执行代码)。要登陆管理员,是在聊天框,而不是控制台输入,输入#login 密码,成功登陆会显示提示。如果你是主机,则不需要任何权限就能执行代码。以上只是写了一些最简单的命令,现在还发挥不出它的威力,等学习了控制语句才能做一些有趣的功能。不过也请依次尝试一下。比较复杂的命令,会单独详细讲解。

2022-09-25 17:16:27 4311 4

原创 【Arma3脚本教程】一、基本介绍

想必看到此文章的人想要学习Arma3的地图编辑,不过国内很少有人研究这个,即使会的也不是专业程序员,即使是专业程序员,也需要花不少时间学习它的特定写法。如果你高中以上学历,英语及格,逻辑水平还行,应该可以看懂本教程。另外欢迎加群讨论:762195010。废话不多说开始。

2022-09-25 15:28:44 3591 2

原创 【C++】字体文件解析(FreeType)

C++ FreeType库基本使用实例,包含描边、字体缓存合并大图。

2022-09-18 15:47:33 6193

原创 【C++】图像加载(libpng、FreeImage、stb_image)

libpng、FreeImage、stb_image都是图像解析的开源库,由于三者我都简单使用过,于是做个总结对比。

2022-09-10 11:33:57 4324

原创 【C++】obj模型文件解析(tiny_obj_loader)

C++使用tiny_obj_loader读取obj模型文件。

2022-09-02 16:11:51 3988

原创 【C++】wav文件解析(兼容性强)

最近将项目改为跨平台,于是音频模块从微软的XAudio2改用OpenAL库。之前使用MSDN的代码,所以现在改为了C++标准的写法,适用性更广。一开始本来在网上找代码,不过改了好几个都不是很好用。因为很多wav文件的fmt块后面并不是data块,经常还带有其他块,正确的方法应该是按MSDN的方法,找到data块再读取。...

2022-08-31 17:27:43 629

原创 【C++】crypto++加密库简单使用

crypto++是一个免费开源(公共领域)的C++密码学库,首作者叫WeiDai(美籍华裔姓Dai)。它包含主流的密码学方案,比如对称加密AES,非对称RSA,哈希函数SHA2等。还包含更常见但不够安全的功能,比如SHA1、MD5。还有没有安全需求的常见功能,比如CRC32、Base64。在官网还列出一大堆功能,读者可以自行查阅。...

2022-07-15 18:23:18 11941

原创 【瓦片地图】瓦片地图坐标转换

目录瓦片地图坐标转换一、前言二、定义二、矩形瓦片三、菱形瓦片1.斜菱形瓦片2.正菱形瓦片四、点在菱形内判断 常见的瓦片地图有矩形、菱形、正六边形几种。此文章主要讨论菱形瓦片,也就是大家常说的2.5D,斜45度瓦片地图。比如《红警2》、《帝国时代2》都是采用这种技术。 严格来说,瓦片的角度并不是45度。因为为了美术作图方便,图片的宽高比一般为2:1,如下图所示,它的实际角度为arctan(1/2),不过这个数值对我们不重要。正如鱼香肉丝没有鱼一般,叫它45度瓦片也无妨,由于它是一个

2022-06-14 20:26:10 2273 2

原创 【字符编码转换】使用iconv

一、配置配置iconv在windows平台会比较麻烦,下面这个是使用vs2022编译的,可以直接使用,其他vs版本自求多福。https://github.com/pffang/libiconv-for-Windows引入头文件<iconv.h>和lib文件即可。官网:libiconv - GNU Project - Free Software Foundation (FSF)二、使用使用倒比较简单,只有三个函...

2022-04-26 16:20:51 2163

原创 【字符编码转换】win32 api

由于我准备换用iconv库来进行字符编码转换,所以记录一下windows平台MultiByteToWideChar和WideCharToMultiByte的用法,以便以后万一用到。//.hnamespace dnd{ /** * @brief 字符串转换:utf-8 -> 宽字符 */ std::wstring cvt_u8_wc(const string& str); /** * @brief 字符串转换:utf-8 -> 本地编码 ...

2022-04-25 23:58:31 290

翻译 【DirectX12龙书机翻整理】第8章 光照

本文章使用机器翻译并略加修改,不保证完全正确。并且只用于学习用途,如有侵权请联系本人删除。 如果你对DirectX、OpenGL、Vulkan感兴趣,欢迎加群:C++图形学 818038139第8章 光照考虑图 8.1, 在左边我们有一个未点亮的球体,在右边,我们有一个点亮的球体领域。 正如你所看到的,左边的球体看起来相当平坦,也许它甚至不是一个完全是球体,但只是一个二维圆!另一方面,右侧的球体看起来确实是 3D的,照明和阴影有助于我们感知实体的...

2022-03-26 22:20:44 702 1

原创 【C++20】vs2019使用modules的实际操作

目录一、什么是modules二、vs版本要求三、项目配置四、标准库模块引入方式五、兼容旧式写法六、导出类与变量七、文件后缀八、实现与主接口分开九、模块命名与分区十、引入模块十一、模块分区 十一、模块私有部分十二、结语大家好,我是略游。今天讲一讲我在vs上操作C++20新标准模块(modules)的经验。此文章具有时效性,只代表当前实验结果,也可作为一个基本写法入门,将来的编译器一定会完善得更好。一、什...

2022-01-03 15:06:59 3495

原创 【C++】Visual studio样式定制

一、定制初衷编辑器是我们工作的环境,为了高效的工作,有必要定制一个比较个性的配色。经过我不断的尝试,终于调出了一个比较满意的样式,下图就是我调出的效果。其实难点在于代码编辑器的颜色和其他窗口颜色在一个主题下默认是同明暗的,要想做到图中对比的效果会比较麻烦。二、VassistX插件vax插件,也叫番茄插件。它的功能太多了,可以到官网查看教程,非常详细:官网地址:Project Directories就这里我列出几个常用操作:ALT+O...

2022-01-03 12:25:59 1309

原创 字符编码简介

目录一、ascii编码二、扩展ascii编码三、多字节编码(multi bytes)四、宽字符编码(wide char)五、unicode编码六、utf-8编码七、结语

2021-12-29 06:51:27 6879 1

原创 【DirectX12】1.基本组件创建和绘图流程

基本绘图流程和组件创建1.头文件#include <d3d12.h> 最基本的dx12头文件 #include "d3dx12.h" d3dx12与以往的不同,现在只有一个头文件,去官方示例里复制一份即可 #include <dxgi1_6.h> dxgi相关 #include <D3DCompiler.h> 着色器编译相关 #include <DirectXMath.h> 数学库 ...

2021-09-15 16:07:00 1620

原创 【LeetCode】6.Z 字形变换

一、问题描述给你一个字符串s,找到s中最长的回文子串。二、问题简化所谓回文字符串,即反过来念的字符串和正着念一样。比如“卿卿我我卿卿”、“一二三二一”、“12321”。回文一词指的是汉语的一种语法,英文为palindrome。问题可以拓展到任意类型,并且并不一定返回最长的(何况最长的可能不只一个)。虽然单个元素也是对称的,但是返回它并没有意义,所以我们只返回长度大于1的回文子串————————————————版权声明:本文为CSDN博主「略游」的原创文章,遵循CC 4.0 BY...

2021-05-27 21:40:47 105

原创 【LeetCode】5.最长回文子串

5.最长回文子串一、问题描述给你一个字符串s,找到s中最长的回文子串。二、问题简化所谓回文字符串,即反过来念的字符串和正着念一样。比如“卿卿我我卿卿”、“一二三二一”、“12321”。回文一词指的是汉语的一种语法,英文为palindrome。问题可以拓展到任意类型,并且并不一定返回最长的(何况最长的可能不只一个)。虽然单个元素也是对称的,但是返回它并没有意义,所以我们只返回长度大于1的回文子串。三、功能实现1.遍历所有子串(从长到短,也可以反过来,看问题需求是返...

2021-05-26 18:41:16 121

原创 【LeetCode】4.寻找两个正序数组的中位数

4.寻找两个正序数组的中位数一、问题描述给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。二、问题简化所谓中位数,就是指一个数组中间位置的数字。当元素数量为奇数时,就是最中间的那个数字;而当元素数量为偶数时,为中间两个数字的平均值(求和除以2)。这里用数列表示并不恰当,数列的定义是正整数集。所以仍旧以模板T抽象表示元素类型,不过对于抽象的类型T来说,我们要求中位数就必须使用求和操作和除以2的操作,再考虑到整...

2021-05-21 19:46:31 379

原创 【LeetCode】3.无重复字符串的最长子串

3.无重复字符串的最长子串一、问题描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。二、问题简化这个问题本质上是:“从一个数组中,寻找最长的子串,其元素均不相同”。这里说下子串和子序列的区别:子串是必须连续的,而子序列不一定连续,但它们的顺序是和原数组相同的。字符串本质是字符的数组,所以我们使用模板使其更通用化比较恰当。并且返回值仍然可以是多个。所以整个函数可以表示为:template<typename T>vector<T..

2021-05-14 17:02:33 95 1

原创 【LeetCode】2.两数相加

1.两数相加一、问题描述给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。二、问题简化这个问题实际上是为了解决大数计算问题,即比较大的数字的计算(众所周知int型的表示范围有限)。很明显题目说的是十进制,实际其他进制也是一样的。十进制一位只有10个值,用4位2进制就足够表示了,也就是32位可以表...

2021-05-12 18:00:15 104

原创 【LeetCode】1.两数之和

1.两数之和一、问题描述给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。二、问题简化这个问题可以简化为:“在一个集合中,寻找两个元素,可通过一个计算得到目标值”。元素可以不用是整数,用T表示。计算不一定是求和,用fn表示。答案可能不止一种,所以我们直接返回所有答案,而答案是一个...

2021-05-12 03:07:52 249 1

原创 【DirectX12】4.用FBX_SDK读取网格数据

用FBX_SDK读取网格数据1.前言前一篇讲了如何配置FBX_SDK,这一篇来看如何读取模型的网格数据。2.导出首先随便创建一个场景,然后导出:在导出的时候勾选上三角算法,将网格全部以三角形面的形式存储,这样方便DirectX的API使用:有些模型在导出三角面时会失败,我在3ds max里转化为可编辑多边形后就导出成功了。当然也可以在代码中执行转换的操作,...

2021-03-30 18:25:39 634 3

原创 【DirectX12】3.配置FBX_SDK

配置FBX_SDK1.介绍FBX格式是现在最主流的用于游戏的3D模型格式,要使用DirectX12绘制模型,当然需要先用这个库来解析模型数据。它的版权协议如下:不是开源的并且是非商用的,假设你完成了一个引擎到时候还需要联系他们讨论版权的问题,不过前提是你想盈利。出于研究技术的目的,所以不用考虑这么多,大不了到时候再换一个格式即可。先在官网下载对应的安装文件:https://www.autodesk.com/developer-network/platform-technologies

2021-03-27 11:07:35 827

原创 【DirectX12】2.示例三角形绘制

示例三角形绘制1.效果下面只贴出关于dx的代码,有时间再详细说明。2.标头.h#pragma once#include "pch.h"#include "LVEDebug.h"#include "LVESystem.h"#include <d3d12.h>#include "d3dx12.h"#include <dxgi1_6.h>#include <D3DCompiler.h>#include <DirectXMath.h

2021-03-23 23:04:37 818 1

原创 【XAuido2】播放wav和ogg格式音频文件

通过MSDN的文档可以知道,XAuido2出了最新的再发行版本,可以兼容win7。而DirectX SDK的XAudio2.7版本已经是2010年的产物了。需要下载库的我有上传资源在CSDN~封装之后,不仅可播放wav文件,也可以播放ogg文件。不过解析ogg格式需要配置libogg、libvorbis、libvorbisfile三个库,在ogg的官网下载配置即可。https://xiph.org/downloads/并且我分为音乐和音效两个混音,可以分别控制音量大小,符合一般游戏的需求。并

2021-02-01 20:37:06 605 2

原创 【pnglib】解析png格式的图像

解析png格式的图像前言鉴于有人收藏我07年写的博客,是关于解析png格式图像的那一篇。所以我打算再写一篇防止坑你们……1.图像的内存表示反复说到计算机中只有二进制表示,那图像如何以二进制表示呢?现在常用的规范是用4个字节表示颜色,分为4个通道ARGB,分别为透明度、红色、绿色、蓝色,这是比较常用的颜色表示方式。还有其他的色彩模型,例如HSV色彩模型,分别为色度、饱和度、纯度。还有HLS色彩模型,为色度、亮度、饱和度。在绘图库和显示器等层面,能够直接处理的应该是RGB颜色模型。也就是通过

2021-02-01 20:13:22 1626

原创 【C++教程】04.求1加到100

第四章求1加到100前言该问题就是求1加2,再加3,一直加到100的值。此章我们用代码来实现一下,并介绍用到的C++语法知识。1.神童高斯1786年,高斯9岁的时候,由于他老师想打发一下上课时间,于是让学生们计算1加到100的结果,他心想必然不太可能这么快算出来,结果高斯用了不同于硬算的方法很快得出了结果。就在前不久我那读初一的妹妹给我说到有次挨打就是因为求这个问题,我心里一惊我小时候也应为这个问题被我爸打过。所以有些结论现代人看上去很简单,在以前的时代其实并不是那么容易得出的,并不是以前.

2021-01-24 22:24:37 11248

原创 【C++教程】03.第一个程序解析

第三章第一个程序解析前言第一个程序也即是如何显示字符串“HelloWorld!”,这是大多数程序员都走过的路。别提第一次成功编译时,我有多高兴,所以如果你还没编译成功,不要气馁,再研究一下第二章。下面列出第一个程序的代码:#include <iostream>using namespace std;int main(){ cout << "Hello World!"; //等待用户输入,防止程序一闪而过 int a; cin >> ...

2021-01-23 21:15:13 267

原创 【C++教程】02.环境配置

第二章 环境配置前言虽然C++是语法,是抽象的东西。但落实到实际操作,还需要对编译器如何使用一番研究,如何实际的开始编写C++程序。1.种类反复说到C++是定义的规则,而编译器是按C++的语法编译出对应的程序。所以谁都可以制造一个编译器,只要满足规则即可,不过这种活应该没人喜欢干。比如MSVC和GCC,前者是微软开发的C/C++编译器,后者在一些轻量化的编译器中常见。2.使用MSVC原因如下:1.大家的操作系统一般是Windows,比较方便操作。2.MSVC确实很强,使用的.

2021-01-23 18:34:52 765 2

原创 【C++教程】01.基本概念

第一章 基本概念前言这一章或许会比较枯燥,想直接实际操作C++编码的可以直接跳过。此文章有许多个人心得,非原则性的说法见谅,如有常识性的错误,欢迎提出。1.计算机与二进制众所周知,计算机和数学密切相关,属于一门科学。如物理、生物和化学一样,通过逻辑定义来解释世间的事物。就说物体的运动规律吧,前有亚里士多德提出“力是物体运动的原因”,后有牛顿提出“力是改变物体运动的原因”,再有爱因斯坦说“世界不存在力,质量造成时空弯曲,从而形成了物体的运动轨迹”。所以计算机实际是一种,以二进制为基础形成的逻辑

2021-01-22 19:17:45 181

原创 定点定时抛物效果实现

定点定时抛物效果实现要实现物体的移动效果,可以通过公式简单得出。我们定义一个概念叫速度,在游戏步进的一段时间里,会改变自身的位置。假设由A点移动到B点,则为:其中P为物体当前的位置,一开始为A点。当随着时间流逝,P的值是在更新的。这意味着我在说:“我会一步一步的前往目的的,最终就会按预期的时间达到B点。但若是速度发生了变化,则可能到不了B点,或者没有按期望的时间到达”,所以要其中的V是一个定值。假设我们期望t秒到达B点,那么很简单得出V值:不过,我们也可以换一个思路来计算物体的位置,不使

2020-10-10 02:59:25 202

原创 光速AStar寻路算法(C++)

光速AStar算法实现,基于C++一、最终效果可以看到,我创建了500个小动物,也有110的FPS。虽然它们并不是每一帧都在计算寻路,但是平均下来不卡顿也不错了。我是i7 6700 + GT 720,这个效果图虽然不能直观的说明效率问题,但我相信我的AStar比网上一般的例子快。如果对绘图的DND库感兴趣,可以移步我的其他文章。二、使用方法针对不同的物体,肯定有不同的寻路逻...

2020-04-16 01:58:29 2807 7

原创 【DND图形库】一、简介与环境配置

一、简介与环境配置(甲)简介这是一个2D图形库,基于DirectX11,使用C++作为开发语言,最低支持Windows7和DirectX11显卡(如果显卡不支持,绘图效率会很低)。主要的目的是开发2D游戏,大部分框架的功能已经完成,不过还在完善。不过我的目标就是使其成为商业级的2D游戏引擎,在这个过程中,用它做一些小游戏还是可行的,目前比较适合在校学生学习用。希望学习C++和开发2...

2020-03-25 03:08:02 1530

原创 【DND图形库】五、按钮控件与音效

五、按钮控件与音效(甲)按钮控件在DND.h里能看到有哪些控件,基本上都以静态工厂模式创建:///////////////////////////GUI///////////////////////////////////////////#include "DNDGUI.h" //GUI 控件基类#include "DNDGUIButtonSpriteScal...

2020-03-24 19:27:32 339

原创 【DND图形库】四、文本绘制和按键检测

四、文本绘制和按键检测(甲)文本绘制文本是Text类,本质上是基于Sprite的,但是用户不需要考虑这么多。首先我们需要准备一个字体文件,在系统的C:\Windows\Fonts目录,有许多的字体文件,找一个自己喜欢的拷贝到工作目录里即可(如果要输出中文,则字体必须包含中文)。假设我们复制的是楷体(simkai.ttf),那么先要加载字体文件,并取一个名字。sys->LoadF...

2020-03-24 18:48:56 279

原创 【DND图形库】三、创建窗口和绘制精灵

三、创建窗口和绘制精灵与文本(甲)创建窗口代码如下,很简明,通过调用一系列SetWindow函数:virtual void _init() override{//初始化 sys->SetWindowTitle(L"教程01");//设置窗口标题 sys->SetWindowStyle(WS_OVERLAPPEDWINDOW);//设置窗口样式 sys->Se...

2020-03-24 18:07:27 442

Visual Assist X 2440 64位

支持vs2022 64位,并增加对C++20模块的文件识别。本人测试可用,有用的话点个关注吧!

2022-03-02

XAudio2.9Redist.7z

XAudio2.9再发行版本(包含.h和.lib),支持win7

2021-02-01

HGE引擎游戏代码x2

用HGE引擎制作的两款小游戏。文件内容为源代码、游戏下载地址。 这是我大一大二写出来的,水平非常的低,所以请大家不要下载了,然后需要的积分我也改成了0……

2014-05-21

空空如也

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

TA关注的人

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