GMS常用脚本介绍(3&4&5)
刚发现介绍脚本的这最后的集合一直留在草稿里没发……抓紧发了orz
Wrap()
Wrap这个脚本是用来做什么的呢?先来看一下这个GIF图其实就是把传入的一个值约束在指定的范围内来回递增/减,并且钟摆循环。
代码正文
///@description Wrap(value,min,max)
///@function Wrap
///@param value
///@param min
///@param max
//returns the value wrapped
var _val = argument[0];
var _max = argument[1];
var _min = argument[2];
if(_val mod 1==0 )
{
while(_val > _max) || _val < _min)
{
if(_val > _max)
{
_val = _min + _val - _max -1 ;
}
else if (_val < _min)
{
_val = _max + _val - _min + 1 ;
}
else
_val = _val ;
}
return(_val);
}
else
{
var _old = argument[0] + 1 ;
while(_val != _old)
{
_old = _val ;
if (_val < _min)
_val = _max - (_min - _val) ;
else if(_val > _max)
_val = _min + (_val - _max) ;
else
_val = _val ;
}
return(_val);
}
JumpInDirection()
下面这个脚本其实很简单,就是在你指定跳跃的角度和距离后,即可让对象朝着指定的方向移动对应距离的脚本,而脚本中的那两句代码在HeartBeast的横版射击游戏教程中也有使用,就是把官方内置的方法"lengthdir_x"和"lengthdir_y"组合使用,这个脚本只是单纯简化了操作。
代码正文
/// @description JumpInDirection(length,direction)
/// @param length
/// @param direction
var len = argument0 ;
var dir = argument1;
x += lengthdir_x(len,dir);
y += lengthdir_y(len,dir);
Chance()
这个脚本更简单,只有一行,理论上来说也完全可以直接把代码写到需要实用的地方去,但是通过脚本可以使得可读性更强,这个脚本的目的是计算概率,下面举个例子
if Chance(0.7)
{
//写在这里的代码就有70%的概率被触发
}
在参数里只要填入0~1的小数即可直接设定触发代码的概率,从而实现触发概率的功能。而实现机制则异常简单,稍加思考应该就能明白:)
代码正文
return argument0 > random(1) ;
(转发自:原日志地址)