下载以及自带语言的语法百度就有
贴一个网上发现的文字教程
学习入门,根据b站视频学着开发仿写pong
思路
Godot以场景和节点来组成项目的
所以我们来拆一下,
1.计分板可以是一个场景里面有双方的分数,可以写一些通用方法,比如积分增加减少的函数,双方计分板都是单独的节点
2.小球是一个场景,里面就一个球的图片,可以预留一些初始化球位置和记录球初始位置的函数
3.背景也拆出来一个场景,可以填充一些背景样式图片之类的,然后就是最主要的功能了,上下墙壁碰到回弹,左右墙壁碰到给对面记分数,四个墙壁是四个节点背景也是节点。中间那个虚线直接画图随便弄一个就行也用图片资源
4.双方可移动的挡板也拆成一个场景,同上
得分方式:左墙壁检测到球进入范围就给对方加分,并且给球重置到初始位置
1.创建球场景
1.1 场景创建
点击其他节点,选择使用area2D节点(常用来检测节点是否交互碰撞的节点),然后创建一个CollisionShape2D(用来圈定检测范围的节点),再创建一个Sprite2D节点(渲染2D图像或纹理的节点),名称可以双击节点修改,点击Sprite2D节点,右上属性第一个就是texture属性,可以把要渲染的图像直接拖入属性内,点击上方的2D切换过去,然后点击CollisionShape2D节点,点击右边属性列表的shape选择检测范围的形状,然后把球图片覆盖即可
1.2 准备球图片
因为背景我准备用黑色背景,所以就打开画图随便截个图当球来用,然后保存照片拖入这个里面就行了
1.3脚本编写
接下来就要创建这个场景脚本了,右键点击Area2D节点添加脚本,球的节点能做的就是移动,碰到左右墙壁回到初始位置,
所以我们在场景加载的时候记录当前的位置,然后创建一个重置的函数方便后面墙壁检测到球跟他相撞的时候来调用
2. 创建背景
2.1背景颜色大小调整
点击2D场景创建一个通用node节点,然后创建子节点,创建ColorRect节点当背景用(用于创建填充着单一颜色的矩形形状),然后在属性的Layout->Transform里面调整Size的x=1152 y=648 (这俩是窗体最大值,可以在项目->项目设置->显示->窗口里面调整)
2.2墙壁创建以及检测
2.2.1墙壁创建
右键node节点创建Area2D节点然后点击Area2D节点创建CollisionShape2D节点,然后点击CollisionShape2D节点,Shape属性选择矩形给这个背景的边覆盖,依次创建四个边的,下面是四个边的效果
2.2.2球体碰撞墙体检测
# 画面刷新一次回调一次 画面刷新通常以帧率(每秒帧数)来衡量
func _process(delta):
pass
# 物理引擎每次刷新回调一次 引擎刷新通常以固定的时间步长进行,以保持游戏的一致性,不受帧率的影响
func _physics_process(delta):
pass
左右墙壁碰撞检测创建,右键点击刚才创建Area2D墙体节点添加脚本,然后加一个内置的函数_physics_process,get_overlapping_areas方法是获取当前时间跟当前节点重叠节点,然后判断是否属于我们创建球定义的Ball分组,如果是那就说明球碰到左右墙壁了,调用球节点rest()函数初始化位置
上下墙壁碰撞检测。碰到墙壁x轴不用做改变,上墙壁给y轴减少下墙壁增加y轴
3.创建计分板。
3.1自动加载
因为球碰撞左右墙壁要加分数,然后在计分板展示,所以我们需要创建一个“全局变量”来用来记录。
项目->项目设置->自动加载,创建一个节点,这个节点脚本里面创建变量用来保存分数
3.2计分板创建
因为计分板就纯显示,创建一个普通2D节点即可,然后创建俩label节点,在给label创建个脚本用来展示全局变量里面的score1和score2
3.3积分增加
别忘了在左右墙壁检测那里加上分数计算
4.挡板
4.1挡板
点击加号,创建一个area2D根节点,然后在画图里面截图一个空白长条拿来当挡板用,然后创建一个CollisionShape2D节点用矩形包裹这个空白长条
然后给area2D节点新增脚本用来给挡板碰到球反弹回去,这个要改变x轴跟上下墙壁检测正好相反
4.2按键设置
挡板是可以上下移动的,所以我们要设置一下按键和按键移动挡板。
项目->项目设置->输入映射
在添加新动作内输入【玩家1上】点击添加,然后在刚添加的那条数据点击右边的加号会弹出来事件监听,按一下键盘的w然后确定即可,然后依次给玩家1和2的上下都添加进去
4.3按键使用
设置完按键后在脚本挡板脚本里面加入按键检测
5.最后一步
分别给玩家1 2的创建出来,然后在背景的场景内右键点击根节点->实例化子场景给球、记分板、挡板都添加进去,然后点击右上角的运行当前场景试试吧(F6)
6.导出
点击 项目->导出->添加->Windows Desktop,然后点击最下方的管理导出模板点击下载,下载完成即可导出为exe文件