godot+c#实现玩家的简单移动
前言
接下来教大家通过godot+c#实现玩家的简单移动,如下是操作示例
玩家移动
步骤
项目新建
首先新建一个项目,打开godot点击【新建】,然后修改游戏项目名称,点击创建,渲染器任意即可
创建背景
为演示方便,当前项目不需要引入任意素材,因此,为了方便观察玩家移动,我创建了一个背景
- 要创建背景,首先我们新建一个
node2d场景
右键
点击添加子节点
- 选择点击
Sprite2D
节点,创建
- 找到右边的
检查器
,选择里面的Texture
,创建一个CanvasTexture
画布纹理 - 下方的
Visibility
的Modulate
可以更改画布颜色
鼠标滚轮
可以放大游戏中心画面,就可以看到创建的画布,然后画面中心上方,有一排按钮,前面四个是最常用的
他们分别是
选择模式
: 调整物体/场景大小
移动模式
:移动物体/场景位置
旋转模式
:旋转物体/场景方向
缩放模式
:放大缩小物体/场景倍率
- 我们选择
选择模式
变更画布大小
- 按照同样的方式放几个小的画布,修改颜色,用于区别不同位置,可以更好观察玩家移动
玩家创建
要创建玩家,我们选择创建
其他节点
,然后选择CharacterBody2D
节点,作为主节点,并且修改节点名称,并保存
- 然后往里面添加两个子节点
CollisionShape2D
和Sprite2D
这两个节点中
CollisionShape2D
:是2D碰撞节点,用于检测碰撞,是为了配合CharacterBody2D
必要的,而它必要的是属性是检查器
的shape
属性,该属性是碰撞形状,只有在碰撞形状内可以检测碰撞
Sprite2D
:是2D的图形节点,可以展示物品/玩家的形象,必要属性是检查器
的Texture
纹理属性,其中里面我们可以放置图片,为了展示玩家形象,我们创建项目有默认带一个图片
- 然后我们把这个图片拖到玩家节点下的
Sprite2D
的Texture
就可以展示玩家形象了
- 接下来是添加脚本,选择主节点,然后有一个书页的图标点击添加脚本,或者
鼠标右键
添加脚本
- 然后我们选择
语言
: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#实现玩家的简单移动教学