- 博客(44)
- 收藏
- 关注
原创 C# 初级编程
awake 像构造函数但不是真正的构造函数,差别在于这里的类是unity创建的,不能自己new。start 就是在awake之后自动执行的函数体。
2025-10-25 16:32:27
424
原创 勇士传说 Unity 项目
这是一个b站的Unity 游戏入门项目,视频是免费的,但是资源和代码是不提供的。我试试看自己学习这些内容然后整理出来,先免费吧,如果做得好再说。大概看了一下视频居然是4K的 真的舒服。但是我的笔记本电脑最高支持到2.8K很好了,要知道学校里的课程一般最高只支持到1080,在录播课程中【安装Unity引擎和代码编辑器|Unity2022.2 最新教程《勇士传说》入门到进阶|4K】 https://www.bilibili.com/video/BV1mL411o77x/?话不多说直接开始。
2025-10-24 11:23:03
920
原创 向量第一部分
对于二维向量和结果的符号表示方向:若cross > 0v1在v2的顺时针方向(或v2在v1的逆时针方向);若cross < 0v1在v2的逆时针方向(或v2在v1的顺时针方向);若cross = 0:两向量共线(平行)。结果的绝对值表示两向量构成的平行四边形面积(可用于计算长度或角度相关的衍生信息)。有一个运用可以判断 一个点在一条直线的左边还是右边(直线这里要有顺序才有左右的概念)比如说 直线上取两点 A B。
2025-10-23 17:56:27
292
原创 三维管线 基础介绍
基本上我的计划是每周一个阶段去学习,但是这里已经来到了第8周的周三,而我才刚刚开始第八周的学习,得抓紧进度了。最近几天看了,邓乐言 他高一就拿下 CMO满分,天才中的天才。早上六点半 学习到晚上11点,纯自学。学习这件事就是在自身地不断强化,迭代,越是学得好的人,就会在这一领域投入更多的时间去学习,也会把每个知识点,每个地方做更好。这也符合我从小到大对学霸,还有我自己学物理的观察。厉害的人会把每个小点吃透,还会深挖,而跟不走的人 学习起来是一种痛苦,学习比别人好本身就是一种反馈。
2025-10-22 11:47:55
169
原创 窗口工程 win32
我们第一次来创建窗口文件,很有意思的是 从小到大我们一直使用的微软的windows系统,而我们创建的文件叫window,第一次相当于这是我们第一搞windows开发。我们看看微软的 vs studio 官方文档是怎么说的。简单来说就是创建一个空文档 然后创建项目 只不过这里一定注意这几个地方然后创建就可以这里也要注意选择之和和以前一样 创建一个cpp文件就可以了。
2025-10-22 09:29:03
259
原创 A星寻路算法
先埋个坑,因为h函数我还没有搞懂,我现在依然认为 直接计算距离更好,但是豆包一直跟我说 切比雪夫距离更好,感觉有点反直觉,不符合马斯克的第一性原理。在新手村我们肯定都知道 广度优先算法和深度优先算法,但是这种算法太笨了,或者说太暴力了。因为它们都没有一个函数来评判上一步的对错。我们人去找路,每走一步 都会看看离目的地是远了还是近了,相当于我们总是想沿着指南针的方向,按照有路的地方大致朝着目的地的方向前进。因为这种算法效率高,所以在游戏开发中我们都是使用的a* 搜索算法。其实A星搜索算法,也是如此。
2025-10-21 17:58:08
194
原创 模板 树 AVL树
声明这是一个模板,T是 “类型参数”(可以理解为一个 “占位符类型”)。函数体内的T会被编译器替换为具体类型(如intdouble等)
2025-10-19 06:44:00
779
原创 缓冲链表(缓冲池)
2 开辟的内存空间不连续可能导致 产生很多内存碎片,也就是说 我开辟 的内存之间的空隙,可以大 可以小 完全由操作系统自己去控制,可能许多空闲的小的内存空间 一直无法被利用,这就导致可能一个软件运行久了,内存越用越多 到最后卡得不行,必须重启才会流畅。缓冲链表要做的事情 就是一次性就开好所有的连续内存空间,首地址给这个back指针,这里我们在设计的时候,最小的节点个数就是10个。上一节我们讲了链表,都是大一新手村的内容,这里我们主要面对的游戏开发,在实际的开发当中链表有很多缺点。
2025-10-16 06:16:50
329
原创 超级玛丽demo9
在超级玛丽中 有带问号的箱子 还有会运动的蘑菇 还有金币这显然是不普通的 障碍物直接放代码 这玩意写了我两天 实现了能走的蘑菇 还有顶出金币的箱子 还有吃金币。过程懒得写了,不过说实话 这9个demo之后,写了几千行 应该差不多1万行代码 前前后后项目工程能力 有了提升。对游戏开发 卷轴 敌人 碰撞 等等的基础开发框架 开发模式 有了初步了解。
2025-10-12 22:52:52
507
原创 类 结构体 继承 拷贝构造 同类赋值 析构 构造 多态
C++中类和结构体本质相同但用途不同:类默认private权限,支持封装/继承/多态;结构体默认public权限,常用于纯数据组合。类包含构造函数、析构函数、成员函数等,其中虚函数通过虚函数表实现多态。内存管理需注意new/delete与malloc/free的区别,前者会调用构造/析构函数。继承时子类包含父类成员但访问受权限控制,public继承最常用。多态通过父类指针调用子类重写的虚函数实现,底层依赖虚函数表和虚指针机制。静态成员属于类而非对象,全局变量加static可限制作用域。深拷贝需重写拷贝构造和
2025-09-30 06:15:32
610
原创 文件的读写 二进制形式打开文件
本文介绍了文件路径在字符串中的转义处理,以及C语言文件操作的基本要点。重点讲解了fopen_s、fwrite、fread等函数的使用方法,包括参数说明和注意事项。特别强调了通过fseek和ftell获取文件大小来创建缓冲区,以及文件的打开、读写和关闭操作流程。最后提醒要释放malloc分配的内存,并将指针置零以避免内存泄漏。这些内容涵盖了文件操作的核心知识点和常见问题解决方案。
2025-09-28 23:45:07
968
原创 堆 动态内存 超级玛丽demo7
之前我们加入了BMP 里面有个量这里我们 最开始写的400感觉有点大 写了100,假如我们的地图很大 10000往上,要画一个地面,那就完蛋了,BMP 要10000*10000,定义其他东西的时候 比如一个坦克 才3*3.这时候堆就帮我们解决问题了。
2025-09-28 20:03:57
901
原创 矩阵结构体 图片绘制 超级玛丽demo6
这篇文章主要讨论了结构体和类的使用规范,以及游戏绘图功能的优化过程。文章首先指出在结构体中直接写成员函数是错误的做法,应通过成员函数访问成员变量。接着介绍了线性结构、树结构和图结构的特点及应用场景,重点讲解了map数据结构的使用方法。然后详细描述了一个游戏绘图系统的改进过程,从最初的单一图素绘制到支持BMP位图,通过定义MYRECT、BMP结构体和GameDraw类,实现了碰撞检测、图素设置和BMP管理等功能。文章最后提供了一个完整的游戏绘图系统实现代码,展示了如何通过键值对管理BMP位图,并使用迭代器进行
2025-09-28 10:58:41
2009
原创 矩形碰撞检测
摘要:判断矩形碰撞不能仅检测一个矩形的四个角是否在另一个矩形内,因为可能出现四角在外但实际碰撞的情况。正确方法是先检查两个矩形是否完全不重叠(一个矩形的上边低于另一个的下边,或左边超过另一个的右边等),若满足任一条件则未碰撞,否则发生碰撞。这种方法比逐个检测顶点更高效准确。(99字)
2025-09-26 23:47:16
362
原创 超级玛丽demo4 绘制模块
本文介绍了游戏绘制模块的实现,重点讲解了GameDraw结构体的设计与实现。该结构体包含图素存储、窗口大小设置和绘制功能,通过_init、SetTs、SetWH、Begin、Draw、End等方法实现游戏地图的绘制。文章详细说明了双字节图素的处理、下标转换、模块化编程要点,并提供了完整的GameDraw.h和GameDraw.cpp代码实现。最后展示了如何使用该模块绘制一个5x5的方框地图,体现了模块化编程在游戏开发中的实际应用。代码实现中特别注意了边界检查、内存管理和字符编码处理等关键细节。
2025-09-26 00:27:58
559
原创 超级玛丽demo3 头文件 和 结构体
本文探讨了超级玛丽游戏开发中的两个关键实现方式:不使用结构体和使用结构体。主要内容包括:1. 头文件的使用技巧和编译原理,强调头文件不参与编译但影响链接过程;2. 通过20x20地图示例展示非结构体实现方式,包含英雄移动、4个果子的碰撞检测逻辑;3. 分析了指针操作在碰撞检测中的应用难点;4. 对比了面向过程与面向对象的编程差异,指出结构体在封装游戏对象上的优势。文章特别指出,即使简单的4个果子功能,非结构体实现也会导致代码复杂难维护,为后续结构体实现埋下伏笔。
2025-09-14 07:40:07
929
原创 随机数 和 宏
之前一直想用宏,因为这玩意方便,还记得之前写数组地图 0-9 那么多编码吗?如果有几百种编码,那你这个地图写起来 相当不清晰,而且我们在编程时还被迫使用了不安全的全局变量,因为要在不同函数中 使用这些变量。
2025-09-14 00:59:07
329
原创 冒泡排序 简单排序 排序效率
摘要:本文比较了冒泡排序、简单排序和快速排序的性能差异。冒泡排序效率低,主要通过相邻元素比较交换实现排序。简单排序(选择排序)通过固定元素与后续元素比较来优化,适用于小数据量(50以内)。快速排序在大数据量(如100万条)下表现最优,耗时仅0.001秒,远胜简单排序的90秒和选择排序的65秒。文章提供了简单排序的实现代码,并指出掌握快速排序后其他排序方法意义不大。
2025-09-13 22:59:42
273
原创 控制台 实现一个五子棋
上一次 第一阶段的时候 我们写了一个超级玛丽的小地图,这里会增加难度,更加系统一点点的写一个游戏。但是完整的最low的游戏 要使用结构体后 才能实现。但是依然 独立完成 难度比较大。
2025-09-13 20:24:19
725
原创 24道函数练习 有一定难度
本文介绍了21个常用C++函数的实现,涵盖数值计算、数组操作和字符串处理三大类功能。数值计算部分包括阶乘、最大公约数、最小公倍数等基础算法;数组操作部分实现了排序、求极值、计算平均值等实用功能;字符串处理部分则包含字符串拷贝、连接、比较、大小写转换等常见操作。每个函数都配有详细的思路说明和完整代码实现,其中字符串处理函数尤为全面,涵盖了从基础操作到复杂查找的各种需求。这些函数实现注重边界条件处理,如数组越界检查、字符串长度限制等,体现了良好的编程习惯。
2025-09-09 03:48:38
497
原创 函数 初探
本文概述了编程学习要点:1)学习需循序渐进,强调"慢就是快";2)区分局部变量(栈区)和全局变量;3)游戏程序开发分三个阶段;4)void指针特性:可指向任意类型但不能解引用;5)函数占用内存,地址可用void存储。文章提醒读者注意代码实现难度,建议分阶段稳步推进。
2025-09-08 11:55:02
183
原创 数学基础 向量 矩阵
本文简要介绍了向量在游戏开发中的实际应用。主要包含两个案例:1)坦克炮塔朝向控制中0向量的处理,需判断是否与起点重合以避免程序错误;2)射击游戏中子弹方向的确定,通过向量减法获取目标方向,并描述了跟踪导弹的实现原理,即通过不断更新位置向量实现追踪效果。这些案例展示了向量运算在游戏物理和运动控制中的关键作用。
2025-09-07 22:43:54
204
原创 指针初探 内存和地址的运用
本文摘要: 本文主要讲解了C++中const与指针的复杂关系。const修饰指针时,const位置不同将产生三种效果:常量指针(数据不可改)、指针常量(地址不可改)和常量指针常量(两者皆不可改)。文章详细解析了指针的强类型特性,包括类型转换规则和内存访问方式,特别指出const修饰的变量实际无法通过强制转换修改。同时探讨了多级指针的解引用原理、字符串内存存储方式、内存分区权限等问题。最后对比了引用与指针的本质区别,引用本质是别名而非指针。文中还包含有趣的调试细节,如XP系统下VS调试模式的固定内存地址特征。
2025-09-06 06:38:45
131
原创 超级玛丽demo2 数组地图
这篇文章介绍了编程中的内存管理、数组坐标转换以及一个超级玛丽Demo的实现。主要内容包括:1)int变量在内存中的存储方式,const修饰变量的特性;2)一维数组与二维坐标的转换方法;3)使用数组表示游戏地图(0-6分别代表不同元素);4)超级玛丽Demo的实现,包含英雄移动、重力模拟、碰撞检测、吃果子等功能。文章通过具体代码示例展示了如何用数组管理地图状态,处理角色移动和跳跃,以及实现特殊方块顶出果子的游戏机制。
2025-09-06 06:35:10
789
原创 超级玛丽 带障碍物的二维地图 英雄可以跳跃 受到重力
本文介绍了如何用C++实现一个简单的20x20地图游戏,包含障碍物、英雄移动、重力碰撞和吃果子等功能。文章重点讲解了按键检测原理(使用GetAsyncKeyState和位运算处理)、坐标碰撞判断、状态管理(地面/空中状态)以及跳跃机制的设计。作者还指出了当前实现中的几个bug,如吃果子判定不及时、跳跃穿模问题等,并提出了解决方案思路。最后提到游戏通过Sleep(30)暂缓刷新,未来需要用双缓冲技术优化显示。
2025-09-05 21:06:36
941
原创 getchar()循环 二维地图
摘要:本文介绍了如何用C++实现一个简单的字符地图游戏。主要内容包括:1)通过getchar()获取数字字符并转换为整型;2)创建10x15的二维地图,用"□●"符号表示;3)使用双重循环绘制地图,其中i对应y轴,j对应x轴;4)实现用WASD键控制角色移动的逻辑,包括边界检测;5)使用system("cls")清屏实现动态效果。代码展示了完整的地图绘制和角色移动控制功能。
2025-09-05 02:21:54
435
原创 5个 很简单 的小程序练手
本文展示了五个C++基础编程案例:1)找出三个整数中的最大值;2)三次猜数字游戏,提示玩家猜测偏大或偏小;3)剪刀石头布游戏,判断玩家胜负或平局;4)通过坐标点计算距离判断能否构成三角形;5)对五个数字进行排序输出。这些案例涵盖了条件判断、循环、数组、函数等基础语法,展示了简单的输入输出处理和逻辑运算。每个程序都包含完整的输入输出交互和系统暂停功能。
2025-09-05 00:41:26
236
原创 符号常量 位运算
这段文字介绍了C语言中符号常量和位运算的相关知识。符号常量必须初始化且不可修改,位运算可以操作变量的二进制位,包括按位与、或、异或等操作。位移运算左移相当于乘2,右移相当于除2,效率高于四则运算。文中还举例说明了负数位移的特别情况,如-1右移仍为-1。位运算在游戏开发中可高效表示多种状态叠加。
2025-09-04 20:14:14
147
原创 基本数据类型 加减法 初探
int aint a会分配四个字节的内容 为<cc><cc><cc><cc>但是编译之后打断点运行 我们发现 数字居然是-8亿多一个字节8位 的范围是第一位为符号位-128 到 127给a赋值为10那么就会连续分配四块内存 我们用16进制表示一个字节是二进制的8位 就是16进制的2位然后存入内存后 应该是小端字节序我们来看结果vs studio这个功能还是可以继续验证我们之前说的 空的int 内存里面存的是cc 代表清空的意思。
2025-09-04 19:03:05
678
原创 VS Studio 基础教程
本文介绍了使用VS创建C++控制台项目的步骤:1.新建空项目时避免中文路径;2.将解决方案与项目放在同一目录;3.在源文件中编写代码,重点讲解了#include<iostream>的作用;4.提示工程文件夹会记录历史操作,建议定期清理或为每个作业新建工程;5.简要说明.sdf和.vs文件的用途。文章还提到std::cout的用法及iostream文件的位置,并提醒初学者注意项目文件管理。
2025-09-04 14:47:52
308
原创 内存 初识
一个字节 有 8位byte = B = 字节bit = b = 位1 B = 8b平时使用 GB MB 有的地方 用mB 差8位 (任天堂)在计算机中最小的操作单位是 字节 - -B -- byte。
2025-09-04 03:37:33
324
原创 游戏开发 第一阶段 c/c语言-----进制
摘要:本文介绍了十进制、八进制、二进制和十六进制之间的转换方法,包括具体步骤和计算过程。内容涵盖:十进制转二进制(如345→101011001)、二进制转十进制(如10110101→181)、十进制转八进制、八进制转十进制、十进制转十六进制、十六进制转十进制、二进制与八进制互转(如10110111011→2673)、二进制与十六进制互转(如11011010101001→36a9)等。主要转换思路包括除基取余法和分组对应法,并提供了详细的验算示例。
2025-09-04 02:45:48
445
原创 前端5146
input type="radio" value="普通用户" name="userType">普通用户管理员男女localStorage.setItem("name", "张三");(2)选择后获取本组单选框的值。
2023-04-21 21:48:41
129
原创 c语言 顺序表
相比于数组,链表的大小可以动态变化,但是访问链表中的元素需要遍历整个链表。插入:这个函数的实现与插入节点到链表头部的函数类似,首先创建新节点,然后找到链表末尾并将其指针指向新节点。链表中的每个节点都包含一个指向下一个节点的指针,因此在操作链表时需要频繁使用指针。我的代码实现了单向链表的常见操作,包括创建新节点、在链表头部和尾部插入节点、删除特定节点以及打印整个链表。3 注意边界情况的处理。节点:链表中的基本单元,每个节点包含数据和指向下一个节点的指针。尾节点:链表中的最后一个节点,它的指针指向 NULL。
2023-03-28 18:00:20
141
游戏素材,里面有全套教程的游戏素材,视频时原up主免费的,也可以自己整理素材 我这里整理好了
2025-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1