Godot脚本引擎入门-VisualScript(六)

第一步游戏人物的移动和动画

如何使用自定义变量
如何获取变量

  • 使用get来获取变量

如何设置变量

  • 使用set来设置变量

如何调用变量

  • 使用set或get来调用变量

如何使用自定义函数
如何限制移动的范围
如何控制人物的动画

首先我们在Scene下创建三个控件分别是Area2D,AnimatedSprite和一个CoooisionShpae2D对象,如图所示如图1-1

1-1

我们再创建两个内置的函数_process和_ready,以及一个自定义的变量为screensize。
在_ready函数中我们需要获取屏幕窗口的大小,并赋值给这个变量screensize。
首先我们在可变节点下搜索一个call方法,选择一个get_viewport_rect函数 ,然后调用它的size属性,并赋值给变量screensize 如图1-2所示

1-2

接下来我们要分别创建自定义变量和自定义的方法分别是:

#自定义变量
vector2 screensize = (0,0)
int speed = 400
vector2 Velocity = (0,0)
#自定义方法
move_direction  #控制人物移动
move_down       #向上
move_left       #向左
move_position   #移动位置
move_right      #向右
move_up         #向上
pos_clamp       #移动范围

如图1-3所示
1-3

我们在_process函数中设置变量velocity为(0,0),然后调用一个我们自定义的方法move_direction 如图1-4

1-4
在move_direciton函数中,我们又分别调用以下几个函数:
move_left
move_right
move_down
move_up
move_position
为了美观我们又使用了一个Sequence命令它是按从上到下的顺序来执行
如图1-5
1-5
move_left函数中判断用户按下左键,改变人物的速度
如图1-6
1-6
move_right函数中判断用户按下右建,改变人物的速度
如图1-7
1-7
在move_down
这里写图片描述
在move_up
这里写图片描述

move_position函数中,首先我们要判断一下人物的是否在移动,如果人物的速度大于0 ,我们就让它移动,并给它一个速度,然后再是否要播放动画。
具体操作如下:

  1. 首先我们获取一个变量使用一个get方法在可用节点下搜索,然后设置velocity变量,接下来调用一个call方法,并设置向量的长度,最后在搜索一个greater判断操作大于
    这里写图片描述
  2. 我们要设置velocity变量同理如上所示,要设者变量使用set方法,同理设置变量先要获取velocity变量,让他乘以一个速度,并赋值给velocity向量,如果为true,就赋值给他,并播放动画,否则就停止动画

这里写图片描述
3. 接下来我们在_process函数中就要让人物移动了,我们要设置人物的移动的位置,首先我们要获取人物移动速度,并乘以delta,得到就是每秒移动了多少距离,并赋值给我们Area2的position属性。
这里写图片描述
4. 现在我们的人物基本上可以移动了,但是我们要限制人物移动的范围,我们调用一个自定义的函数pos_clamp,在pos_clamp函数中,首先县判断x的坐标不能小于0,不能大于屏幕的宽度,y坐标不能小于屏幕的顶部,不嫩大于屏幕的底部 ,最后我们返回一个坐标 ,目的是为了改变人物的位置作准备。

这里写图片描述
5. 现在基本上已经完成了人物的所有动作,最后要更新一下人物的位置,我们在_process函数中,设置position属性。
这里写图片描述
最后运行一下效果试试。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/spctomp2017/article/details/80581760