MxHanks' Blog

奔赴山海,保持热爱

0%

前言

在这个宽裕的寒假里,我跟着哥哥学到了很多关于游戏开发的技术,有一定编程音乐美术基础的我决定要制作出一款游戏,但是一个人还是太难完成这件事情了,在寒假自习的时候经过粗略的交流发现有同学设计过体系很完善的游戏,但是碍于代码太难写了就放弃了,于是我们一拍即合开始了开发……希望能一直坚持到游戏发售的那天!

至于为什么不叫日志而叫日记,我在里面更多会发表一些自己的想法,而非简单客观的陈述我做了些什么。

日记

01 2025.2.16

目前写了 1800 多行代码,将基本的 人物移动 摄像机控制 场景切换 存档逻辑 受伤与攻击 动画状态机 都已经写好了,构建了一个很庞大的框架,之后主要需要进行美术开发。目前使用的素材都是 itch.io 上的免费素材,我们自己的美术资源还在制作中

计划先做出浮岛上的 demo ,设计了一个通过 “意识” 从陆地到岛上的方式,下一个实现的目标就是在人物向上移动的过程中平台的随机生成。

采用的是b站一个免费课程的存档逻辑架构

一些设计手稿 (这些都是我想的,美术资源等完成绘制做好动画后会展示):

阅读全文 »

动画方面

新建思路

创造攻击流程

  1. 创造动画
  2. 每段攻击设置一个子对象,添加 Attack 脚本
  3. 添加碰撞体 (多边形) 设置 Contact Capture Layer, 勾选 trigger

创造敌人流程

  1. 设置动画
  2. 添加 Character,Attack 脚本,设置受伤无敌时间与
  3. 添加两个碰撞体,一个用于地形碰撞,一个用于攻击检测 (设置 Trigger 并设置 Layer Override Priority)
  4. 写单独脚本,继承 Enemy 父类
  5. 根据需要继承 Physicis Check 脚本进行墙壁检测
  6. 创造不同状态的 state 继承 BaseState,并且在 Boar 中设置状态机

创造可存档对象流程

  1. 接入接口 ISaveable 实现方法
  2. 在 OnEnable 和 OnDisable 中 ISaveable saveable = this; this.(Un)RegisterSaveData();
  3. 在接口方法中实现逻辑
  4. 在 Unity 中添加 DataDefination 组件,生成 ID

踩坑

地图设计方面

阅读全文 »

前言

使用这个的原因是因为最近在进行游戏开发,在 obsdian 中新建了文件夹,但是发现在 blog-pages 下没有这个文件夹,才想起来两年前使用的是软链接来实现的,所以在此总结一下 mklink 的使用方式,以后总有会再用到的时候的

Windows mklink 命令使用教程

什么是 mklink

mklink 是 Windows 系统中用于创建 符号链接(Symbolic Link)硬链接(Hard Link)目录联结(Junction Point) 的命令行工具。它可以让文件或目录在多个位置“虚拟存在”,而无需实际复制数据。


命令语法

1
mklink [[/D] | [/H] | [/J]] <Link> <Target>

参数说明

参数 说明
/D 创建目录符号链接(Symbolic Link for Directory)
/H 创建硬链接(Hard Link,仅限文件)
/J 创建目录联结(Junction Point,仅限目录)
<Link> 要创建的链接路径(新生成的快捷方式路径)
<Target> 原始文件或目录路径(被链接的目标路径)
阅读全文 »

Java初级-再次学习

设计模式

单例设计模式 (Singleton Pattern)

具体步骤:

  1. 构造器私有化 -> 防止直接 new
  2. 类的内部创建对象
  3. 向外暴露一个静态的公用方法 (getInstance)
  4. 代码实现

单例模式就时采取一定方法保证整个软件系统中,某个类只能存在一个对象实例,并且只提供一个取得对象实例的方法。

饿汉式

1
2
3
4
5
6
7
8
9
public class SingleTon1 {
private SingleTon1() {
// 构造器私有化
}
private static SingleTon1 instance = new SingleTon1();
public static SingleTon getInstance() {
return instance;
}
}

缺点:创建了没有用,造成资源浪费

懒汉式

阅读全文 »