1 of 202

遊戲設計

Chapter 6

2 of 202

遊戲包含的元件

  • 動畫元件(Canvas & Animation)
    • 顯示、移動與消失
    • 碰撞偵測
  • 計時器 (Clock)
    • 貼圖動畫
    • 倒數計時
  • 音效 (Sound)
  • 文字標籤(Label)
    • 計分、計時
  • 按鈕
    • 開始 & 重置

3 of 202

新增專案

1

2

3

4

4 of 202

加入畫布

1

拖曳

5 of 202

設定畫布寬高

6 of 202

加入球型精靈

拖曳

7 of 202

設定參數

8 of 202

重新命名

1

2

3

4

9 of 202

撰寫球移動程式

1

10 of 202

撰寫球移動程式

1

2

11 of 202

撰寫球移動程式

1

2

12 of 202

撰寫球移動程式

13 of 202

撰寫球移動程式

1

2

14 of 202

撰寫球移動程式

15 of 202

加入動畫圖片

Note:若出現錯誤訊息,請關閉 方塊編輯器

拖曳

16 of 202

動畫圖片特殊屬性

顯示圖片檔案

可否旋轉

圖片大小

17 of 202

變更顯示圖片

1

18 of 202

變更顯示圖片

2

3

19 of 202

變更顯示圖片

3

4

20 of 202

變更顯示圖片

5

21 of 202

變更座標位置

22 of 202

變更元件名稱為 “發射台”

1

2

3

4

23 of 202

建立拖曳方塊

1

2

3

24 of 202

拖曳方塊參數解說

起始拖曳座標

前一個暫停座標

目前座標

25 of 202

移動圖片

1

2

26 of 202

移動圖片

串接至這裡

27 of 202

移動圖片

1

2

28 of 202

移動圖片

串接至這裡

29 of 202

模擬執行

30 of 202

新增子彈(Ball)

1

2

拖曳

31 of 202

變更子彈大小

32 of 202

變更子彈顏色

1

2

33 of 202

變更子彈方向為 90

34 of 202

變更子彈移動時間間隔(速度)為 10

35 of 202

隱藏子彈

取消勾選

36 of 202

變更圖片精靈名稱為 “子彈”

1

2

3

37 of 202

折疊已編輯的程式

滑鼠移到空白處按右鍵

1

2

38 of 202

摺疊完成圖

39 of 202

發射子彈的問題

  • 甚麼時候發射子彈
    • 拖曳放開的時候
    • 碰觸畫布(canvas)的時候

  • 子彈數量
    • 簡單化 – 同一時間只有1發

40 of 202

子彈位置

發射台

子彈

(發射台.X,發射台.Y)

發射台.寬度

子彈.半徑 * 2

(發射台.X+發射台.寬度/2-子彈. 半徑,

發射台.Y - 子彈.半徑 * 2)

41 of 202

發射子彈的程序

計算調整子彈座標

顯示子彈

設定子彈移動速度

42 of 202

觸發子彈 – 碰觸畫布時

1

2

43 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

44 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

45 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

46 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

47 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

48 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

49 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

50 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

51 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

52 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

53 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

54 of 202

計算子彈X座標

串接至這裡

55 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

56 of 202

計算子彈X座標

串接至這裡

並改為2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

57 of 202

計算子彈X座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

58 of 202

計算子彈X座標

串接至這裡

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

59 of 202

計算子彈Y座標

1

2

子彈.Y =發射台.Y - 子彈.半徑 * 2

60 of 202

計算子彈Y座標

串接至這裡

子彈.Y =發射台.Y - 子彈.半徑 * 2

61 of 202

計算子彈Y座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

62 of 202

計算子彈Y座標

串接至這裡

子彈.Y =發射台.Y - 子彈.半徑 * 2

63 of 202

計算子彈Y座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

64 of 202

計算子彈Y座標

串接至這裡

子彈.Y =發射台.Y - 子彈.半徑 * 2

65 of 202

計算子彈Y座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

66 of 202

計算子彈Y座標

串接至這裡

子彈.Y =發射台.Y - 子彈.半徑 * 2

67 of 202

計算子彈Y座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

68 of 202

串接至這裡

69 of 202

計算子彈Y座標

1

2

子彈.X = 發射台.X+發射台.寬度/2 - 子彈.半徑

70 of 202

計算子彈Y座標

串接至這裡

並改為2.5

子彈.Y =發射台.Y - 子彈.半徑 * 2

71 of 202

顯示子彈

1

2

72 of 202

顯示子彈

串接至這裡

73 of 202

顯示子彈

1

2

74 of 202

顯示子彈

串接至這裡

75 of 202

設定子彈移動速度

1

2

76 of 202

設定子彈移動速度

串接至這裡

77 of 202

設定子彈移動速度

1

2

78 of 202

設定子彈移動速度

串接至這裡

並改為2

79 of 202

模擬執行

碰觸畫布可以發射子彈

但子彈停留在最上面

可以拖曳移動發射台

80 of 202

子彈的消失

  • 當子彈移到邊界時應消失
    • 邊界偵測
    • 設定 Visible屬性為 False
    • 設定移動速度為0

81 of 202

子彈的消失

1

2

82 of 202

子彈的消失

1

2

83 of 202

子彈的消失

串接至這裡

84 of 202

子彈的消失

1

2

85 of 202

子彈的消失

串接至這裡

86 of 202

子彈的消失

1

2

87 of 202

子彈的消失

串接至這裡

88 of 202

子彈的消失

1

2

89 of 202

子彈的消失

串接至這裡

90 of 202

修訂子彈的發射

  • 當子彈(發射)進行中,應禁止再發射
  • 發射子彈前應檢查子彈的Visible屬性

91 of 202

修訂子彈的發射

拖曳

92 of 202

修訂子彈的發射

1

2

93 of 202

修訂子彈的發射

串接至這裡

94 of 202

修訂子彈的發射

1

2

95 of 202

修訂子彈的發射

串接至這裡

96 of 202

修訂子彈的發射

1

2

97 of 202

修訂子彈的發射

串接至這裡

98 of 202

修訂子彈的發射

1

2

99 of 202

修訂子彈的發射

串接至這裡

100 of 202

修訂子彈的發射

拖曳

101 of 202

修訂子彈的發射

串接至這裡

102 of 202

1

2

3

拖曳

103 of 202

上傳音效

1

2

3

4

104 of 202

上傳音效

5

6

105 of 202

上傳音效

7

8

106 of 202

播放音效

1

2

107 of 202

播放音效

串接至這裡

108 of 202

模擬執行

109 of 202

擊中目標

  • 碰撞偵測
  • 爆炸畫面
    • 貼圖動畫 – 需要 計時器(Clock) 及 爆炸圖片
  • 爆炸音效 – 需要 聲音(Sound) 及 爆炸音效檔

e1

e2

e3

e4

e5

e6

110 of 202

上傳 爆炸相關檔案

1

2

111 of 202

上傳 爆炸相關檔案

3

4

112 of 202

上傳 爆炸相關檔案

5

113 of 202

上傳 爆炸相關檔案

  • 重複步驟 ~ 上傳下列檔案

1

5

114 of 202

上傳 完成圖

115 of 202

加入 計時器(Clock)

1

2

拖曳

1

116 of 202

修改計時間隔 並停止計時

1

2

117 of 202

加入聲音元件

1

2

拖曳

118 of 202

設定爆炸音效檔

1

2

3

119 of 202

加入 動畫圖片

1

2

拖曳

120 of 202

更改 爆炸圖片名稱為 Exp

1

2

3

121 of 202

定義 貼圖動畫圖片編號

1

2

122 of 202

定義 貼圖動畫圖片編號

將名稱改為id

123 of 202

設定 貼圖動畫圖片編號為1

1

2

124 of 202

設定 貼圖動畫圖片編號為1

串接至這裡

並改為1

125 of 202

碰撞偵測

1

2

126 of 202

設定爆炸圖片座標

1

2

127 of 202

設定爆炸圖片座標

串接至這裡

128 of 202

設定爆炸圖片座標

1

2

129 of 202

設定爆炸圖片座標

串接至這裡

130 of 202

設定爆炸圖片座標

1

2

131 of 202

設定爆炸圖片座標

串接至這裡

132 of 202

顯示第1張爆炸圖片

1

2

133 of 202

顯示第1張爆炸圖片

串接至這裡

134 of 202

顯示第1張爆炸圖片

1

2

135 of 202

顯示第1張爆炸圖片

串接至這裡

並改為 e1.png

136 of 202

顯示第1張爆炸圖片

1

2

137 of 202

顯示第1張爆炸圖片

串接至這裡

138 of 202

顯示第1張爆炸圖片

1

2

139 of 202

啟動爆炸動畫貼圖計時器

串接至這裡

140 of 202

啟動爆炸動畫貼圖計時器

2

1

141 of 202

啟動爆炸動畫貼圖計時器

串接至這裡

142 of 202

啟動爆炸動畫貼圖計時器

點選後按Ctrl C複製

再按Ctrl V貼上

143 of 202

啟動爆炸動畫貼圖計時器

串接至這裡

144 of 202

播放爆炸音效

1

2

145 of 202

播放爆炸音效

串接至這裡

146 of 202

貼圖動畫 – 使用計時器

1

2

147 of 202

貼圖動畫 – 遞增圖片編號

1

2

148 of 202

貼圖動畫 – 遞增圖片編號

串接至這裡

149 of 202

貼圖動畫 – 遞增圖片編號

1

2

150 of 202

貼圖動畫 – 遞增圖片編號

串接至這裡

151 of 202

貼圖動畫 – 遞增圖片編號

1

2

152 of 202

貼圖動畫 – 遞增圖片編號

串接至這裡

並改為1

153 of 202

貼圖動畫 – 遞增圖片編號

1

2

154 of 202

貼圖動畫 – 遞增圖片編號

串接至這裡

155 of 202

貼圖動畫 – 設定顯示圖片檔名

1

2

156 of 202

貼圖動畫 –設定顯示圖片檔名

串接至這裡

157 of 202

貼圖動畫 –設定顯示圖片檔名

1

2

158 of 202

貼圖動畫 –設定顯示圖片檔名

串接至這裡

159 of 202

貼圖動畫 –設定顯示圖片檔名

1

2

拖曳

160 of 202

貼圖動畫 –設定顯示圖片檔名

1

2

161 of 202

貼圖動畫 –設定顯示圖片檔名

串接至這裡

並改為e

162 of 202

貼圖動畫 –設定顯示圖片檔名

1

2

163 of 202

貼圖動畫 –設定顯示圖片檔名

串接至這裡

164 of 202

貼圖動畫 –設定顯示圖片檔名

點選後按Ctrl C複製

再按Ctrl V貼上

165 of 202

貼圖動畫 –設定顯示圖片檔名

串接至這裡並改為 .png

166 of 202

貼圖動畫 – 判斷結束否

1

2

167 of 202

貼圖動畫 –判斷結束否

串接至這裡

168 of 202

貼圖動畫 –判斷結束否

1

2

169 of 202

貼圖動畫 –判斷結束否

串接至這裡

170 of 202

貼圖動畫 –判斷結束否

1

2

171 of 202

貼圖動畫 –判斷結束否

串接至這裡

並改為6

172 of 202

貼圖動畫 –判斷結束否

1

2

173 of 202

貼圖動畫 –判斷結束否

串接至這裡

174 of 202

結束貼圖動畫 – 取消計時器

1

2

175 of 202

結束貼圖動畫 – 取消計時器

串接至這裡

176 of 202

結束貼圖動畫 – 取消計時器

1

2

177 of 202

結束貼圖動畫 – 取消計時器

串接至這裡

178 of 202

結束貼圖動畫 – 初始化圖片編號為1

1

2

179 of 202

結束貼圖動畫 – 初始化圖片編號為1

串接至這裡

180 of 202

結束貼圖動畫 – 初始化圖片編號為1

點選後按Ctrl C複製

再按Ctrl V貼上

181 of 202

結束貼圖動畫 – 初始化圖片編號為1

串接至這裡

182 of 202

結束貼圖動畫 – 隱藏爆炸圖片

1

2

183 of 202

結束貼圖動畫 – 隱藏爆炸圖片

串接至這裡

184 of 202

結束貼圖動畫 – 隱藏爆炸圖片

點選後按Ctrl C複製

再按Ctrl V貼上

185 of 202

結束貼圖動畫 – 隱藏爆炸圖片

串接至這裡

186 of 202

模擬執行

187 of 202

計分

  • 使用元件

188 of 202

加入 水平排列元件

1

2

拖曳

189 of 202

加入文字標籤

1

2

拖曳

190 of 202

更改文字標籤的文字

191 of 202

加入分數文字標籤

拖曳

192 of 202

更改文字標籤的名稱為score

1

2

3

193 of 202

更改分數文字標籤初值為0

1

194 of 202

增加 得分

1

2

195 of 202

增加 得分

串接至這裡

196 of 202

增加 得分

1

2

197 of 202

增加 得分

串接至這裡

198 of 202

增加 得分

1

2

199 of 202

增加 得分

串接至這裡

並改為10

200 of 202

增加 得分

1

2

201 of 202

增加 得分

串接至這裡

202 of 202

模擬執行