Opengl做一个原神贴膜的无尽跑酷游戏,感觉可能类似于c++小恐龙那种,但是会带一些骨骼动画,opengl确实难,但是还好有https://learnopengl-cn.github.io/上面的现成的代码(大部分框架都是基于learningopengl的代码写的)
-
写出了virtualCamera 第一人称、第三人称和上帝视角,就是拿到角色的位置之后,把camera的位置强制放在这个位置的前面一点就是第一人称,后面的上面就是第三人称,加一个可以自由移动的就是上帝视角
-
模型obj拿的WhizZest/learnOpenGL: openGL learning code (github.com)上面的芭芭拉,不太懂pmx怎么转obj。动画用https://www.mixamo.com/,上传obj下载对应的简易动画即可
-
写了一个简易的方形地图,可能后续得换一个长条的,加点障碍物什么的
-
大概写了一些状态机的骨架
- 写状态机写了一堆,指针引过来引过去的,出来爆一堆前向引用的错,小修了一会儿(好久没用指针了,记不清了)
- 人物动作全部都提前渲染好,免得切动作的时候卡顿,所有的动画都static存到了Animator里面,又是指针,报了一大堆的错。查半天,有时候这个编译器找不对错在了哪里,有时候是static变量忘了声明,但是爆的错是glm库里面没有什么什么成员变量?很奇怪,还好还好,今天把最基础的调出来了。可以init进入IdleState。
- 准备抽象出Input类以供State进行Update里面的判断
- 准备研究如何进行碰撞检测,添加障碍物以及伤害等诸多问题
- 感觉添加地形还是有点麻烦,地图也不好做,感觉还是做平面RPG好一点,完成player攻击,添加cd和后摇,攻击的时候不准跑
- 写了AABB Collider,但是还没有限制碰撞和具体的碰撞逻辑,写了人物攻击发射子弹,同样没完善子弹和其他collider碰撞
- 添加Enemy,Idle、Move和Attack,具体逻辑没写,目前只会Idle,应当会在Front一定角度和范围内感知player,然后朝着player走过去,一定角度和范围内会进行攻击,待完善
- 换一个敌人模型,考虑pmx转obj
- 完成Enemy的Idle、Move和Attack逻辑
- Player可以攻击,完成子弹Bullet的发射和模型展示
- 完成AABB碰撞Collider,但是存在bug,这个框在Idle的时候是在player身上,但是一旦move,就不对了(enemy同理,或许bug在move上)
- 完成bullet对enemy的碰撞检测,使用EnemyManager单例模式对Enemy进行管理,可以同时产生多个enemy
- enemy受到攻击三次就会消失(但是还是碰撞框的问题,没找到bug,就可能一直打不到enemy)
- 修复完所有bug
- 可以对敌人正常造成伤害,击杀敌人
- 并未完成敌人对player的伤害,因为只是demo
- 并未添加音效,并未做受伤动画,并未做击退
- 每隔15s生成一个敌人,最多三个敌人,开局一个敌人
- 地图、模型简陋
完结,以后有空了再优化
很好,汇报结束,感觉还行
除了没加天空盒、没加光照、没给丘丘人加纹理(不会用Blender,老师一句话给打死了:反正之前有人做到过。确实还是太菜了,而且就一个人做)
传几张图,之后有空再加上吧



