评论框的一些属性:
Any Key节点的用法
1.代表有值输入
2.可以用它来提取任意键盘输入值
今天一共两个大案例:打砖块和贪吃蛇
作业:贪吃蛇初始长度可以任意更改
打砖块案例:
一.可移动的挡板
1.新建一个paw类(确保碰撞打开了)
2.改变玩家控制权,创建摄像机视角,为玩家0激活摄像机
3.书写paw的运动蓝图
Sweep vs Teleport
二、子弹部分
制作一个子弹类
给模型设置no colision,目的是不要影响组件
制作四周的挡板
制作发射小球
在paw挡板类里面新建一个箭头arrow
利用箭头旋转来更改发射角度
设置一些砖块
利用创建标签的办法过滤、分组
建立砖块与球的碰撞消除事件(因为作为staticmesh的模型有很多,这里不能用cast函数过滤)
()
当存在父子级关系时,子类默认会执行父类的事件,如果不需要,可以手动断开
三、 计分系统(一定注意tag相同)
新建文本,调整字体颜色、位置、大小
同样给文本加上标签,建立函数关系:
穿透球练习
将砖块类型改为world dynamic,下面的挡板改为pawn。
overlap事件和hit事件用共同的逻辑线
↓↓↓新的设置碰撞属性的方式↓↓↓
贪吃蛇案例
一、蛇头的制作
新建一个pawn类蛇头,制作蛇头模型,并拖到场景里来
在蛇头蓝图里制作蛇头的移动和旋转
蛇头的移动
蛇头的旋转
(按键的优先级
因为场景里有多个需要相同按键输入的事件,这里会产生优先级的问题,默认会根据出现顺序降低优先级,这里每个actor都取消勾选)
老师的解释:勾选之后,只有这个节点能够接收输入,具有排他性。
和打砖块一样,制作挡板
制作四周的挡板
1.保存蛇身走过的路径(向量vector)
提取一个变量
变量改为数组类型
(在一秒30帧的情况下)
2.设置身体位置(按上面)
同样的方法,再建立数组变量
2.1.位置匹配身体
2.2.
2.3.
3.通过吃食物增加身体,以及减少身体部分
新建一个AddBody函数
在场景里面创建多个“食物”
设置碰撞属性
添加标签
确认蛇 也勾选了碰撞事件
写在BP_Snake上
判断身体长度空间
一、如果身体长度已经不够减分了,停止游戏(pause 勾选!!!)
二、空间够,进行减法
三、碰到障碍的触发(运行减法的条件)
( 障碍物:1.墙壁;2.身体)
先给蛇组件头前面加一个方形碰撞盒
给墙壁、蛇组件自身都设上Block标签
回答:因为这里是一个身体在挪动的过程,删去前一阵的位置,添加最新位置,所以是+1。