--------------------------------2021.12.16 二次编辑--------------------------------------------------------------------
很头疼,最近在拿出来继续做的时候发现了一个问题,加了scroll to 的player移动的时候镜头也会跟着移动,这样导致我之后无法在窗口顶部显示角色的血量、金币等信息。找了好久的资料今天终于翻到了一个有帮助的教程,所以这里推翻重新做了一下。
---------------------------------------------------------------------------------------------------------------------------------
本人是杭州下沙某高校的大二生,学了几周Construct2,对于期末的大作业想开一篇日志记录一下我的制作过程,也欢迎大家一起参与讨论。
———————————————————————————————————————————
前期准备
我打算做一个简单的横板像素小游戏,主角是一只猫猫,为了得到稀有的金色小鱼干和肌肉狗们展开了激烈 的搏斗。
至于猫猫的形象我打算参考下面这张表情包来绘制:
(看起来很屑实际上真的很屑)
肌肉狗boss的形象:
——————————————————————————————————————————
接下来是前期的准备工作,本来是打算自己画背景啥的,然后发现自己真的太屑了,于是找到了一个好用的网站来做背景:https://www.pixilart.com/draw ,功能什么的真的很多,还能绘制gif,里面还有一些做好的素材可以直接用上去,挺不错的。
简单地做好了一个背景后,我们打开Construct2新建一个空项目,把做好的背景导入其中
如果不会导入素材的话可以在评论里留言(我很核善的)
导入之后如图:
特别提一下,这里layout的大小设置的是(1708,640),view的大小设置的是(1136,640),建议两者的高度最好一致,由于我第一次做的时候两者大小相差太大导致后来出了一系列问题。
接下来我们需要准备好我们的主角——屑猫
画好了
蛮像的23333
但是光光一张静态图最后出来的效果肯定不好,所以我们要给猫猫准备好走路以及跳跃的动作,后续如果有下蹲、射击的话也要配好相应的动作。
画好之后保存为“雪碧条”,方便设置为动画
玩家动画的导入
然后在Construct中新建一个图层,添加一个精灵,然后右键单击animation frame中的空白处,->import frames->from sprite strip,选中刚刚保存的“雪碧条”
然后如图输入9和1(你的雪碧条有几列几行就输入几乘几)
之后删除第0张图,然后关闭精灵就成功导入了。(需要注意所导入的素材都应该是png的透明底,不然就会有一个白底)
之后我们调整动画的速度,一般来说有几张图就输入几,然后loop那里先改为yes,之后如果有问题再调整
将玩家的图像进行裁剪,想要同时裁剪每一帧的话同时按住shift和crop
然后我们设置玩家的原点 ,右击origin,选择quick assign->bottom
继续右击origin,->Apply to whole animation,这样一来每一帧的原点都设置好了。
在animation中把defult改名为walk,代表这是走的动作,可以右击“walk”->preview来预览一下我们的动画
修改一下精灵的名字,让他叫player
玩家盒子
“Construct 2里有很多行为,行为使你的对象按照一种预置的方式运行,这样会省下很多时间。现在可以在事件系统里做很多行为,但通常会花很多时间。这就是为什么行为很容易上手并使你的游戏运行更快!
平台行为能兼顾一系列的动作。然而,有个重要的提示:行为要应用在不可见的长方形对象上,而玩家角色覆盖在这上边。如果行为的对象不是动画,那么它运行的会更好。改变动画帧会让对象部分粘在墙上,这会给行为造成混乱。而且,这避免了愚蠢的碰撞行为,比方说你的玩家角色用鼻子悬挂在平台边缘。”(引自Construct2官网教程)
所以我们需要把玩家放在一个“盒子”里,让盒子带着玩家一起去移动。创建一个精灵,绘制一个长方形,调整大小使它与玩家的大小相近,同样把原点设置在底部。并改名为playerbox
我们需要给玩家盒子添加行为让他可以行动。我们需要添加两个行为:platform(使玩家可以在平台中跳跃)和scroll to(让镜头始终跟随玩家)添加在playerbox中,然后我觉得应该是要让盒子“装着”玩家,所以在container里添加了player.
不能让盒子露出来,所以我们要把他设置为invisible
添加玩家盒子后可以发现玩家被挡住了看不见,我们可以在Z order中修改他们的顺序
鼠标和键盘
然后我们加入重要的鼠标和键盘,insert new object-> keyboard,insert new object-> mouse.
键盘就在鼠标旁边
之后我们添加事件:当D被按下时,玩家盒子向右移动
同样的,设置好另外三个键
测试了一下发现不行,我们好像只是在操控盒子而不是猫,添加事件,使系统的每一帧时玩家都在盒子上^-^
运行一下,发现玩家是“悬空”的,别急,我们微调一下它和地面的位置 。耐心点哦,慢慢尝试就可以了
动画镜像
然后我们发现玩家只有一个朝向,不需要画两个动画,只要我们镜像一下它就可以!当D按下时,玩家是向右走的,所以我们要镜像,而当A按下时,不需要镜像。
你可能会遇到一开始即使没有按下任何按键时角色就开始走路的情况,这可以通过player内的动画的图层顺序来改变,把stop移到walk的上方就可以了。
在我们没有做好下一个场景时,可以先给盒子添加一个不能出去的行为,这样就不会不小心跑出去回不来了。
如果想二段跳的话,可以在platform中把double jump改为enabled,这样就可以二段跳了^-^.
现在角色已经能够实现基本的走和跳了,但是为了更生动,我给他再准备跳跃的动作
动作还没画完,今天的日志就先更新到这里吧
——————————————————————————————————————————