吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 382|回复: 4
收起左侧

[学习记录] 使用Godot的一些心得

[复制链接]
suyihang15 发表于 2026-9-30 11:11
本帖最后由 suyihang15 于 2026-9-30 11:27 编辑

注:这差不多是本人正式接触的第一款游戏引擎,所以就只是说说自己的看法1、为什么选择Godot之前我也玩过unity,但是这款引擎是朋友推荐的,尝试了一下,发现确实还是比较好上手的,而且其本身是开源的,所以不用担心商业付费什么的。
2、使用

(1)首先,下载Godot,一般下载最新版就行然后创建一个新项目,看你自己看把文件创建在哪里(一般不推荐c盘),然后其他的默认选择好就行


创建好以后就是这个样子子

(2)我们先一步一步来看,介绍这是一个3D场景,一般我们是以2D开始,点击好中间的2D

这就是我们要操作的主界面,然后点击2D场景,我们就可以创建我们的第一个游戏场景了我们一般命名为First_Scene
(3)然后介绍一下各个板块
左上角:这个是我们用于创建场景和节点(节点按照我的理解就是,人身上的关节,分母和子节点,母节点的设置,会影响到子节点,这个是我们用于实现游戏一些动作活动的关键)
左下角:这个是我们的资产,我认为很方便的一点就是,我们可以通过拖动来直观的看到我们资产(就是美术啊和音效这类资产)
中间:这一板块就是我们启动游戏后可以看到的界面,当然要注意的是,他是有一个框线的,在这个框线里的才是玩家看到的东西,你可以设置多个场景来实现关卡的切换,或者通过代码来移动背景实现场景的切换,我能想到的就是这两种了
右边:当你选中你所放在这个场景里的资产,就可以对其大小位置,进行详细的拖动,当然我们也可以手动用鼠标操作,但是效果肯定没有调右边的参数好。

如图,当我把这个场景设置为第一场景以后,点击最右上角的启动图标以后就可以看到这个场景了。(4)代码编写好,当我们创建好这个场景以后,他是静止的一幅画,那么我们就要让他有一段运行逻辑就是代码让他动起来选择好这个角色,然后点击左上角的创建脚本文件,位置一般选择默认

点击以后,我们可以看到,其已经有了一些代码

好我们来一一解释extends Sprite2D  这个脚本是用来控制一张图片的,必须挂在图片节点上,你可以理解为开头必写吧#这个是注释,相信有点编程基础的都知道吧
func _函数(要调用函数就必须加上func _这个是和其他的编程的区别吧)

_ready() :图片刚出现在游戏里,只跑一次。

_pass :空的,结束吧_process(delta) :游戏运行时,不停重复跑(每秒几十次)。

delta :两次画面刷新间隔的时间,做移动要用。

当然这些都是基础,毕竟一些内置的基础函数还是要知道含义的然后一个技巧就是,我们可以直接通过拖动左上角上面的素材来实现控制该物体,就不用自己命名了,但是一般要先放在最上面
(5)介绍几个基础的功能吧
1、实现旋转
extends Sprite2D
@export var rotate_speed = 120.0
func _process(delta):
选择的物体的命名.rotation_degrees -= rotate_speed * delta很好理解吧
extends Sprite2D 脚本挂Sprite2D图片物体。
@export var rotate_speed = 120.0 导出变量,右边检查器面板可以直接改旋转速度,120就是每秒转120度。
func _process(delta):
每一帧循环运行选择的物体的命名.rotation_degrees -= rotate_speed * delta
rotation_degrees :物体旋转角度(角度制)
-= :逆时针向左转;改成 += 就是顺时针向右转 * delta :保证不管游戏帧率高低,旋转速度稳定。
2、左右移动
extends Sprite2D@export var move_speed = 250.0func _process(delta):
var dir_x = 0if Input.is_action_pressed(“move_left”):
dir_x = -1if Input.is_action_pressed(“move_right”):
dir_x = 1

选择的物体.position.x += dir_x * move_speed * delta

3、碰到界面边界回弹
extends CharacterBody2D
@export var move_speed = 250.0
@export var bounce_power = 180.0func _physics_process(delta):
var dir_x = 0
if Input.is_action_pressed(“move_left”):
dir_x = -1
if Input.is_action_pressed(“move_right”):
dir_x = 1velocity.x = dir_x * move_speed
if move_and_slide():
velocity.x = -velocity.x * bounce_power / move_speed
大致我想到的实现逻辑就是这样,还有上面是没有缩进的
当然你也可以自己设计,一套逻辑,反正能实我所说的功能就行。具体的实现代码看这个官方文档介绍 — Godot Engine (4.x) 简体中文文档当然,我认为如果你有一定的代码基础上手还是很快的,毕竟我感觉我自己还是能理解一些基础函数的,而且我并没有系统的去学过,实在不会可以试试ai编写代码,后续我再看一下,会介绍更多功能的基本上上面的三个语法就可以实现游戏的一些基础功能了。

注:因为论坛里这个文章编辑器确实有点难受,所以有的地方可能有点怪,后续再学着弄一下这个,反正看得懂我的逻辑就行,一个简单的逻辑就是,先定义速度为多少,然后选择好角色(就是对象),然后在x或者y上移动,还可以绑定按键的,上手还是比较轻松的,然后要做出动作效果就是if  x=0播放静止的动画else就放行走的动画,后续有时间会写一下,但是大致的逻辑我是这样写的。


发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

robyyang 发表于 2026-9-30 12:41
我上次学习的时候,让AI帮我出几个例子,我godot直接就能打开。有例子学习得更快了。并且可以让它由浅入深给你介绍,还挺好用的。
冥界3大法王 发表于 2026-10-9 20:42
@suyihang15 右侧的属性有一个机关开启之后才能显示中文(只开一个地方是不行的)
用了半个月才知道,还是有源码后AI告诉我的。
 楼主| suyihang15 发表于 2026-10-10 10:24
冥界3大法王 发表于 2026-10-9 20:42
@suyihang15 右侧的属性有一个机关开启之后才能显示中文(只开一个地方是不行的)
用了半个月才知道,还是 ...

哈哈,不过我觉得这个游戏yingqin3比其他的上手容易多了
昨夜东风 发表于 2026-10-12 14:26
最近在纠结 是cocos 还是 godot
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-10-15 11:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表