Roman
|
e6888a748d
|
任务:编写教程和开始场景
分析:分为五个阶段,每个阶段一屏宽。前四个阶段是教程阶段,分别仅放一种障碍(第一个无障碍)和提示,提示参照茶杯头教程关。
每个阶段间有明显间断、镜头固定,但当马通过该阶段的障碍后,镜头右移一个阶段。马不能倒退,相机左侧有空气墙。
到达最终阶段后,按流程点燃圣火进入游戏
设计:
1.搭建核心场景,放置障碍物。
DONE
2.设计教程及开始场景管理器
(1.控制相机,使马每通过一个阶段,相机运动到记录的位置
DONE
(2.给相机左侧添加空气墙
DONE
(3.管理器要明确记录此时玩家处于哪个阶段
DONE
(4.当玩家进入点燃圣火触发器,切断操控,等待动画结束或者一些信号,触发从右向左的渐变黑幕遮挡全屏,随后转场到新场景。
DONE
至此,基本逻辑完成,需要补充大量细节、替换大量美术素材。
修复问题:
1.人马分离障碍连续出现可能导致致命问题,修复使其不能连续出现
DONE
2.GamePlay中,远处的山需要补充运动逻辑
DONE
|
2022-08-26 18:11:05 +08:00 |
|
Roman
|
b66d86645e
|
任务:开发人马分离系统
分析:
1.其是与马并列的存在
2.具有状态:Normal:骑在马背,Shoot:从发射到着地到平台,Walk:在平台行走,landing:降落,Recover:若成功降落至马背,从刚判定成功到恢复到Normal态的中间态,为Recover态,Dead:判定为失败的瞬间以后都为Dead态。
3.效果要求:到达障碍物前某一位置后,人自动弹射,降落至平台,然后开始匀速移动,脱离平台后降落,之后持续判定是进入Recover还是Dead态。进入Recover态后,修正其偏移,使其回到默认的位置,Dead后,触发GameOver事件。
子任务:使人紧紧跟随马
1.当人处于Normal态,每帧同步人的位置和旋转到马背某处。
效果正常。
DONE
子任务:设计障碍物
1.仅跑道有碰撞体。
2.在障碍物主体之前有触发器,保证用户通过时能检测到,当检测到人进入触发器时,触发人的函数,Shoot()。这个触发仅有一次。
3.当检测到人着陆到平台上,触发人的函数Land()。
4.当检测到人离开平台,触发人的函数FallOff()
DONE
子任务:完成人的Shoot、Land、Falloff函数
Shoot:
1.给予刚体一个固定的朝向右上角的速度,使其刚好能抛到平台上。
2.从Shoot到Walk,大约有1~2秒时间,不能让人脸着地前进吧。所以,需要在1秒内修正人的旋转,修正完后锁定刚体Z旋转。
Good Job!效果不错
DONE
Land:
1.此时人脚着地处于平台上,让人按照固定的速度一直朝着右边前进即可
比较简单
DONE
FallOff:
由于胶囊碰撞体的特殊性,下落时会触发多次FallOff,这是不行的。同时,人在边缘直接坠落非常难看,所以这里加上一段小跳跃。
1.当触发FallOff,给刚体一个右上的速度,模拟跳跃
Good Job,效果很不错
DONE
子任务:完成马接住人的判定和控制系统
1.在马背安置触发器,当检测到玩家进入,触发人的Recover函数
2.完成人的Recover函数,使人在短时间内回到指定的位置和旋转,恢复的最后把人的状态恢复到Normal
DONE
子任务:开发,人直接掉落到地面的死亡逻辑
1.直接掉落到地面后,触发GameOver
子任务:测试
1.发现人Recover功能的问题,Recover时的目标点是固定的,但是恢复的过程中马会动,所以这种办法从根本上就有问题。再多写一个动态的追踪比较麻烦,姑且让人恢复得快一点,这样就看不出来什么破绽。
已解决
2.人有时发射不到人马分离的平台上,应该是发射速度太小导致的,已调大。
3.我认为现在创烂障碍物的速度门槛太低了,已适当加快
4.人马分离障碍会突然出现而不是从屏幕右侧进入出现,这是人马分离障碍体积过大导致的。目前只能适当右移障碍物生成点解决。
5.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。
已修复。
暂未发现更多问题。
至此,人马分离障碍物的逻辑基本完成
*修复Bug
1.原先马在触发器也会被阻挡,这是因为马脚供力的算法的错误导致的,要从根本解决需要修改复杂的算法,所以这里使用Trick,将触发器的物理层转移到忽略射线检测层,解决了这个问题。
DONE
2.发现Bug,本来可创烂障碍物的爆破力度会随着马的速度而改变,但现在经常响应不到。原来监听的是马的速度,由于整个数学模型的特殊性,马本体的速度变化极其诡异,所以易导致监听错误。应采用新的监听方式,不再监听马本体速度,而是监听用户过去若干时间内的输入变化,由此来决定爆破力度。
不是!我的代码没问题,是这个插件的作者的代码的问题,非常啥卵。已通过修改插件作者源码解决问题。
DONE
|
2022-08-19 14:23:35 +08:00 |
|
Roman
|
465bb3e51b
|
任务:编写内容应付中期提交
1.替换部分美术素材
(1.替换新的马
(2.布置背景
2.创建教程场景,说明移动方式、跳跃方式,并陈列目前三种障碍
3.调节脚本优化控制体验
4.新建背景无限循环系统
5.调节各系统参数,使其至少能玩
6.导出一版EXE供提交
7.撰写操作说明
8.录制游戏演示
|
2022-07-30 20:02:28 +08:00 |
|
Roman
|
e3e11e2556
|
任务:编写玩法框架
1.制作障碍系统
(1.制作几种类型的障碍物的预制体
((*.编写障碍物基类,以下几种均继承自基类,含碰撞体,RememberY(生成障碍物时该有多大的Y)
((1.矮障碍,仅碰撞体
((2.高障碍,仅碰撞体
((3.可冲破障碍
(((1.除基本碰撞体外,额外包含一个触发器,比碰撞体先检测到马,同时获取马的x速度,大于阈值则给障碍做破碎,用马的力度决定破碎力,关闭碎块和马的碰撞
(((*.导入某2D破碎插件
((4.人马分离障碍
(((WAIT,需要等待人马分离系统先搭建
(2.编写障碍物生成系统
((1.每若干时间,生成一个随机一种障碍,若干的范围可控
(((1.设计协程,从预制体列表中随机出一种,并在计算好的位置实例化,随后等待范围内的若干时间,然后检查马的存活情况,若马仍存活,重新调用本协程
((2.生成的位置:x在相机右侧若干不变距离,y根据障碍物的不同而不同,需要计算保存。
(3.编写障碍物消亡系统
((1.每个障碍物和碎片都会在离开镜头后被删除
|
2022-07-30 00:47:44 +08:00 |
|
Roman
|
e1fa077241
|
任务:编写玩法框架
1.视野移动和死亡重开系统
(1.相机以一个可指定的、热更新的速度始终往右移动
(2.相机带有一个子物体,子物体带有触发器,触发器位于镜头最左端
(3.给马头添加碰撞体,用于判断镜头卡死死亡
(*.创建类:GameController,作为各种中介者使用
(4.当相机子物体的触发器检测到马头,说明马被卡死,给中介者发送信息触发死亡的一系列事件
((1.马死后,修改马状态至死亡
((2.相机不再移动
((3.关闭马的碰撞体,给一个右上的速度和旋转,马模型掉出地图
(5.设置按键以调试重开,目前是按R
DONE
|
2022-07-28 15:58:55 +08:00 |
|