记忆游戏

Windows
MacOS
Linux

CardGame_Board.png

记忆游戏示例是在PC/移动平台上的简单逻辑游戏示例。 它仅使用 蓝图 构建,无需额外的代码支持。

游戏逻辑

BP_LogicMem 蓝图 衍生于 游戏模式 。您可以在 蓝图 中设置默认Pawn类,HUD类,玩家控制器类,观察者类以及GameReplicationInfo类。

在BP_LogicMem 蓝图 中还存在两种 图表EventGraph 包含了游戏的初始设置,游戏所需的必要逻辑测试,以及额外的功能,诸如移动回菜单并显示具有提示按钮的所有卡牌。 FinishGame 处理玩家是赢还是输,奖励玩家的星星数量,以及必要的游戏结束清理。

BP_Counter 由BP_LogicMem调用,使用 蓝图接口 来变更显示的步数,并在可走步数低于3步时对可走步数的文本颜色进行变更。

卡牌处理

BP_DeckMemBP_CardMem 蓝图 是管理如何在游戏中定义并展示卡牌的主要 蓝图 。 BP_DeckMem的一个实例被放置在游戏关卡中,并且其处理BP_CardMem的生成。

BP_DeckMem包含创建并拖曳卡牌组,生成卡牌,在板上放置卡牌并在按下提示按钮时显示所有卡牌的逻辑。 卡牌组的网络被存储在Shuffle(拖曳)函数中,它在准备新游戏时在主 EventGraph (事件图表)中进行调用。在拖曳了卡牌组后, BP_DeckMem生成卡牌,卡牌基于卡牌的总体数量在不同的位置进行放置。板上的每个位置都有索引: CardDeckObjects 数组包含索引中的BP_CardMem 蓝图 ,而 CardDeckShuffled 数组存储该索引的卡牌类型的信息。BP_DeckMem中的旋转事件会在按下提示按钮时翻转所有的卡牌。

BP_CardMem定义了每张卡牌的图像,定义了放置,翻转和移除卡牌的动画,并设置了在比较卡牌时使用的 粒子特效 和声音。

CardGame_ParticleEffects_Right.png

点击输入

BP_PlayerControllerMem 蓝图 启用了鼠标接口。点击事件被启用,而鼠标移动事件则没有。包含点击事件的 蓝图 为BP_MenuMem, BP_CardMem和BP_Scoreboard。这些Assign OnClicked(点击后指派) 节点 都从ReceivedBeginPlay(获取后开始播放)事件中激活,这些事件会在玩家开始游戏后进行触发。

Assign OnClicked 节点 创建绑定于代理OnClicked的事件。 代理是让 蓝图 组件报告其状态并基于其状态变更而触发事件的方式。 例如,当我们在游戏中点击提示按钮后,它会报告该点击,并且会触发提示按钮的OnClicked代理,从而激活会导致所有放置的卡牌翻转的节点序列。

变量 BlockClick (阻止点击)旨在防止玩家在卡牌已经翻转或卡牌正在翻转的过程中对卡牌进行点击。

固定相机

BP_LogicMem 蓝图SpectatorPawn 定义为默认的Pawn类。记忆游戏的 关卡蓝图 在PlayerStart(玩家起始外置处)放置SpectatorPawn(观察Pawn),并且SpectatorPawn的属性使得相机在整个游戏中保持不动。

菜单

Memory Game (记忆游戏)起始菜单在BP_MenuMem 蓝图 中使用简单的 StaticMeshComponents (静态网格物体组件)进行设置。 TextRenderComponents 被用于文本和数字,而Timeline(时间轴)被用来将菜单移出游戏窗口。 使用菜单来对使用的卡牌数量以及是否应使用在成对时会终止游戏的黑牌进行变量设置。 这些变量和BPI_Communication 蓝图接口 一起被发送到BP_LogicMem以及BP_DeckMem 蓝图

CardGameMenu.png

BP_Scoreboard 蓝图 使用 StaticMeshComponents (静态网格物体组件)和 TextRenderComponents (文本渲染器组件)的组合来创建出现在游戏结束处的摘要菜单。

CardGameEndMenu.png

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback