這篇介紹如何增加遊戲性

 

1. Player Movement Restrictions: 遊戲內的物件會移出螢幕外
這時候就可以用step event和 code來處理
可以利用if和角度來判斷它是水平或是垂直的paddles

Vertical Paddles:
> : 代表大於, x > y 則是當x的值大於y時, 會回傳true
< : 代表小於, x < y 則是當x的值小於y時, 會回傳true
&& : 代表and, 也就是且的意思 x && y 則是當兩邊都為true時則回傳true
room_height : 房間的高度
sprite_width : 精靈的寬度

Horizontal Paddles:
room_width : 房間的寬度

01.png

 

2. Creating A Grid Of Blocks: 創建Sprites的block
並且在Room內填滿
Destroying The Blocks: 建立一個Collision event,
然後再tab main1內新增destory instance action
並且tab score內新增set score action. 10分
也可以用code寫成
score += 10;
instance_destroy();

Restarting The Game:建立Other event內可以選擇Outside room
在tab main1內選擇Restart Room action可以重置房間
但是分數不會重置, 所以要在選擇set score action來將分數歸0

Bouncing The Ball Using Code:
var 變數名稱 : 可以用來宣告變數, 儲存暫時資料
point_direction(x1, y1, x2, y2) : 回傳物體的方向
x1, y1是第一個元件的x和y值
x2, y2是第二個元件的x和y值
motion_add(x, y): 根據傳入的x是方向或是速度
來增加instance共y的數值

other.x : 代表是instance碰撞的那個物件
random(x) : 代表產生0 ~ x的範圍內的任意數值

02.png

 

3. 問題集
Q1: 為什麼我們要檢測滑鼠對應paddle實體的位置?
A1: 避免paddle跑出遊戲畫面範圍

Q2: 你可以為code命名嗎?
A2: 可以, 使用///在第一行即可

Q3: 為甚麼我們要對分paddle的寬和高?
A3: 因為sprite的起點在中心, 所以在計算時要對分paddle

Q4: 為什麼我們要重設score變數?
A4: 因為score變數是global 變數, 如果不特定重設的話, 則會一直保留原先的數值.

Q5: 在bounce code添加的random function做了什麼事情?
A5: 在反彈角度增加-2 ~ 2度來避免0 - 180或90 - 270的無限循環

03.png  

 

 

arrow
arrow
    文章標籤
    GameMaker GamePlay
    全站熱搜

    RX1226 發表在 痞客邦 留言(0) 人氣()