美文网首页收藏
Godot概览之快速创建一个项目

Godot概览之快速创建一个项目

作者: 孔浩 | 来源:发表于2022-04-07 20:11 被阅读0次

    Godot是一个非常强大的游戏引擎,特别是在2D游戏方面表现极为出色,另外该引擎还是全部开源和免费的,作为入门游戏开发,这是非常好的选择,这里将会推出一个系列教程帮助大家快速入门Godot引擎,这一讲先从简单的项目创建开始。

    一、如何打开Godot并且创建场景

    打开Godot,建议将语言修改为en,在Godot中所有的场景和角色都是Scene,进入之后Godot,创建第一个Scene,并且选择2D场景,保存为Main文件。


    创建主场景

    保存成功之后,将节点名称也修改为Main


    修改main节点名称
    res://中会显示项目中的所有文件,建议创建两个文件夹assets和scene,前者用来存储相应的图片资源,后者用来存储所有的角色和代码
    创建两个资源文件夹

    如果希望打开资源文件夹所在的路径,可以右键单击res中的文件夹,选择Open in File Manager即可


    打开资源文件夹

    二、如何创建一个角色

    在res文件夹中选择scene文件夹,右键选择new scene,之后选择Other Node,之后添加一个Sprite,Sprite可以设置材质,材质也就相当于图片。保存这个scene,取名为Player.tscn,之后将Node的名称也改为Player,接着将assets中的图片拖入到Texture(材质)中,此时就会显示相应的图片,图片在原点,Godot的坐标系向下y递增,和普通坐标系不一样。


    创建一个新的角色

    选择回到Main场景,保存之后,将Player.tscn文件拖入到Main场景中。之后将main场景设置为默认场景,点击右上角的运行图标即可运行。


    设置main为主场景
    到此为止一个简单的godot的场景就算搭建完成了。下一步需要加入代码让角色动起来。

    三、加入简单的代码

    可以在所有的节点上添加代码,如果在Player角色中添加,所有的Player角色都可以执行这些代码

    • 在player中添加脚本。
      选中Player这个scene,之后选中节点,点击添加脚本的图标添加脚本


      为Player添加代码

      在学习初期,代码模块先选择为Empty,这样代码看起来简单一些,接下来编写一些简单的代码

    extends Sprite
    
    func _ready():
        print("player ok")
    

    _ready是节点加载完成之后要执行的方法,_ready方法仅仅只会执行一次,之后运行程序就会发现输出了player ok的代码。如果代码是编写在Player角色中的话,将角色加入到scene中,每个角色都会执行这个代码。

    四、加入更多有趣的代码

    进入Player的代码中,可以通过顶部菜单快速进入。

    加入更多代码
    _ready()方法只会执行一次,_process(delta)方法会反复的执行,先来学习如何进行旋转。要理解旋转,需要了解弧度的概念。弧度是角度的另外一种表示方式,由于它的计算简单,在计算机中通常喜欢使用弧度来替换角度,弧度a和角度b的关系,a = (PI/180) * b角度360°相当于弧度的2*PI,角度90°相当于PI/2。在_process中加入让角色旋转的代码
    func _process(delta):
        self.rotation += PI #每一次旋转弧度PI,相当于180°
    

    我们会发现旋转得非常的快,而且不同的电脑由于cpu的性能不一致,旋转也是不一样的,假设两帧之间的间隔是1秒,那么就会一秒旋转180°,加入两帧之间的间隔是0.5秒,那就意味着一秒旋转2*180°。如何能够统一呢?
    如果让旋转的角度同时乘以两帧之间的间隔是不是就能统一起来了。而函数_process(delta)中的delta参数就是两帧之间的间隔。所以改造一下程序

    func _process(delta):
        self.rotation += PI * delta #每一次旋转弧度PI,相当于180°
    

    五、键盘控制

    下面我们添加一个新角色,让键盘可以控制其进行移动,第一步将图片资源添加到assets文件夹中,之后创建一个新的Scene,选择Other Node,还是选择Sprite,保存为Tank,将Tank的图片拖入到材质中,为Tank添加GD代码。


    添加Tank角色

    在外部创建一个变量speed存储坦克的移动速度,之后再process方法中添加键盘控制代码

    extends Sprite
    
    var speed = 200 #移动速度为200
    
    func _process(delta):
        if Input.is_action_pressed("ui_left"):
            #表示向左移动
            position.x -= speed*delta
        if Input.is_action_pressed("ui_right"):
            #向右移动
            position.x += speed*delta
        if Input.is_action_pressed("ui_up"):
            #向上移动
            position.y -= speed*delta
        if Input.is_action_pressed("ui_down"):
            #向下移动
            position.y += speed*delta
    

    将Tank添加到main场景中,运行发现tank已经可以通过键盘控制了,如果希望通过wasd键来控制该怎么办呢?

    选择project->project setting之后在InputMap中添加ui键的对应,我们发现不仅可以添加键盘上的其他键,还可以添加游戏手柄的按键。


    修改键盘的控制按键

    到此为止,键盘的控制也就完成了,这一部分的内容讲解了如何完成一个Godot项目的创建。下一篇将会讲解如何完成角色之间的交互。

    相关文章

      网友评论

        本文标题:Godot概览之快速创建一个项目

        本文链接:https://www.haomeiwen.com/subject/ktussrtx.html