(蓝图)虚幻4重制俄罗斯方块(四)移动方块

(一)思路

首先大家要搞清楚方块在地图中显示的原理,是根据定位点,把B数组中的元素,映射到地图A数组里面去

移动则是改变定位点的位置,实际上没有任何东西在移动,仅仅是改变定位点的位置

因为由于定位点坐标已知,那么可以计算出B数组映射在A的中范围,同时遍历B数组,如果B中为0就设置A中相同位置也为0,反之则为1即可

如果设定位点坐标为(a,b),那么A中的范围可以表示为a<=X<=a+3,b-3<=Y<=b

(二)显示方块

LocPoint

如果上面的思路清晰了,很显然首先要一个变量存储定位点坐标,打开之前的MyPlayerController蓝图,添加一个整型数组变量,并添加两个元素并设置默认值,0号元素表示x设置成4,1号元素表示y设置成3

 下一步定义是要根据条件,设置A数组,最后达到显示方块的功能

需要满足两个条件后再设置A的值为1

IsLoc

第一个条件要缩小范围到以定位点确定的16个格子中,点上纯虚函数,XY表示A的坐标

 第二个条件要满足,A中的格子为0,B中对应格子元素为1

IsAandBbothEqual

最后创建一个函数 

SetAbyCondition

 

 

这里的setAbyIndex的输入值和前面不一样是因为我增加了一个局部变量,更方便一点

好了,最后到事件图表中,把刚才的函数拖到ShowMap之前,设置好rowname的值为1,就可以看效果了

 

(三)移动方块

控制的方法有很多,这里就用最快的ASD来实现进行左下右移动吧

先弄出这三个键(在搜索列表的很下面),再设置LocPoint的X或Y,设置A,最后显示地图

目前得到的结果大概是这个样子,方块是移动了,新的方块也显示了,但原来的方块并没有隐藏

 解决办法很简单,我们只需要在设置A之前,把整个地图A中的1先删掉,暂时就可以了

(四)刷新地图

ReFlashMap

新建一个函数,调用遍历A宏进行判断后设置A的值为0即可

 

 

 很显然的是,前面创建的宏和一些函数,为我们节省了相当多的空间和时间,不过现在你会发现你的方块可以移动到围墙之外去,这是不允许的,我们会在后面解决这个问题

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锋哥游戏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值