Game Maker 原始程式撰寫 Mark Overmars.

Slides:



Advertisements
Similar presentations
簡單 GIF 製作 (1)Gifmake (2)PICASION.COM By Shark. Gifmake introduction(1) 1.You can create a picture. Just specify width and height in pixels, then you'll.
Advertisements

第 4 章 PHP 基本語法.
C语言程序设计 主讲教师 :张群燕 电话:
关于中文字体辨识度的探究实验 让你看清楚PPT 钱翔、王洋、冒星阳、张芸、刘娜、郭艾利.
Ch02物件導向程式設計 物件導向系統分析與設計.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
引導者的角色 組別:第5組 4A1I0003 劉芷媛 4A1I0004 陳安琪 4A1I0014 陳佳瑩 4A1I0046 葉倢茹
第5章 HTML 標籤介紹.
By Deborah Nelson Duke University Professor Susan Rodger July 13, 2008
Pygame 講者:張浩軒.
TQC+ 物件導向程式認證-JAVA.
Performance Evaluation
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
“走进三国” 读书汇报会 广州市玉岩中学 李玉明( ).
即兴中文讲演比赛 On-Site Speech 新型比赛项目
编译原理上机实习
第4章 VHDL设计初步.
遊戲機制設計 遊戲設計文件( GDD ) 塞德克歐北來.
第3章 JavaScript语言基础.
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
第 5 章 流程控制 (一): 條件分支.
程設一.
说课.
第八章 分析與設計階段 – 物件導向設計(OOD)
税务认定 永州市国家税务局纳税人学校.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
BLANK overview.
Chapter 1 複習.
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
C++Primer 3rd edition 中文版 Chap 5
Shell Script 程式設計.
Basis基本操作、使用者 管理與權限設定
Chapter 5 Verilog硬體描述語言
第3章 變數、資料型別與運算子.
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
Creating Animated Apps (I) 靜宜大學資管系 楊子青
 FLYING EAGLE TECHNOLOGY INC/INFOBRIDGE CONSULTING GROUP
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
中国散裂中子源小角谱仪 的实验数据格式与处理算法 报告人:张晟恺 中国科学院高能物理研究所 SCE 年8月18日
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
Transact-SQL 語言設計教學.
Windows 程式設計 (使用 C++ / C#)
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
ASP动态网页设计实用教程 主讲教师: 开课单位:.
Delphi程序设计与应用教程 宁正元 主编 刘雄恩 陈琼 副主编 中国水利水电出版社
C 語言簡介 - 2.
JavaScript 靜宜大學 資管系 楊子青.
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
Introduction to the C Programming Language
NS2 – TCP/IP Simulation How-Wei Wu.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
基礎程式設計範例 -網頁名片.
簡易 Visual Studio 2005 C++ 使用手冊
第六章 人机交互界面 的表示模型与实现 山东大学计算机学院.
Advanced Basic Key Terms Dependency Actor Generation association
進階 WWW 程式設計 -- PHP 語言結構 靜宜大學資訊管理學系 蔡奇偉副教授 2003
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
江西财经大学信息管理学院 《数据库应用》课程组2007
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
Case 工具-UML with Rational Rose
陳維魁 博士 儒林圖書公司 第三章 變數與繫結 陳維魁 博士 儒林圖書公司.
徐迎晓 复旦大学软件学院 实现模型 徐迎晓 复旦大学软件学院.
第二次课后作业 计算对象的实现—存储 请给出R语言和Python语言中哪些值是可存储值,哪些值是不可存储值?
本节内容 Lua基本语法.
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
第6章 PHP基本語法介紹.
When using opening and closing presentation slides, use the masterbrand logo at the correct size and in the right position. This slide meets both needs.
Presentation transcript:

Game Maker 原始程式撰寫 Mark Overmars

Game maker簡介 Game Maker 是一套容易使用的程式,你可以用來創造你自己的電腦遊戲,它並內建了程式語言GML。 它是為降低遊戲設計的難度而寫,不需要寫程式,用簡單直覺的拖放滑鼠介面立即設計自己的遊戲。 你可以輸入或設計影像、子圖形(會動的影像)、聲音並使用他們。你可以很容易地定義遊戲中的物件以及他們的行為表現,你可以設計有捲動背景的華麗場景。萬一你想要對程式全面控管,遊戲製作者中內建了程式語言,讓你可以對遊戲當中的所有元件做控制。

Game maker簡介 遊戲製作者著眼於2-D遊戲的設計,沒有3-D的效果,但是不要失望,許多經典遊戲,如世紀帝國等都是利用2-D動畫特效,使他們看起來像3-D,設計2-D遊戲比3-D要來的簡單、快速。 也許遊戲製作者最棒的部分是免費,你可以沒有限制的創造遊戲,沒有糾纏不休的付費螢幕畫面,喜歡的話甚至你可以賣遊戲,詳細情形請看許可協議文件。

Game maker簡介 Game Maker was written by Mark Overmars. He is a full professor at the Institute of Information and Computing Sciences at Utrecht University in the Netherlands. Here he heads the Center for Advanced Gaming and Simulation, that performs research in areas such as 3D modelling, animation, virtual characters, simulation, human-computer interaction, adaptive game play, and artistic aspects of games. The first public release was version 1.1. It was released on november 15, 1999.

Game maker簡介 Game Maker is written in Delphi (version 7 at the moment). Almost all the code was written by Mark Overmars except for a few freeware components to read different image formats and to compress the data. The Game Maker source code is over 40.000 lines of code. The source code for the runner part is similar in size. The maker part is heavily based on the Windows API. The runner part is based on DirectX (version 8.0 at the moment to keep it compatible with most older computers). Again, this makes it difficult to port it to other platforms.

關於Delphi Borland/Inprise 公司的 Delphi 是一個組合了現代程式語言、整合式開發環境(IDE)和視覺化元件庫(VCL )等功能的強大程式語言。Delphi 的 IDE 很容易為任何使用過相似工具的人所熟悉。例如,你可以在一個所見即所得的表單編輯器中簡單地進行拖放操作,來視覺化地設計一個視窗。更重要的是,由於 Delphi 程式語言的強大和彈性,其架構是物件導向的、可擴展的及可自訂的。 Delphi 的核心是 Delphi Pascal 程式語言。它具有一個現代物件導向語言的所有能力,同時保持了 Pascal 的優雅和簡易。 Delphi 一開始就是作為一個 Windows 程式語言和環境的,而且很多 Delphi 程式設計師認為 Delphi 是所有 Windows 開發工具之中最好的。

安裝 執行gmaker.exe,安裝8.1版主程式。 (2012) 接下來安裝res01.exe、 res02.exe 、 res03.exe 及res04.exe,以增加額外的子圖組、背景及聲音。

場景(Rooms)和物件(Objects) 遊戲製作者設計的遊戲發生在一個或多個場景中(場景是平的,不是3-D立體,但可以包含立體圖樣)。 在這些場景中你可以置放被程式定義的物件,典型的物件有牆壁、移動的球、主角、怪獸等等。有些物件,比如牆壁,固定在那裏,不用做任何事情。 其他的物件,比如主角,會來回移動以及根據玩家由鍵盤、滑鼠或操縱桿輸入的資料來作反應。舉例而言,當主角遇到怪獸可能會死掉。物件是遊戲製作者設計遊戲時最重要的元素。

子圖組(Sprites) 所有的物件需要用可見的圖像呈現在螢幕上,這些圖像稱為子圖組。 子圖組通常不只一個而是由多個圖像組成。這樣他看來像是主角在走路,球在滾動,爆炸的太空船等等。 遊戲過程中經由特別的物件可以變換子圖組(所以當主角走到左邊與走到右邊看起來可以是不一樣的),你可以用遊戲製作者設計子圖組,或由檔案中讀取。

事件(Events) 有一些事情會發生在物件上,稱之為事件。當事件發生時,物件可以有一些動作(Actions)。遊戲進行時大量的事件伴隨發生,以致於你可以讓物件有不同的動作。 舉例來說,當物件被創造(更精確的說,當物件圖例被創造時,一個物件可以有許多不同的圖例組成)時產生了創造事件。舉例來說,一個球物件被創造時可以設定一些運動動作,比如開始運動。當兩個物件相遇時產生了碰撞事件,在這一種情況下你可以讓球停止或轉向,並加入音效。當玩家按了一個按鍵,產生了鍵盤事件,物件可以有適當的動作,像是朝指示的方向移動。每一個物件可由不同的事件帶出動作,用這一種方式來定義物件的行為表現。

下列的東西(通常稱為資源)扮演了決定性的角色 物件:遊戲當中的實體。 場景:物件存在的區域(關卡)。 子圖組:用來表現物件的影像。 聲音:當作背景音樂或是某種影響而被用於遊戲中。 背景:在場景中使用影像當成背景。 進階模式中的資源:paths, scripts, fonts, and time lines。scripts是一段程式碼,能延伸遊戲製作者的可能性。

例子一:反彈球 若干顆球在一密閉房間內各自任意移動,球碰到牆壁或別的球時會反彈,玩家用滑鼠點某到顆球時,可得一分,並且此球跳至隨機位置。 需要兩個不同物件:球及牆壁。另外也需要兩個不同子圖組:一個給球物件,一個給牆壁物件。 接著在滑鼠成功點選到球時發出某種聲音。此遊戲中僅使用一個場景。

反彈球 (1)做牆壁與球的子圖組,從增加(Add)選單中選增加子圖組(Add Sprite) (2)製作物件碰撞的聲音,從增加(Add)選單中選增加聲音(Add Sound) (3)下一步是創造兩個物件,先做牆壁物件。同樣從選擇增加物件(Add Object),會出現一個較複雜的表單。表單左邊是有關於物件的整體資訊,給物件取一個適當的名字(填在Name:)如 “wall”,並從Sprite下拉式選單選擇正確的代表wall的子圖組。由於牆壁是實心,在核取方塊Solid上打勾。(4)再創造一個新物件(Add Object),稱它"ball",給它ball子圖組。

(5)球的事件與動作 事 件 動 作 選 項 創造事件 移動 所有方向 速度(speed)修改為8 碰撞事件(與牆壁物件) 反彈 事    件 動    作 選   項 創造事件 移動 所有方向 速度(speed)修改為8 碰撞事件(與牆壁物件) 反彈 mouse事件(按下左鍵) 播放聲音         加入分數         跳到隨機位置 再開始移動 鍵入數值:1,並勾選”Relative” 。 所有方向,速度8

反彈球 (6)定義場景。從增加選單中增加一個新的room場景到這遊戲中。在視窗右邊你會看到空著的場景。在左邊有三種功能選單,分別是objects(物件), setting(設定)與 backgrounds(背景)。他們的功用如下。 objects(物件) : 左下方用彈出選單來選擇物件。 在場景中,用按滑鼠左鍵的方式把物件圖例放在那裡。你能用滑鼠右鍵移除此圖例。+ <shift> 多物件, +<ctrl> 移動或複製物件 在場景周圍,使用牆壁物件做成邊界。最後,在場景中放置2個球物件。

反彈球 (7)按下執行(Run game)按鍵。如果正確的話,可以看到球開始四處移動。你能按下<Esc>鍵停止遊戲。 setting(設定): 可改變的場景屬性,像是width和height(寬度和高度)。 backgrounds(背景): 也可在左側中央處選擇漂亮的背景圖 SnapX(水平格線的距離),SnapY(垂直格線的距離) ,需配合子圖組的大小。 (7)按下執行(Run game)按鍵。如果正確的話,可以看到球開始四處移動。你能按下<Esc>鍵停止遊戲。

常用事件與動作圖示 事件 按鍵事件 步進事件 離鍵事件 繪圖事件 計時事件 碰撞事件 其他事件 摧毀事件 鍵盤事件 滑鼠事件 創造事件   按鍵事件   步進事件   離鍵事件   繪圖事件   計時事件   碰撞事件   其他事件   摧毀事件   鍵盤事件   滑鼠事件   創造事件 other: 其他事件 Outside Intersect Boundary Game start Game end Room start Room end No more lives No more health Animation end End of path user defined

Move actions Main actions, set 1 踫躍至起始位置 設定垂直速度 設定垂直速度 設定運動方向速度 反轉垂直方向     踫躍至起始位置     設定垂直速度     設定垂直速度     設定運動方向速度     反轉垂直方向     反轉水平方向     移動到接觸點     跳躍至任意位置     跳躍至預定位置     向某點移動     反彈     設定移動方向 Main actions, set 1     到下一場景     摧毀某位置上的物件實例     建立物件實例(含速度與方向設定)     到前一場景     停止播放聲音     播放聲音     到另一場景     改變子圖組     改變物件實例     重玩此場景     建立物件實例     摧毀物件實例

Main actions, set 2 Score 暫停 設定時間軸 載入遊戲設定 儲存遊戲設定 顯示遊戲資訊 顯示訊息 設定計時器     暫停     設定時間軸    載入遊戲設定     儲存遊戲設定     顯示遊戲資訊    顯示訊息     設定計時器     設定時間軸位置    結束遊戲     重新開始 Score     顯示健康值條柱     顯示生命數     假如生命數為某數     假如健康值為某數     設定生命數     顯示高分表     設定健康值     清除高分表     顯示得分     以圖像顯示生命數     假如得分為某數     設定得分

Control Code & Variables Call the inherited event   If instance is aligned with grid   離開目前的事件   重覆下一動作   假如使用者回答是   假如骰子的點數為1時   區塊結束   假如某物件實例的數目為某數時   假如在某位置有一物件存在   區塊開始   假如在某位置發生碰撞   假如在某位置無碰撞發生   否則   假如滑鼠鍵被按   假如條件式成立 Code & Variables    Comment    Draw the value of a variable    If a variable has a value      Set the value of a variable    Execute a piece of code    Execute a script

Draw Change fullscreen mode Set a font for drawing text Set the colors   Draw a text   Draw a line   Draw an ellipse   Draw a rectangle   Draw a background image   Draw a sprite image

場景座標幾何示意圖

Scripts 在GM中Scripts等同於procedures和 functions. 以下的scripts等同於procedures: Some_script (arg0, arg1, … , arg9); //And declaring that script: { for (x = argument0; x > argument1; x += argument2) { … }

Scripts 以下是functions,有傳回值: Ans = some_other_script (arg0, arg1, … , arg9); //And in the script itself: { x = argument0 * argument1; … return x; }

The Game Maker Language (GML) 提供將近1000個函式及變數來控制遊戲的進行。 有四個地方可以使用程式:定義Scripts、在事件中設定一個code action、在整個場景創造時、在動作中設定一個數值。 全部的資源(子圖組,物件,聲音,等等)命名時,名稱必須以字母開始並僅包括字母,數字和底線‘_’符號的組合。禁用一些有特別意義的字像是本身(self)、其他(other)、整體(all)、global或所有的資源,以及一些關鍵字。

Variables變數 就像任何一個程式語言,GML 包含變數,變數能貯存實數數值或者是字串,變數不需要宣告,有許多內建的變數。 全域變數,如mouse_x 和mouse_y 能夠指定目前滑鼠位置。 區域變數,針對我們執行這程式時的物件圖例,如x 和y 能夠指定這目前這圖例的位置。一變數有一名稱,這名稱必須以一字母開始並只能包含字母,數字,和底線符號'_'。(最大的長度是64個符號) 。當你使用一個新的變數時,他是針對目前圖例(區域性的),並不被程式中其他的圖例所知道(甚至物件相同時也不知道)

Assignments 指定一個式子的數值到一個變數中,格式如下:<variable>=<expression>; 設計者能使用+=增加它, 使用-=減去它, 使用*=乘它或使用/=除它

Expressions 運算式可以是實數(例如3.4), 在單引號或雙引號之間的字串(例如‘hello’或“ hello ”)或更複雜的運算。以下面的二進位操作模式運作(依照優先順序安排): &&、||:結合布林(Boolean)數值(&&代表”和”,|| 代表”或”)。 <、<=、==、!=、>、>=:比較,結果是真(1)或假(0)。 +、-:加、減。*、/:乘,除。div、mod:整數除、和餘數。

Expressions { x = 23; color = $FFAA00; str = 'hello world'; y += 5; x *= y; x = y << 2; x = 23*((2+4) / sin(y)); str = 'hello' + " world"; b = (x < 5) && !(x==2 || x==4); }

Extra variables 在物件名稱後輸入一圓點,並接著這變數名稱,可以在其他物件中設定和讀取該變數。如:ball.speed=0; 創造整體變數,該變數對全部物件圖例是可見的,在變數前輸入”global”以及一圓點。 { if (global.doit) // do something global.doit = false; }

Addressing variables in other instances self:目前執行動作時的圖例。 other:在一碰撞事件中涉及的其他圖例。 all:全部圖例。 noone:根本沒有圖例 global:整體,不是指單一圖例,而是一個儲存整體變數的容器。 other.sprite_index = sprite5; all.speed = 0; global.message = 'A good result'; global.x = ball.x;

陣列 在GML你能使用1維和2維的陣列,每個陣列從索引0起算。 不可使用負的索引。系統的限制可容許每個陣列中最多有32000個索引,總計不超過1000000的大小,寫成下面形式: { a[0] = 1; i = 1; while (i < 10) { a[i] = 2*a[i-1]; i += 1;} b[4,6] = 32; }

If statement if (<expression>) <statement> if (<expression>) <statement> else <statement> 如果x座標小於200,就往右移4點;否則往左移4點 { if (x<200) {x += 4} else {x -= 4}; }

Repeat statement 做出五個球物件在隨機位置 { repeat (5) instance_create(random(400),random(400),ball); }

While statement 在一自由(沒有其他物件)位置上放置目前物件。這個位置如果不是空的,就把它搬走。 { while (!place_free(x,y)) x = random(room_width); y = random(room_height); }

Do statement 把物件搬到空的地方 { do x = random(room_width); y = random(room_height); } until (place_free(x,y))

For statement 初始化一長度為10,數值為1到10的陣列。 { for (i=0; i<=9; i+=1) array[i] = i+1; }

Switch statement 按鍵盤左鍵或數字鍵4,就往左移動;反之亦然。 switch (keyboard_key) { case vk_left: case vk_numpad4: x -= 4; break; case vk_right: case vk_numpad6: x += 4; break; }

break:跳離迴圈 continue:以下一個值繼續 exit:結束整個程式

Functions 函式名稱後面跟隨著零個或數個參數(在括號之間),由逗點分開。 <function>(<arg1>,<arg2>,…) 不可以把函式放在assignment的左邊。 以下的寫法不可以使用instance_nearest(x,y,obj).speed = 0. (錯誤) 必須要這樣寫才可以! (instance_nearest(x,y,obj)).speed = 0. (正確) 靠近某位置的物件速度為0

With constructions 如何將全部的球向下搬移8個像素? 將所有的球移至隨機位置 ball.y = ball.y + 8; (X) ball.y += 8; (X) 這樣的話右邊獲得第一個球的y座標數值並將它加上8。再來這新數值(加上8的數)被設定到全部球的y座標。結果是全部的球都獲得這相同的y座標。 with (ball) y += 8; (O) 將所有的球移至隨機位置 with (ball) { x = random(room_width); y = random(room_height); }

With constructions 摧毀所有球物件 摧毀靠近爆炸點50pixel的所有物件 非常powerful吧! with (ball) instance_destroy(); 摧毀靠近爆炸點50pixel的所有物件 with (all) {if (distance_to_object(other) < 50) instance_destroy(); } 非常powerful吧!

Comment註解 每行程式在” //” 之後的部分將不會被讀取 多行註解: / * 註解 註解 */

Constants常數 true Equal to 1 false Equal to 0. pi Equal to 3.1415.

常用函式 random(x):在0和x之間返回一任意的實數,這數通常比x小。 hspeed:水平速度。 hspeed為正值表示一向右的運動, hspeed為負值表示一向左的運動。 vspeed:垂直速度。 vspeed是正值表示向下運動,vspeed為負值的是向上運動 。 direction:目前的方向(0-360,逆時針方向,0是向右邊)。 speed:目前的速度(像素每步驟)。

常用函式 place_free(x,y):傳回是否這圖例被放置在位置(x,y)時是免於碰撞的。通常用於真正地移動到新位置之前的檢查。 place_empty(x,y) :傳回是否這圖例被放置在位置(x,y)時沒有碰到其他東西,此函式也將非實心的圖例考慮在內。 instance_create(x,y,obj) :在位置(x,y)上創造一obj的圖例,此函式傳回新圖例的ID。 instance_destroy():摧毀目前的圖例。

常用函式 sleep(numb):休眠numb時間(以milliseconds為單位)。 mouse_x*:滑鼠的X-座標,不能被改變。 mouse_y*:滑鼠的Y-座標,不能被改變。 mouse_button:目前壓下的滑鼠按鈕,有下面的值:mb_none,mb_any,mb_left,mb_middle,或mb_right。 keyboard_lastkey最後壓下按鍵的按鍵碼。

常用函式 假設你有一個使用者能以箭號按鍵控制的物件,你可以把下面一段程式碼放在這物件的步驟事件中: { if (keyboard_check(vk_left)) x -= 4; if (keyboard_check(vk_right)) x += 4; if (keyboard_check(vk_up)) y -= 4; if (keyboard_check(vk_down)) y += 4; }

常用函式 sprite_width* :指定這這子圖組的寬度,這數值不能被改變。 sprite_height* :指定這子圖組的高度,這數值不能被改變。 sprite_xoffset*: 指定這子圖組水平的偏移量,依照在子圖組性質中的定義。 sprite_yoffset*指定這子圖組垂直的偏移量 。

常用函式 room_width* :場景的寬度(像素)。 room_height* :場景的高度(像素)。

常用函式 depth:正常的影像,是以圖例創造的先後順序被描畫。預設值是0,可為負數,背景的數值要最大,才能在最底下。 sound_play(index):播放指定的聲音一次。 sound_loop(index):連續播放指定聲音。 sound_stop(index):停止指定的聲音。 sound_stop_all():停止全部的聲音。

補充說明 可製作多人連線遊戲:但僅限註冊版,支援IPX, TCP/IP, Modem, and Serial。

數學加法練習NumberFacts.gm6 for (go=0;go<3;go+=1) { x=round(random(100)); y=round(random(100)); correct = x+y; // get_integer(str,def) // pops up a dialogue box and returns the integer entered answer=get_integer('Add '+string(x) + ' and ' +string(y),''); if (answer==correct) show_message('Well done'); else{ while (answer!=correct) show_message('try again'); }

一些功能的練習 利用alarm跟draw事件實作倒數100。countUp_countDown.gm6 利用執行一小段程式碼實作讓四隻小鬼跟著球跑。followTheLeader.gm6 一次只能推動一顆石頭的小鬼。pushRock.gm6 射擊遊戲實作Paths及改變子圖組。invadersVersion2.gm6

進階範例介紹 彈珠台 小精靈(內建) 1945 (內建) 街頭賽車(內建)很複雜的設計 >-<

參考資料 電腦遊戲製作教學(無日期)。民96年1月10日,取自: http://140.126.110.19/%7Eyuat/GameMaker/Book/contents.htm Mark Overmars(2007).Game Maker Pages.Retrieved January 10, 2007, from the World Wide Web:http://www.gamemaker.nl/ Bill Kerr(2007). Free Game Maker Educational Resources.Retrieved January 10, 2007, from the World Wide Web: http://www.users.on.net/~billkerr/g/int.htm 林東和(民93 )。遊戲製作:使用Game Maker。臺北市:碁峰資訊。