ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:27.97KB ,
资源ID:6348160      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6348160.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(gamemaker函数中文帮助.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

gamemaker函数中文帮助.docx

1、gamemaker函数中文帮助常数 true等同于1. false等同于 0. pi等同于 3.1415. 实数函数 random(x)返回一个随机的实数,范围从 0 到 x 。数值总小于 x 。 choose(val1,val2,val3,.)随机返回其中一个参数。最多可以有16个参数。 abs(x)返回 x 的绝对值。 sign(x)返回 x 的符号(-1,0,或1)。 round(x)返回与 x 最接近的整数。 floor(x)返回比 x 小的最大整数。 ceil(x)返回比 x 大的最小整数。 frac(x)返回 x 的小数点以后的部分。 sqrt(x)返回 x 的开方。 x 不能是负

2、数。 sqr(x)返回 x 的平方。 power(x,n)返回 x 的 n 次方。 exp(x)返回 x 的冥方指数 e 。 ln(x)返回 x 的自然对数。 log2(x)返回 x 的2的对数。 log10(x)返回 x 的10的对数。 logn(n,x)返回 x 的 n 的对数。 sin(x)返回 x 的正弦(x 单位为弧度)。 cos(x)返回 x 的余弦(x 单位为弧度)。 tan(x)返回 x 的正切(x 单位为弧度)。 arcsin(x)返回 x 的反正弦。 arccos(x)返回 x 的反余弦。 arctan(x)返回 x 的反正切。 arctan2(y,x)计算 arctan(

3、 y / x ) ,然后返回结果在正确象限内的角度值。 degtorad(x)转换角度到弧度。 radtodeg(x)转换弧度到角度。 min(val1,val2,val3,.)返回参数中的最小值。最高支持16个参数。必须全部是实数或全部是字符串。 max(val1,val2,val3,.)返回参数中的最大值。最高支持16个参数。必须全部是实数或全部是字符串。 mean(val1,val2,val3,.)返回所有参数的平均值。最高支持16个参数。必须全部是实数数值。 median(val1,val2,val3,.)返回参数的中间数(如果参数数目为偶数,则两个中间数中最小的那个作为返回值)。最高

4、支持16个参数。必须全部是实数数值 point_distance(x1,y1,x2,y2)返回位置1(x1,y1)到位置2(x2,y2)的距离。 point_direction(x1,y1,x2,y2)返回从位置1(x1,y1)到位置2(x2,y2)的方向角度。lengthdir_x(len,dir)返回指定长度及方向的矢量线在 x 轴上的投影长度。 lengthdir_y(len,dir)返回指定长度及方向的矢量线在 y 轴上的投影长度。 is_real(x)返回 x 是否为真实数值(否则就是字符串)。 is_string(x)返回 x 是否是一个字符串(否则就是一个真实数值)。 字符串处理

5、函数 chr(val)返回字符串中包含参数指定的 ASCII码字符的字符串。 ord(str)返回字符串中第一个字符的 ASCII 码。 real(str)将字符串转换为真实数值。字符串可包含负号,小数点甚至是指数部分。string(val)将真实数值转换为标准格式的字符串(整数时没有小数点位置,否则在小数点后留两位)。 string_format(val,tot,dec)将 val 以你自己的格式转换为字符串:tot 指定总的数字位置,dec 指定小数点后有几位数字。 string_length(str)返回字符串中字符的个数。 string_pos(substr,str)返回字符串 sub

6、str 在字符串 str 中的位置(0 代表完全不符)。 string_copy(str,index,count)返回字符串 str 的一部分,从 index 指定的位置开始,长度为 count 。 string_char_at(str,index)返回字符串 str 中索引为 index 的字符。 string_delete(str,index,count)返回删除了部分内容的字符串 str,从 index 开始,长度为 count 。 string_insert(substr,str,index)返回在位置 index 处添加子串 substr 后的字符串str。 string_repla

7、ce(str,substr,newstr)返回字符串 str 的一份拷贝,为字符串中子串substr 第一次出现的地方开始被字符串 newstr 替换后的内容。 string_replace_all(str,substr,newstr)返回字符串 str 的一份拷贝,为字符串中子串 substr 所有出现的地方开始被字符串 newstr 替换后的内容。 string_count(substr,str)返回子串 substr 在字符串 str中出现的次数。 string_lower(str)返回小写格式的字符串 str。 string_upper(str)返回大写格式的字符串 str。 stri

8、ng_repeat(str,count)返回由 count 个字符串 str 组成的新字符串 str。 string_letters(str)返回只包含字母的字符串 str。 string_digits(str)返回只包含数字的字符串 str。 string_lettersdigits(str)返回包含字母和数字的字符串 str。 以下为处理系统粘贴板内容的相关函数。 clipboard_has_text()返回粘贴板中是否存在任何文本。 clipboard_get_text()返回当前粘贴板内文本内容。 clipboard_set_text(str)将字符串 str 送入粘贴板。 日期及时间

9、处理 在Game Maker中有许多函数是专门处理日期和时间的。一个日期-时间格式是一组实数。整数部分代表日期,最早到12/30/1899。小数点后的部分代表一天之中的24小时。现有有以下函数 : date_current_datetime()返回当前系统日期-时间。 date_current_date()返回当前系统日期(不包括时间)。 date_current_time()返回当前系统时间(不包括日期)。 date_create_datetime(year,month,day,hour,minute,second)建立一个指定的日期-时间数据。 date_create_date(year,

10、month,day)建立一个指定的日期数据。 date_create_time(hour,minute,second)建立一个指定的时间数据。 date_valid_datetime(year,month,day,hour,minute,second)返回给定的日期-时间是否正确。 date_valid_date(year,month,day)返回给定的日期是否正确。 date_valid_time(hour,minute,second)返回给定的时间是否正确。 date_inc_year(date,amount)返回指定日期后 amount 年的新日期。amount 必须为整数date_in

11、c_month(date,amount)返回指定日期后 amount 月的新日期。amount 必须为整数。 date_inc_week(date,amount)返回指定日期后 amount 星期的新日期。amount 必须为整数 date_inc_day(date,amount)返回指定日期后 amount 天的新日期。amount 必须为整数。date_inc_hour(date,amount)返回指定日期后 amount 小时的新日期。amount 必须为整数。 date_inc_minute(date,amount)返回指定日期后 amount 分钟的新日期。 amount 必须为整数

12、。 date_inc_second(date,amount)返回指定日期后 amount 秒的新日期。amount 必须为整数。 date_get_year(date)返回 date 对应的年份。 date_get_month(date)返回 date 对应的月份。 date_get_week(date)返回 date 对应的星期。 date_get_day(date)返回 date 对应的天数。 date_get_hour(date)返回 date 对应的小时。 date_get_minute(date)返回 date 对应的分钟。 date_get_second(date)返回 date

13、对应的秒。 date_get_weekday(date)返回 date 对应一星期的哪一天。 date_get_day_of_year(date)返回 date 对应一年中的哪一天。 date_get_hour_of_year(date)返回 date 对应一年中的哪一小时。 date_get_minute_of_year(date)返回 date 对应一年中的哪一分钟。 date_get_second_of_year(date)返回 date 对应一年中的哪一秒。 date_year_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少年。此函数只报告年数

14、片断。 date_month_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少月。此函数只报告月份片断。 date_week_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少星期。此函数只报告星期片断。 date_day_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少天。此函数只报告天数片断。 date_hour_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少小时。此函数只报告小时片断。 date_minute_span(date1

15、,date2)返回两个日期 date1 和 date2 之间相隔多少分钟。此函数只报告分钟片断。 date_second_span(date1,date2)返回两个日期 date1 和 date2 之间相隔多少秒。此函数只报告秒数片断。 date_compare_datetime(date1,date2)比较两个日期时间的大小,返回-1,0,1,分别代表前者小于,等于,大于后者。 date_compare_date(date1,date2)比较两个日期的大小,返回-1,0,1,分别代表前者小于,等于,大于后者。 date_compare_time(date1,date2)比较两个时间的大小,返

16、回-1,0,1,分别代表前者小于,等于,大于后者。 date_date_of(date)返回指定日期-时间数据的日期部分,时间部分设定成0。 date_time_of(date)返回指定日期-时间数据的时间部分,日期部分设定成0。 date_datetime_string(date)按照给定的数据,返回系统默认的字符串格式日期-时间。date_date_string(date)按照给定的数据,返回系统默认的字符串格式日期。 date_time_string(date)按照给定的数据,返回系统默认的字符串格式时间。 date_days_in_month(date)返回指定日期-时间所在月份的天数

17、。 date_days_in_year(date)返回指定日期-时间所在年份的天数。 date_leap_year(date)返回指定日期-时间所在年份是否为闰年。 date_is_today(date)返回指定日期-时间是否为今天。 移动 很明显,游戏的一个重要方面就是对象实例的四处移动。每个实例拥有两个内建的变量 x 和y 用来指出实例的位置。(更精确的说,它们显示的位置是精灵原点摆放的位置。)( 0 , 0 )的位置在房间的最左上角。你可以通过改变实例 x 和 y 变量的值来改变实例的位置。你如果想要对象进行复杂运动,这是个可行的方法。把有关的代码放在对象的并行( step )事件里。

18、如果对象以固定方向及恒速移动,实现起来就很简单。每个对象实例都有一个水平速度( hspeed )和一个垂直速度( vspeed )。两个速度都是以像素每步( pixels per step )为单位。一个正的水平速度就是向右的运动,负的水平速度意味着向左的运动。正的垂直速度是向下,负的垂直速度是向上。所以你必须给这些变量初始化(比如在创建事件里)使对象实例有一个恒速。 自定义运动的方法和之前不同,使用了方向( direction )( 0-359 度),和速度( speed ) (必须是非负数)。你可以设定并读取这些变量来自定义一个任意运动。(内部处理实际上是把值转换成 hspeed 和 vs

19、peed 。)当然还有阻力( friction )和重力( gravity )和重力方向( gravity dirction )供你使用。最后要说的是函数 motion_add(dir,speed) 用来给现有对象增加速度。 完整来说,每个实例由以下变量和函数来处理它们的位置和运动 : x对象的 x 坐标 . y对象的 y 坐标 . xprevious对象以前的 x 坐标 . yprevious对象以前的 y 坐标 . xstart对象在房间里的初始 x 坐标 . ystart对象在房间里的初始 y 坐标 . hspeed速度的水平部分,即水平速度 . vspeed速度的垂直部分,即垂直速度

20、. direction对象当前方向( 0-360 度,逆时针, 0 = 朝右) . speed对象当前速度(像素每步) . friction当前阻力(像素每步) . gravity当前重力(像素每步) . gravity_direction重力方向( 270 朝下) . motion_set(dir,speed)以参数(方向,速度)设定运动 . motion_add(dir,speed)以参数(方向,速度)对当前运动做改变 . 这儿有大量可利用的函数帮助你定义你的运动 : place_free(x,y)返回实例在( x , y )位置是否与固体实例碰撞的值。这个函数用来在实际移动到新位置前检测

21、。 place_empty(x,y)返回实例在( x , y )位置是否与任何东西碰撞的值。所以这个函数还把非固体实例加入计算范围。 place_meeting(x,y,obj)返回实例在( x , y )位置是否与对象( obj )碰撞的值。与 obj 对象的实例遇到时,函数返回真( true )。也可以用实例名做 obj 参数,实例名都意味着是对象的一个实例。 place_snapped(hsnap,vsnap)返回实例是否与网格对齐的值。 /hsnap 水平网格, vsnap 垂直网格 move_random(hsnap,vsnap)移动实例到一个随机空闲并且是网格的位置,和其对应的动作

22、效果一样。 move_snap(hsnap,vsnap)将实例对齐网格,和其对应的动作效果一样。 move_wrap(hor,vert,margin)离开房间到另一边时卷动实例。参数 hor 为是否水平卷动( 1 或 0 )参数 vert 为是否垂直卷动( 1 或 0 )。参数 margin 为卷动前离原点多远时实例必须离开房间。等于围绕房间的一圈留白。这个函数在离开事件( outside event )中使用非常具有代表性。 move_towards_point(x,y,sp)以速度( sp )朝( x , y )位置移动实例。 move_bounce_solid(adv)遇到固体实例反弹,

23、和其对应的动作效果一样。参数 adv ( 1 或0 )为是否使用高级反弹,高级反弹将倾斜面加入计算范围。 move_bounce_all(adv)遇到所有实例反弹,不单单对固体反弹。 move_contact_solid(dir,maxdist)朝某方向移动实例直到接触固体对象。如果在当前位置没有碰撞,实例在碰撞发生前将不停的移动。如果当前位置已经发生碰撞了,实例就不再移动。你可以指定移动的最大速(距离未定时可以使用负数) /dir 设定方向, maxdist 设定速度 move_contact_all(dir,maxdist)和上一个函数类似,不过这次接触到任何对象时都会停止,不单是固体对象

24、。 move_outside_solid(dir,maxdist)朝某方向移动实例直到离开固体对象。如果在当前位 置没有碰撞,实例不移动。你可以指定移动的最大速(距离未定时可以使用负数) / 用于分开重叠的实例 move_outside_all(dir,maxdist)和上一个函数类似,不过这次是离开任何对象时都会停止,不单是固体对象。 distance_to_point(x,y)返回当前实例的碰撞盒离( x , y )的距离。 distance_to_object(obj)返回实例离最近的对象( obj )的距离。 position_empty(x,y)返回在( x , y )位置是否有任何

25、实例的布尔值。 position_meeting(x,y,obj)返回( x , y )位置是否有实例 obj 的布尔值。参数 obj 可以是对象,实例名,或是其他关键字等等 路径 在 GameMaker 里你可以定义路径并且命令实例跟随路径。尽管你可以使用动作库,变量和函数可以使你更灵活的运用 : path_start(path,speed,endaction,absolute)为当前实例开始一段路径。参数 path 是你想开始的路径名。参数 speed 是跟随路径的速度。负的 speed 意味着实例沿着路径往回移动。参数 edaction 是设定当实例到达路径的终点时发生的事件。有以下几个

26、值可供使用 : 0: 停止路径 1: 从开始点继续(如果路径没有闭合,直接跳到开始点) 2: 从当前点继续 3: 反转路径,改变速度的符号 参数 absolute 应该是 true 或是 false ( 1 或 0 )。设为 true 时和路径是绝对的关系( absolute )。设为 false 时路径和实例的当前位置是相关的关系( relative )为了更精确地设定,如果 speed 是正的,当前位置就是路径的开始点,路径沿着当前位置而行。 speed 为负值时,当前位置就是路径的终点,路径沿着当前位置往后移动。 path_end()当前实例结束跟随路径。 path_index*当前实例

27、跟随路径的索引。你不可以直接改变它,必须使用上面的函数。 path_position当前路径的位置。值为 0 时在路径的开始位置。值为 1 时在路径的结束位置。值必须在 0 到 1 之间。 path_positionprevious当前路径的前一个位置。可以使用碰撞事件( collision events )里的例子来设置在路径上位置使它回到前一个位置。 path_speed设置跟随路径的速度(像素每步)。负值时向后移动。 path_orientation路径处理时的方位(逆时针)设定。值 0 时为正常方向。 path_scale缩放路径。增加值使路径变大。 1 是默认值。 path_enda

28、ction路径结束时必须执行的行为。可以使用最上面的函数介绍的值。 运动设计 运动设计帮助你在避免与另一实例(比如:墙)碰撞的情况下将某实例从给定位置移动到另一位置。运动设计是一个有难度的项目。几乎不可能给出一些能够在任何情况下正常运作的普通函数。同时,计算碰撞运动非常耗费系统资源。所以使用这些函数时必须非常小心仔细。当你使用以下任一函数时请将这些建议记到心里。 Game Maker 提供了一些不同形式的运动计划。最简单的形式允许一个实例朝某特定目标方向步进,可能的话尽量走直线但是如果有要求的话可以取不同的方向。这些函数应当在实例的并行事件 (step event) 中使用。对应的运动计划动作

29、库也是可用的 : mp_linear_step(x,y,stepsize,checkall)这个函数作用为让实例朝指定位置( x , y )直线步进。每一步的大小由参数 stepsize 设置。如果实例已经到位,实例不再移动。如果参数 checkall 为 true ( 1 ),实例遇到任意对象的实例都不会停止。如果为 false ( 0 ),实例碰撞到另一固体实例时就会停止。注意这个函数遇到障碍时不会试着绕路。它只会简单的停止。函数返回值为是否到达目标位置。 mp_linear_step_object(x,y,stepsize,obj)除了参数 obj 实例为障碍,其他效果同上。参数 obj

30、 可以是对象或是实例名。 mp_potential_step(x,y,stepsize,checkall)和先前的函数类似,这个函数也是让实例朝指定位置步进。不同处是这个函数会试着绕过障碍物。当实例快撞上某一固体实例(或任何实例, checkall 为 true 时)时,会改变运动方向来避开实例并且绕开它。这个方法不能保证有效,但是在大部分简单应用中会非常有效的让实例朝目标移动。函数返回值为是否到达目标位置。 mp_potential_step_object(x,y,stepsize,obj)除了参数 obj 实例为障碍物,其他效果同上。参数 obj 可以是对象或是实例名。 mp_potent

31、ial_settings(maxrot,rotstep,ahead,onspot)先前的函数利用的一些参数可 以使用这个函数改变。以下方法都有全局性。首先试着朝目标直线移动。可以使用参数 ahead (默认值为 3 )设置前面有多少步。减少这个值意味着实例将在延后开始改变方向。增加这个值意味着提前开始改变方向。如果检测到将要碰撞,实例会开始朝向最佳方向,偏右或是偏左。根据参数 rotstep (默认值为 10 )的大小决定在多少步中改变朝向。减少 rotstep 的值会使得实例有更多移动的可能性但速度也会更慢。参数 maxrot 解释起来有一点难度。实例有一个当前方向。参数 maxrot (默

32、认值为 30 )为在一步里面允许改变当前方向的最大值。所以说即使实例可以直线移动到目标,只要不超过改变方向的最大值,它就会这样执行。如果你把 maxrot 设得很大,实例就可以在每一步都改变很多方向。这样可以使它更简单的寻找一段短路径,但同时整个路径会变得非常丑陋(路线歪七歪八的)。如果把值设得很小,路线就会很平滑但同时它可能会绕很远的路费很多时间(有时候甚至找不到到目标的路)。没有创建步时,实例的行为会建立在参数 onspot 上。如果 onspot 值为 true (或1 ,为默认值),实例会根据 maxrot 的大小在自己的位置上旋转。如果值为 false (或 0 )实例就不再移动。如果实例为车辆时,设为 false 比较好,但同时会减少寻路成功的机会。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1