欢迎光临散文网 会员登陆 & 注册

godot 像素平台游戏1 创建tile和character

2023-04-08 13:05 作者:damedown  | 我要投稿

视频位置

https://www.youtube.com/watch?v=f3WGFwCduY0&list=PL9FzW-m48fn1iR6WL4mjXtGi8P4TaPIAp&index=53&ab_channel=HeartBeast

资源位置

https://kenney.nl/assets/pixel-platformer


一、资源导入

    在游戏中,texture的大小并不一定和实际想显示的相关联,尤其是3D游戏普及后,图片基本上默认为线性采样,所以第一件事就是设置出像素显示的渲染参数。

    1、预设导入2D

    在godot的2D渲染管道,是没有vector3,全部使用vector2,所以选择2D,godot会默认为像素渲染,不会开启线性采样。

    把下载的资源packed的导入进去。

    

    2、设置viewport

    进入project settings

    打开专业设置

    把viewport设置为320*180

viewport是会在渲染管道默认渲染320*180的输出整列,超过的全部砍掉不渲染。和widow width不一样。

    3、随便创建一个tscn,取名教world

    给他创建一个node2D节点(空的没法保存)

    运行,得到一个超级小的窗口,4k显示器,这个platform窗口还没半个巴掌大。

    4、设置窗口大小,和拉升模式

    tips:stretch 拉升

    viewport顾名思义就是设置为2D输出。

    5、拖入tile-packed

    把图片拖入主窗口,会自动创建sprite2D,运行就可以看到像素模式的显示了。

    检测完成后,删除这个sprite2D。

    

    6、这里推荐5、1、2、3、4的顺序进行操作。

    先看完在操作,也就不会做一步忘一步。

二、创建tile

    1、创建一个staticbody,静态角色

    

    staticbody,表示他不会经常动,他的vertex顶点坐标,会被打包放到显存中的static_mem中,这也不代表他不能动,修改显存的时间成本很高。

    要创建动态它的子类有一个可动静态体

    因为显存中也有会偶尔修改显存的专属显存,这可以用来创建移动的平台。

    如果每帧都得改变vertex的话。就保存到rigidbody里面。

    详细情况去阅读opengl中buffer操作的细节。用不到半小时。

    

    2、给staticbody创建sprite和collsion

    其中staticbody会表示sprite的vertex不会经常变动,会放到基本不修改的显存的位置保存。

    collision会在物理碰撞中添加一个碰撞体。具体参考godot的开源代码,因为这玩意没有直接套用常用的2d碰撞体,而是自己改了改。

    实际上staticbody在编程上面之属于node的一个参数,godot把它设置为专门的node子类,更加直观,非常棒。

    3、给sprite2D设置为tile

        拖进去

    打开region

    

    打开grid snap 网格切割,每个网格间距为18*18,网格与网格之间的偏移为0,网格开始的偏移为0.


       打开scene的gird,设置为9*9,这样可以有吸附功能,非常的爽

        把collision设置为方形的

    适当调整下

    这里显示的碰撞是半透明的在上面,因为编辑器的渲染是先来在下面的模式

    如果看不到collisionshape,把它collisionshape放到sprite下面就好了。

    

    4、把scene保存了。

        5、把它拖到world试一试,ctrl+D就是创建副本,创建多个

    

    三、创建character

    character(扮演角色)

    1、创建character

    tips:collisionobject表示的是用来会产生碰撞的物体,并不代表他有碰撞的功能,这是godot的门槛,就好比“我心理特征是女性,但是我没有孕育生命的器官,而且也没有长一根棒子,你需要给我添加一个,如果不添加那我就不做了呗”。

    这里的character只是个名字,代表未来分配到哪里,就像刚刚上大学的大一新生一样,说的是清华大学,实际上还没有清华大学大四毕业生的能力,需要给配教授。

    2、加上animatedsprite和collision

    3、创建animation

    点一下,就会出一个ui

简单科普

        L1添加动画的

        L2动画播放控制

        L3,第一个为导入文件夹内的素材,比如拆封过的sprite,第二个为导入整体tile

        L4插入空白帧

        L5左右移动帧


        Idle是我已经改了名字的,翻译就是休息。

        4、导入素材

横着9个,竖着3个

选择3-1导入,可以多选。

    5、修改碰撞体

    sprite挡住了collision

    6、保存为player1,拖入world

    7、运行

    悬空的,因为没有重力。

    rigidbody是自带重力的,character不仅仅可以用到platform游戏。还会用在2D平面游戏,如果这时候有重力,会往下掉。

    

    四、给character加入重力

        1、创建脚本

    2、godot会自动给你写代码

    3、现在已经可以正常跳跃和移动了


总结:

    基本就是C语言写第一个游戏的引擎版本。简单快捷,非常好理解。

    如果要学godot,得先看一遍c语言写游戏,和了解opengl的基本概念。甚至不需要实际操作。

    是我非常推荐独立工作室,而且是高中生自学的游戏引擎。

godot 像素平台游戏1 创建tile和character的评论 (共 条)

分享到微博请遵守国家法律