【2D横版游戏开发】godot+c#实现玩家的简单移动

前言

接下来教大家通过godot+c#实现玩家的简单移动,如下是操作示例

在这里插入图片描述

步骤

项目新建

首先新建一个项目,打开godot点击【新建】,然后修改游戏项目名称,点击创建,渲染器任意即可

在这里插入图片描述

创建背景

为演示方便,当前项目不需要引入任意素材,因此,为了方便观察玩家移动,我创建了一个背景

在这里插入图片描述

  • 要创建背景,首先我们新建一个node2d场景
    在这里插入图片描述
  • 右键点击添加子节点

在这里插入图片描述

  • 选择点击Sprite2D节点,创建
    在这里插入图片描述
  • 找到右边的检查器,选择里面的Texture,创建一个CanvasTexture画布纹理
  • 下方的VisibilityModulate可以更改画布颜色
    在这里插入图片描述
  • 鼠标滚轮可以放大游戏中心画面,就可以看到创建的画布,然后画面中心上方,有一排按钮,前面四个是最常用的

他们分别是
选择模式: 调整物体/场景大小
移动模式:移动物体/场景位置
旋转模式:旋转物体/场景方向
缩放模式:放大缩小物体/场景倍率

在这里插入图片描述

  • 我们选择选择模式变更画布大小

在这里插入图片描述

  • 按照同样的方式放几个小的画布,修改颜色,用于区别不同位置,可以更好观察玩家移动

玩家创建

要创建玩家,我们选择创建其他节点,然后选择CharacterBody2D节点,作为主节点,并且修改节点名称,并保存

在这里插入图片描述

在这里插入图片描述

  • 然后往里面添加两个子节点CollisionShape2DSprite2D

这两个节点中
CollisionShape2D:是2D碰撞节点,用于检测碰撞,是为了配合CharacterBody2D必要的,而它必要的是属性是检查器shape属性,该属性是碰撞形状,只有在碰撞形状内可以检测碰撞
Sprite2D:是2D的图形节点,可以展示物品/玩家的形象,必要属性是检查器Texture纹理属性,其中里面我们可以放置图片,为了展示玩家形象,我们创建项目有默认带一个图片

在这里插入图片描述

  • 然后我们把这个图片拖到玩家节点下的Sprite2DTexture就可以展示玩家形象了

在这里插入图片描述

  • 接下来是添加脚本,选择主节点,然后有一个书页的图标点击添加脚本,或者鼠标右键添加脚本

在这里插入图片描述

  • 然后我们选择

语言:C#
路径:修改玩家脚本名称为Player.cs

在这里插入图片描述

  • 为了可以控制玩家移动,我们点击上方【项目】-【项目设置】-【输入映射】

在这里插入图片描述

点击添加新动作输入操作名称,例如,我把向左移动命名成move_left输入名称之后,右边的添加会亮起,点击或回车添加。
然后下面会出现操作,右边有一个竖着的笔的图标,点击,然后输入按键,代表按什么按键我就会执行什么操作,如我的move_left输入A那么等代码书写完毕之后玩家操作之后会向左移动

  • 输入按键之后点击确认即可,注意,一个操作可以映射多个按键,如向左移动我可以按A之外,还能按左箭头按键
    在这里插入图片描述

新增GameInput.cs文件,注意这个文件脚本不要挂载在任何节点下,你可以在文件系统下新建Scripts文件夹,然后在这个文件夹下右键新建脚本即可创建.如下是具体代码

Player.cs

using Godot;
using System;
using static Godot.TextServer;

public partial class Player : CharacterBody2D
{
	public const float Speed = 300.0f;

	public override void _PhysicsProcess(double delta)
	{
        Vector2 direction = GameInputEvent.MovementInput();
        Velocity = direction * Speed;

        MoveAndSlide();
    }
}

GameInput.cs

using Godot;
using System;

public class GameInputEvent
{
    public static Vector2 direction;

    public static Vector2 MovementInput()
    {
        if (Input.IsActionPressed("move_left"))
        {
            direction = Vector2.Left;

        }
        else if (Input.IsActionPressed("move_right"))
        {
            direction = Vector2.Right;
        }
        else if (Input.IsActionPressed("move_down"))
        {
            direction = Vector2.Up;
        }
        else if (Input.IsActionPressed("move_up"))
        {
            direction = Vector2.Down;
        }
        else
        {
            direction = Vector2.Zero;
        }
        return direction;
    }
}

然后点击右上角有一个小锤子图标,进行编译,编译完之后,打开背景场景,将玩家场景拖进去。
点击这个图标右边的电影图标进行启动游戏
在这里插入图片描述

在这里插入图片描述

然后我们的游戏就运行起来了

在这里插入图片描述

结语

如上为godot+c#实现玩家的简单移动教学

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值