gamemaker函数中文帮助
- 格式:doc
- 大小:262.00 KB
- 文档页数:53
Game Maker 教学创建迷宫游戏作者:Mark Overmars版权所有2007 YoYo Games Ltd迷宫游戏是非常流行的游戏类型,用GM可以非常简单的创建该类游戏。
该教程将一步步的介绍如何创建该类游戏。
首先,我们将创建一个最简单的可运行的游戏,然后,将使我们的游戏更具扩展性更具吸引力。
在教程的Example文件夹中提供了游戏中的源程序,制作游戏中用到资源也都在Resources文件夹中给予了提供。
游戏策划在游戏制作之前,我们应该想像一下,我们的游戏应该是什么样子的。
这是游戏设计中最重要,有时也是最困难的一步。
一个好的游戏应该是令人兴奋的、令人惊叹的以及令人上瘾的。
游戏应该为玩家设定清晰的目标,而用户界面也应该是很直观的。
我们将要制作一个迷宫游戏,每一个房间包含一个迷宫。
为了从迷宫中逃脱,玩家必须收集齐所有的钻石,然后到达出口。
为了完成这一目标,玩家需要解决一系列的智力问题,并且要避开怪物。
在这个游戏中,我们可以创建很多种类型的智力问题,例如:必须被放进石头的坑、能用炸弹破坏的墙壁等等。
另外,很重要的一点是:千万不要在第一个房间中就把游戏的所有要素全部展现出来。
一步步的显示新的东西和怪物,将会使游戏更加有趣。
所以,游戏的主要目标是玩家所控制的角色。
游戏中有墙(也可以是不同的类型的东西,这样可以使游戏看起来更吸引人)、需要收集的钻石、还有那些躺在地上不动,被玩家捡起或者被碰触的东西。
另外房间中还需要有一些特殊的东西,此外还要有那些自己走来走去的怪物。
下面就让我们一个一个来处理这些东西吧。
一个简单的开端首先,我们先不考虑游戏中的钻石。
我们将创建这样一个玩家到达出口的游戏。
在这个游戏中有三个实例:玩家、墙和出口。
所以,我们需要为它们准备三个精灵和三个对象。
你可以在教程的Example文件夹里找到第一个最简单的游戏:maze_1.gmk,打开游戏源程序,试着运行它。
游戏中的对象首先,让我们来创建对象。
常数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 不能是负数。
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( 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,...)返回参数的中间数(如果参数数目为偶数,则两个中间数中最小的那个作为返回值)。
高级混合模式运行原理混合模式相信大家都使用过bm_add,bm_normal这种经典混合方式,而高级混合模式draw_set_blend_mode_ext对于一个刚接触的人来说是一个十分抽象的概念,不过一旦你了解他,你会发现他是相当简单的,你甚至可以制作自己特定的混合模式,来达到更高的游戏效果,所以这是进阶游戏制作必备的知识,希望大家和之前一样,一定要掌握~高级混合模式的例子实际上不少,不过这个函数不同,从游戏例子里基本不能完全看明白他是怎么工作的,而且最重要的是,在gm自带的help里,几乎对使用细节完全没有任何描述,以下我们就来解析一下这个函数(文中公式图载自gmlscripts,如果有其他疑问,这里也是个不错的去处哦)在高级混合模式和普通不同,他拥有2个参数,第一个你在混合模式下正在使用的绘制命令绘制出的图形(如draw_sprite),而第二个则是在你现在所绘制图形之前原本就拥有的图形,如表面,游戏背景或者是在使用混合模式之前同样坐标下绘制的精灵……等等,并且混合的时候,通道RGB颜色值并不是0~255来表示,而是0~1哦(也就是颜色所占的分量)。
在中文帮助里说过这样一句话(这里不去管帮助里翻译是否通顺,你能理解就行)“正常的混色模式设置源地混合bm_src_alpha和目的地混合bm_inv_src_alpha”。
意思则为:利用这组函数组成的GML:draw_set_blend_mode_ext(bm_src_alpha, bm_inv_src_alpha);你所得到的结果,就和普通并没使用任何混合模式的结果一模一样,这时,我们就从这里入手,首先来理解一下所使用的这2个参数:bm_src_alpha: 混合因素是(As, As, As, As).bm_inv_src_alpha: 混合因素是(1–As, 1–As, 1–As, 1–As).这句话听起来相当抽象,来详细说明一下吧(尽量理解):我们以一个像素为单位,来解析每个图片,每一个像素所经历的混合过程:bm_src_alpha如上所写,混合因素是4个As,这4个As的参数分别代表的是( R , G , B , A )即图像的红、绿、蓝、通道,现在使用了bm_src_alpha,意义就为将在这4个参数上,分别都乘以一个As,As在这里是什么意思呢,即是在你正在绘制的图形的alpha值,所以乘以As以后,那么就变为了( R * As , G * As , B * As , A * As )。
一、GML语言概述Game Maker内置一款编程语言。
让你在标准动作之外取得更多的自由度和操纵力。
那个语言咱们简称它为GML (Game Maker Language)。
你能够在很多地址用那个语言编写代码。
第一,当你概念脚本的时候。
脚本确实是一份GML程序。
第二,当你在一个事件中添加新动作时。
在编写代码动作时你也一样能够利用GML。
第三,若是你想在一个动作中利用指定的一个值,你一样能够利用GML来表达。
一段语句如下所说,并非是完整的程序,只是计算出结果的一段代码。
在本章中咱们将向你描述GML的大体概念。
当你希望学习利用GML时,那个地址有一些东西你需要留意。
第一,你的所有资源(精灵、对象、声音、等等)你必需利用一个以字母开头,全数由字母、数字或下划线组成的名称。
不然的话你将无法在程序中正确的挪用他们。
确保所有资源都有不同的名字。
同时也要注意不要将资源取名为self、global或其他保留字,因为这些字符在GML中有特殊含义(具体有哪些保留字将在后面详细论述).GML的相关信息能够在以下页面找到:一个程序变量赋值表达式扩展变量在其他实例中概念变量数组If 语句Repeat 语句While语句Do语句For语句Switch语句Break语句Continue语句Exit语句函数脚本With结构注释GML中的函数和变量一个程序一个程序包括一套完整的指令,称为语句。
一个程序必需以'{ '开头,以'} '结尾。
之间是语句文本。
每行语句必需以';'分号结尾。
因此语句的通常形式应该是如此的:{<statement>;<statement>;...}语句的样式能够有很多种,将在以下各章节论述。
变量和其他语言一样,GML中也有变量。
变量是存储信息的一段内存空间。
他们各有不同的名字以便于你去挪用他们。
GML中的一个变量既能够存储一个真实数字,也能够存储一个字符串。
额……其实本人还是比较笨的,摸了很久也不知道这软件从哪里入手,后来把官方例子拿过来稍微研究一下,发现原来也不是很难,写给跟我一样一时找不到北的朋友(我自己摸索一下之后,又再重复看了一遍@hai 兄的教程,突然豁然开朗,之前看不明白的地方都基本搞清楚了,感谢hai 兄)。
下面说下我的一些心得。
这游戏刚开始的时候第一眼给我的感觉略蛋疼,一堆水果飞来飞去,然后屏幕上的炸弹越来越多(我还以为是用键盘来玩的……),其实这是让你用鼠标点击水果得分,点错炸弹的话游戏结束。
特点是不同水果速度不同,因此点中难度和得分也不同,同时水果会碰墙反弹,而炸弹会越来愈多,所以到后面游戏难度会直线上升。
游戏结束后会弹出得分排行榜(类似WINDOWS扫雷?)然后正式开始分析游戏源工程,首先是精灵:自上而下:墙壁:给水果反弹用的苹果香蕉炸弹樱桃草莓然后是音乐:击中水果的效果音游戏背景音击中炸弹爆炸音接着是背景图:只有一张,就是那个木质地板。
下面是对象(这里是我主要想说的地方):有没发现,除了背景图以外,之前的资源都被引进来了?搞过RPG MAKER都知道,RM自带一个库,里面有各种的角色啊、地图啊、音乐啊,其实那就是一个对象库,赋予这些我们上面那些资源逻辑行为。
或者学过编程特别是面向对象编程的都知道其实这里就是定义每个对象的类。
好啦,继续一个个分析:对于墙壁对象,几乎没有什么动作(编程角度上叫方法),但是有一个很重要的属性是“固体”,我觉得不一定带有固定不能移动的意思,而更多的是为碰撞服务,也就是让水果对象不能穿越,让炸弹不能出现在这里。
以下是水果对象:可以看到,基本上他们的逻辑行为是一样的,不同的只有速度和方向而尔、决定一个对象的行为有两个编辑框,是“事件”和“动作”。
一句话可以描述他们之间的关系:对象的行为就是在某些情况(事件)下做某些特定的事情(动作)用苹果的行为来说明一下吧:第一个行为是“在被创建的时候(Create)朝某个方向移动(Start moving in a direction)”而点击Start moving in a direction的时候我们可以对它进行编辑:应用到指的是谁移动,这里当然是自已要移动。
J2ME中文教程(6)— GAME API第6章 GAME API6.1 游戏API简介6.2 GameCanvas的使用6.2.1 绘图6.2.2 键盘6.3 Sprite的使用6.3.1 Sprite帧6.3.2 帧序列6.3.3 Reference Pixel6.3.4 Sprite的变换6.3.5 绘制Sprite6.3.6 碰撞检测6.4 Layer的使用6.4.1 TiledLayer6.4.2 LayerManager6.5 一个示例6.6 小结6.1 游戏API简介MIDP 2.0相对于1.0来说,最大的变化就是新添加了用于支持游戏的API,它们被放在javax.microedition.lcdui.game包中。
游戏API包提供了一系列针对无线设备的游戏开发类。
由于无线设备仅有有限的计算能力,因此许多API的目的在于提高Java 游戏的性能,并且把原来很多需要手动编写的代码如屏幕双缓冲、图像剪裁等都交给API 间接调用本地代码来实现。
各厂家有相当大的自由来优化它们。
游戏API使用了MIDP的低级图形类接口(Graphics,Image,等等)。
整个game 包仅有5个Class:GameCanvas这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。
除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。
LayerLayer类代表游戏中的一个可视化元素,例如Sprite或TiledLayer是它的子类;这个抽象类搭好了层(Layer)的基本框架并提供了一些基本的属性,如位置,大小,可视与否。
出于优化的考虑,不允许直接产生Layer的子类(不能包外继承)。
LayerManager对于有着许多Layer的游戏而言,LayerManager通过实现分层次的自动渲染,从而简化了游戏开发。
用游戏盘古-GM 打造专业游戏教程版本:6.0版(2004-11-12)Edit by liver(教程中的GM均指GameMaker)入门篇目录第一章游戏梦想从里开始第二章安装超强利器Gamemaker第三章GM最初印象第四章看一个例子吧第五章用户界面初探5.1文件菜单 5.2编辑菜单 5.3添加菜单 5.4窗口菜单 5.5帮助菜单 5.6资源浏览栏第六章定义精灵图像(sprite)第七章音效以及背景音乐(sound&music)第八章背景图像(background)第九章定义物体物体(object)第十章解析“事件”(event)第十一章动作(action)集合11.1物体移动(move)11.2主要动作集合一11.3主要动作集合二11.4控制动作集合11.5绘制动作集11.6代码动作集(draw)11.7使用变量和表达式第十二章场景(room)的设计12.1增加实体物体(instance)12.2设定场景12.3设定场景背景第十二章(二):十年磨一剑发布你的游戏高级篇第十三章精灵图像sprite高级使用13.1编辑/修改精灵图像13.2strip图像集合的使用13.3编辑子图像13.4 高级图像设定第十四章音效&音乐探析第十五章背景高级教程第十六章物体物体高级使用16.1深度16.2持续存在的物体物体16.3父物体物体16.4遮罩的使用mask第十六章(二):动作集合高级使用篇16.2.1移动16.2.2 主要集合16.2.3控制集合16.2.4绘制集合16.2.5粒子动作16.2.6其它动作集合extra第十七章场景高级使用17.1高级设定17.2增加图像元件tiles 17.3镜头效果views第十七章(二)字体font第十八章路径path18.1路径的设定18.2把路径赋予物体18.3路径事件第十九章时间轴timelines第十九章(二)脚本第二十章完成游戏一.制作游戏帮助二.游戏选项设定(1.图形选项2.分辨率3.其它各选项4.进度条选项 5.常量6.独立运行游戏中的文件包含7.纠错设置8.设置软件信息)三.怎样使你的游戏运行速度更快第二十一章GML游戏设计语言(高级用户)GM完全中文开发教程第一章游戏梦想从里开始——做自己的游戏游戏给了我们第二生命,在游戏里我们可是上天入地,飞檐走壁,无所不能。
Gamemaker打砖块教程全解教程页 1 of 13引言欢迎来到Gamemaker~本教程将告诉你如何使用游戏制作语言(GML)创建你的第一个游戏,将需要大约30分钟完成。
我们希望它会教你用Gamemaker进行工作的重要基础,以及给你的游戏实验的基础和不断提高的同时学习所有关于这个难以置信的编程工具。
既然这是一个教程,我们准备重制一个每个人都知道的经典街机游戏打砖块~学习完本教程结束时,您将创建一个玩家控制的球拍,一个弹跳球,砖,墙,和一些其他的东西,所有这些都将学习Gamamaker如何工作,如何使用GameMaker Language(GML)编码和(我们希望~)在这个过程中体会到乐趣~你将要开发的游戏会使用一些特殊的资源,我们已经为这个教程特别创建了资源。
你只需在您的计算机上找到他们,请去Gamemaker屏幕的顶部菜单,并选择Help下拉菜单。
你会看到一个选项标记Open Project在资源管理器。
如果你选择了该项,那么标准文件浏览器将打开显示你的内容Gamemaker工程目录,你可以浏览“Assets”子目录,所有的资源都存储在“Graphics”(图片)和“Sounds”(声音)文件夹下。
同时还建议你打开帮助手册(按F1来对开),这样你就可以阅读教程中使用的函数的一些具体细节。
单击 Next 按钮进入教程的下一页。
教程页 2 of 13添加一些精灵像前面介绍的,我们想复制一个打砖块游戏,所以让我们来创建一些游戏中要用到的基础的对象。
首先我们需要为游戏中的砖块添加精灵,所以右击资源树精灵文件夹,选择第一个选项“Create Sprite”(创建精灵)现在你可以命名你的精灵,使它可以明确说明是一个砖块的精灵,我建议使用“spr_brick”(前置是资源类型,帮助你在以后的大型游戏中非常容易使用),现在点击按钮“Load sprite”,然后浏览到这个教程的资源文件夹(如果你不确认在哪里可以找到,你可以点帮助菜单,并选择“用资源管理器打开工程”)既然你将浏览助手,然后你可以选择砖块精灵资源了。
显示文章:$game_temp.message_text=""显示引号中的文章。
更改文章选项:$game_system.message_position =0,1,2表示上、中、下,三个位置$game_system.message_frame =0 ,10表示不透明,其他的话就透明等待:@wait_count = X等待X帧中断事件处理:command_end把某一个事件暂时消除$game_map.events[X].erase其中X表示把X号事件暂时消除,如果是消除本事件X = @event_id执行公共事件:$game_mon_event_id = 编号执行编号的公共事件。
注意,这个执行和直接在事件中的公共事件有微妙区别。
开关操作:$game_switches[编号] = true / falsetrue是打开,false是关闭变量操作:$game_variables[编号] = 数值这里有一些常用的内容:rand(100):返回0-99的随机数rand(100)+10000:返回10000-10099的随机数$game_party.item_number(编号):编号物品的个数角色相关:以下为某编号的角色的相关属性生命:$game_actors[编号].hp精神:$game_actors[编号].sp经验:$game_actors[编号].exp等级:$game_actors[编号].level最大生命:$game_actors[编号].maxhp最大精神:$game_actors[编号].maxsp力量:$game_actors[编号].str灵巧:$game_actors[编号].dex速度:$game_actors[编号].agi魔力:$game_actors[编号].int攻击力:$game_actors[编号].atk物理防御:$game_actors[编号].pdef魔法防御:$game_actors[编号].mdef回避修正:$game_actors[编号].eva姓名:$game_actors[编号].name职业编号:$game_actors[编号].class_id职业名称:$game_actors[编号].class_name武器编号:$game_actors[编号].weapon_id防具1编号:$game_actors[编号].armor1_id防具2编号:$game_actors[编号].armor2_id防具3编号:$game_actors[编号].armor3_id防具4编号:$game_actors[编号].armor4_id完全回复:$game_actors[编号].recover_all领悟特技:$game_actors[编号].learn_skill(编号)遗忘特技:$game_actors[编号].forget_skill(编号)位置(前卫返回0,中卫返回1,后卫返回2):$data_classes[$game_actors[编号].class_id].position学会特技总数:$game_actors[编号].skills.size敌人:$game_troop.enemies[编号]敌人拥有角色的部分功能,包括.hp,.sp,.maxhp,.maxsp,.str,.dex,.agi,.int,.atk,.pd ef,.mdef,.eva地图的事件属性:$game_map.events[编号].x,$game_map.events[编号].y编号事件的x,y 坐标$game_map.events[编号].screen_x,$game_map.events[编号].screen_y编号事件的屏幕x,y坐标$game_map.events[编号].direction编号事件的朝向$game_map.events[编号].terrain_tag编号事件所处的地形标志$game_map.events[编号].moveto(x,y)把事件扔到(x,y) ——————————————————以上几个事件的,如果要求为角色,则为“$game_player.x”等地图ID:$game_map.map_id同伴总人数:$game_party.actors.size步数:$game_party.steps金钱:$game_party.gold游戏总时间(秒数):Graphics.frame_count / Graphics.frame_rate 游戏总帧数:Graphics.frame_count游戏帧速率(可直接=n调整):Graphics.frame_rate计时器剩余秒数:$game_system.timer / Graphics.frame_rate 存档次数:$game_system.save_count独立开关操作:$game_self_switches[[地图编号,事件编号,"A"]] = true/false把地图编号的地图上的事件编号的事件的A开关打开。
利用GameMaker制作教学游戏课件作者:尹永田苏清香来源:《中小学信息技术教育》2009年第05期国内外研究表明,教学游戏在学生的学习过程中扮演着非常重要的角色。
若将一定的学习知识或考核内容采用适当的方式置于教学游戏中,不仅能激发学生的学习热情,还能使他们在游戏情境中获取知识,提高解决问题的技能。
Game Maker是美国Mark Overmars公司推出的一款可视化游戏制作软件。
它功能强大,且界面简洁,容易上手。
因此,备受学科教师的青睐。
一、Game Maker简介目前,Game Maker最新版本为Game Maker 7.0(下载地址:www.gamemaker.nl/download.html)。
它能够将复杂的游戏功能置于简单的操作中,学科教师不用学习任何编程语言即可轻松制作教学游戏,并能方便地将作品导入其他多媒体课件中。
该软件具有如下特点:1.直观易用的可视化开发界面。
教师通过设计适当的教学游戏情境,利用简单的鼠标操作,就能轻松制作出多媒体教学游戏。
2.支持多媒体素材的合成与处理。
Game Maker支持文字、图形、动画及声音等多种格式,并能在开发过程中对素材进行简单处理,以符合游戏设计的要求。
3.强大的交互控制功能。
Game Maker不仅支持鼠标左、中、右键的交互行为,还可根据游戏的操作特点,用自定义键盘的方式进行交互。
4.丰富的可扩展功能。
Game Maker是一个模块化游戏集成操作平台,有许多外挂程序用以扩充游戏功能,能够体现课件制作中的积件思想。
此外,利用Game Maker制作的游戏,不仅可以在单机上运行,还可以在校园网或Internet 上运行,供多用户共同参与。
二、Game Maker游戏制作教学游戏设计是游戏制作的前提。
它能规划游戏的内容和总体结构,使其体现一定的教学思想,并提高游戏的开发效率。
因此,学科教师在游戏制作前需要做好游戏脚本的设计。
脚本设计完成后,可进行游戏的制作。
常数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 不能是负数。
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( 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,...)返回参数的中间数(如果参数数目为偶数,则两个中间数中最小的那个作为返回值)。
最高支持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 是否是一个字符串(否则就是一个真实数值)。
字符串处理函数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)返回字符串 substr 在字符串 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_replace(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。
string_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 送入粘贴板。
日期及时间处理在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,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_inc_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 必须为整数。
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 对应的秒。
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 之间相隔多少年。
此函数只报告年数片断。
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,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)比较两个时间的大小,返回-1,0,1,分别代表前者小于,等于,大于后者。