大富翁(游戏介绍)

  一、案例说明:

  该案例的目的是希望通过这个案例了解UE4项目与资产的创建与迁移、蓝图中各类常用的逻辑节点、蓝图逻辑的设计与编写、蓝图类之间的交互等常用的蓝图基础知识的运行。该案例的实现效果是在项目运行的时候当按下R键棋子就会向前移动色子点数对应的步数,中途如果遇到陷阱就会向后退2步,按2键就会重新掷色子并移动棋子。

  二、实现步骤:

  1、准备工作

  新建一个空蓝图项目,把相关资产迁移到该项目的“Content”文件夹。

  2、如何让棋子在每次掷完色子之后不用像之前一样要按完“3”之后就自动往前走?

  即如何在每次掷完色子之后棋子就自动往前走。

  在分支结构中判断速度为0后直接执行“PickPointer”事件

  上面的程序这样写会有一个Bug,什么Bug呢?就是我们忽略了在掷色子之前色子的速度就为0,而我们需要判断的是色子掷下之后的停下来的速度是否为0.

  问题:这个Bug该怎么解决呢?

  

  运行程序

  3、如何在棋盘上做个陷阱,让棋子每次遇到陷阱之后都能够后退几步?

  在内容浏览器中定义一个继承自“Actor”,用来表示陷进的蓝图类 “BP_Trap”.

  双击打开蓝图类“BP_Trap”,因为它是陷阱,所以得具备知道谁进入陷阱的能力,所以我们在“组件”中给它添加“Box Collision”简单碰撞组件。给“Box Collision”简单碰撞盒体添加一个 “组件开始重叠时”事件,这样当有对象进入到简单碰撞盒体线框范围之内,该事件就会被激活并执行。

  给“陷阱(BP_Trap)”蓝图类加2个变量,一个Vector类型的变量“MoveDir” 表示棋子后退的方向,一个整型的变量“Step”表示棋子后退的步数,并分别点击这2个变量后面的小眼睛把这两个变量暴露在关卡编辑器的细节面板中。

  当棋子踩到陷阱时候它需要后退几步,所以陷阱有2个属性,不仅要知道它后退的方向,还要知道它后退的步数,所以我们需要加2个变量,一个是方向变量,一个是步数变量

  在棋子的蓝图类“BP_Pawn” 中创建一个表示步数的整型变量“Step”和创建一个表示棋子上一步位置的Vector类型变量“LastStepPositon”。在棋子身上加一个表示步数的属性,即在蓝图类“BP_Pawn” 中创建一个表示步数的整型变量“Step”,只要棋子的步数“Step”大于0棋子就应该往前走,那怎么走呢?所以还需要一个再在蓝图类“BP_Pawn” 中创建一个表示棋子上一步位置的Vector类型变量“LastStepPositon”,把色子的蓝图类“BP_Dice”中关于棋子向前走的代码拷贝到棋子的类图类“BP_Pawn”中并做适当的修改。

  

  4、编译程序