课程简介
欢迎来到yk1boy的游戏教程第一课
在这节课中,我们将创建角色基础属性并实现大家期待已久的大地图效果:
“大地图技术”不仅可以用在这个游戏游戏,在很多其他类型的游戏中也会用到:
《回响之间》
《渺谜.喵咪》
创建角色
未雨绸缪——提前创建角色的属性
在开始制作一个作品时,我们需要提前思考在制作中会需要用到什么,并且提前为之后的修改提供便利。(我才不会告诉你之前我一个作品因为没有提前规划导致我被折磨了3天呢)
例如我们在开始制作这个作品时,可以先把玩家角色中需要用到的属性都给创建好,这样在之后制作玩家的其他功能时,就可以直接引用这些属性,例如在制作玩家的移动时,我们可以直接引用移动速度的数值。
创建自制积木
“不可拖动”那个模块下面的部分是我为了方便修改加的,如果做的游戏比较简单可以不加。(只用一个基础数值即可)修正比例是各个属性在修改时会额外乘上的一个数值,例如在《无尽边缘》中骑士这个角色的防御修正就是2,意味着所有防御属性的增减都是两倍。
创建属性(例如现在列表的第一项就是血量相关的数值)
把属性都存在列表中的好处是可以统一调度,修改这些属性的方式都是(把列表XX的第X项改为X),因为修改的是同一个列表,所以改起来很方便。
在商店中修改属性时,6 3就意味着把第6个属性(防御)增加3
但是缺点就是你可能记不清哪个属性在什么位置......
所以我强烈建议开一个记事本,记录各个属性的位置:
角色移动——大地图移动的实现方式
大地图的实现其实很简单,只要创建一对变量:相机X和相机Y(其实你想叫什么都可以)
然后因为我们现在要做玩家的移动,所以我们还要在创建以下三个变量:
一 两 二 三(陆小果发言)
这时候有人就要问了,那个玩家x和玩家y我理解,就是玩家的坐标嘛,那么那个玩家x动又是什么东西?
这个x动和y动,其实就是角色在x和y方向上的动量,接下来我们只要写下这些代码:
通过x和y向量控制坐标移动。
将玩家的坐标转化为舞台区上的坐标
就可以确定玩家在舞台上的移动了!
通过按键控制玩家的移动——高级按键控制
按键这个看似很简单的问题其实困扰过很多人(反正我是被困扰过),因为如果单纯使用这个代码:
真是太逊了
就会发现:当我们同时按下w和d键时,玩家每次移动的距离超出了10,因为玩家是先向右移动了10个像素,再向上移动了10个像素。
要解决这个问题,我们可以写这段代码:
检测按下移动键的个数
接着我们分别按按下了1 2 3(按下4个不动)个键的情况考虑即可。
第8项在我创建的属性里是移速,这里应该填你创建属性里移速所在的位置
(还有要注意的是我这里移速的基础值是100)
这个乘0.00707很关键
按下3个时,相反的按键会抵消
这样,我们的玩家就可以在地图上移动了。
但是现在我们相机的位置还不会动,所以看起来和普通的移动没什么区别。
所以我们再在重复执行中加上这样两行代码:
加了之后好像有点不对劲?
!!!!!!!!!!!!!!
玩家他不动了!是不是出bug了?
其实是因为玩家和相机都在同一个位置,所以看起来玩家不动。
等下一期加入敌人之后,我们就可以看到玩家的移动啦。
<iframe
width="100%"
height="800px"
scrolling="no"
src="https://www.ccw.site/embed?id=yk1boy101/01&type=comment"
title="{第一课-玩家和大地图}"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
scrolling="0"
></iframe>