评论框的一些属性:

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。

