《lua實戰:ios遊戲開發》
第1章 lua入門 1
1.1 什麼是lua 1
1.2 lua曆史 1
1.3 lua大事記 2
1.4 上手lua 3
1.5 配置lua 4
1.5.1 綫上lua shell 4
1.5.2 windows、max os x和*nix 4
1.5.3 ios 4
1.6 lua特性 4
1.6.1 變量 4
1.6.2 用變量實現hello world 5
1.6.3 字符串 6
1.6.4 數字 7
1.6.5 值和類型 8
1.6.6 塊和作用域 9
1.7 lua運算符 10
1.7.1 算術運算符 10
1.7.2 關係運算符 10
.1.7.3 邏輯運算符 10
1.7.4 其他運算符 11
1.8 總結 11
第2章 lua庫 12
2.1 基礎函數 12
2.1.1 assert(v[,message]) 12
2.1.2 collectgarbage([opt[,arg]]) 12
2.1.3 dofile([filename]) 13
2.1.4 error(message[,level]) 13
2.1.5 _g 13
2.1.6 getfenv([f]) 13
2.1.7 getmetatable(object) 13
2.1.8 ipairs(t) 13
2.1.9 load(func[,chunkname]) 14
2.1.10 loadstring(string[,chunkname]) 14
2.1.11 next(table[,index]) 14
2.1.12 pairs(t) 14
2.1.13 pcall(f,arg1,…) 14
2.1.14 print(…) 14
2.1.15 rawequal(v1,v2) 15
2.1.16 rawget(table,index) 15
2.1.17 rawest(table,index,value) 15
2.1.18 select(index,…) 15
2.1.19 setfenv(f,table) 15
2.1.20 setmetatable(table,metatable) 15
2.1.21 tonumber(e[,base]) 15
2.1.22 tostring(e) 15
2.1.23 type(v) 16
2.1.24 unpack(list[,i[,j]]) 16
2.1.25 _version 16
2.1.26 xpcall(f,err) 16
2.2 係統函數庫 17
2.2.1 錶函數 17
2.2.2 係統函數 19
2.3 錶(tables)概述 21
2.3.1 數組錶 21
2.3.2 關聯數組錶 21
2.4 函數:進階 21
2.4.1 對象錶 22
2.4.2 .和:的區彆 23
2.5 小結 25
第3章 文件操作 26
3.1 隱式函數 26
3.1.1 io.close([file]) 26
3.1.2 io.flush() 26
3.1.3 io.input([file]) 27
3.1.4 io.lines([filename]) 27
3.1.5 io.open(filename[,mode]) 27
3.1.6 io.output([file]) 27
3.1.7 io.read(…) 28
3.1.8 io.tmpfile() 28
3.1.9 io.type(obj) 28
3.1.10 io.write(…) 28
3.2 顯式函數 28
3.2.1 file:close() 28
3.2.2 file:flush() 29
3.2.3 file:lines() 29
3.2.4 file:read([format]) 29
3.2.5 file:seek([whence][,offset]) 29
3.2.6 file:setvbuf(mode[,size]) 30
3.2.7 file:write(…) 30
3.3 在遊戲中使用文件i/o 30
3.4 保存變量 31
3.5 獲取數據 31
3.5.1 代碼分析 32
3.5.2 潛在問題 32
3.6 變量存儲數據 33
3.6.1 代碼分析 33
3.6.2 潛在問題 34
3.7 數據寫入文件 35
3.8 存儲錶 35
3.9 動態變量 36
3.10 小結 37
第4章 lua數學函數 38
4.1 lua數學函數簡介 38
4.1.1 math.abs(x) 38
4.1.2 math.acos(x) 38
4.1.3 math.asin(x) 38
4.1.4 math.atan(x) 39
4.1.5 math.atan2(y,x) 39
4.1.6 math.ceil(x) 39
4.1.7 math.cos(x) 39
4.1.8 math.cosh(x) 39
4.1.9 math.deg(x) 39
4.1.10 math.exp(x) 39
4.1.11 math.floor(x) 40
4.1.12 math.fmod(x,y) 40
4.1.13 math.frexp(x) 40
4.1.14 math.huge 40
4.1.15 math.ldexp(m,e) 40
4.1.16 math.log(x) 40
4.1.17 math.log10(x) 41
4.1.18 math.max(x,...) 41
4.1.19 math.min(x,...) 41
4.1.20 math.modf(x) 41
4.1.21 math.pi 41
4.1.22 math.pow(x,y) 41
4.1.23 math.rad(x) 41
4.1.24 math.random([m[,n]]) 41
4.1.25 math.randomseed(x) 42
4.1.26 math.sin(x) 42
4.1.27 math.sinh(x) 42
4.1.28 math.sqrt(x) 42
4.1.29 math.tan(x) 42
4.1.30 math.tanh(x) 42
4.2 在遊戲中應用數學函數的實例 42
4.2.1 賦值 43
4.2.2 遞增與遞減 43
4.2.3 引入坐標點 44
4.2.4 條件分支 44
4.2.5 拋硬幣 45
4.2.6 擲骰子 45
4.2.7 使用標記位(flag) 46
4.2.8 多種標記位 47
4.2.9 利用數學函數實現循環 48
4.2.10 在遊戲中引入網格 48
4.2.11 移動角色 56
4.3 邏輯運算函數 59
4.4 小結 61
第5章 字符串 62
5.1 什麼是字符串 62
5.1.1 string.byte(s[,i[,j]]) 62
5.1.2 string.char(...) 63
5.1.3 string.dump(funtion) 63
5.1.4 string.find(s,pattern[,init[,plain]]) 63
5.1.5 string.format(formatstring,...) 63
5.1.6 string.gmatch(s,pattern) 64
5.1.7 string.gsub(s,pattern,repl[,n]) 64
5.1.8 string.len(s) 64
5.1.9 string.lower(s) 64
5.1.10 string.match(s,patterns[,init]) 64
5.1.11 string.rep(s,n) 64
5.1.12 string.reverse(s) 65
5.1.13 string.sub(s,i[,j]) 65
5.1.14 string.upper(s) 65
5.2 模式 65
5.2.1 字符類 65
5.2.2 模式項 66
5.2.3 模式 66
5.2.4 捕獲 66
5.3 使用字符串函數 66
5.3.1 將字符串轉化為大寫 67
5.3.2 將字符串轉化為小寫 67
5.3.3 將字符串轉化為首字母大寫 67
5.3.4 填充字符串 67
5.3.5 csv功能 68
5.3.6 用韆位分隔符規範數字的格式 69
5.3.7 字母頻率 69
5.3.8 判斷迴文字符串 70
5.3.9 分割字符串 70
5.4 關卡管理 70
5.5 小結 72
第6章 綫程 73
6.1 協同綫程 73
6.1.1 協同綫程函數 73
6.1.2 創建協同綫程 74
6.2 錶 77
6.2.1 自定義元錶 78
6.2.2 實際例子 83
6.3 lua麵嚮對象 83
6.4 什麼是對象 87
6.5 小結 90
第7章 技巧提示 91
7.1 通用lua函數 91
7.1.1 使用printf函數 91
7.1.2 計算錶中元素的數量 92
7.1.3 使用isempty 92
7.1.4 獲取元素索引 92
7.1.5 判斷一個錶是否是數組 93
7.1.6 設置默認值 93
7.1.7 復製錶 94
7.1.8 深度復製 94
7.1.9 復製數組部分 95
7.1.10 復製非數組部分 95
7.1.11 閤並兩個錶 95
7.1.12 判斷錶是否包含特定值 95
7.1.13 找齣table之間的差異 96
7.1.14 錶作為返迴值 96
7.1.15 錶內元素排序 96
7.1.16 判斷錶中特定項的頻度 97
7.1.17 轉換數字為羅馬數字 97
7.1.18 創建鏈錶 98
7.1.19 擴展標記變量 99
7.1.20 字符串補零 100
7.1.21 獲取字符類型的月份 100
7.1.22 像數組一樣訪問字符串 101
7.1.23 測量一維或二維中兩點間距 101
7.1.24 判斷兩點的夾角 101
7.1.25 限定數字範圍 101
7.1.26 綫性插值法 102
7.1.27 獲取值的標識符 102
7.2 碰撞 103
7.2.1 使用ispointlnrect 103
7.2.2 使用pointlncircle 103
7.2.3 判斷一個矩形是否包含另一個矩形 104
7.2.4 判斷一個圓形是否包含另一個圓形 104
7.2.5 識彆重疊矩形 104
7.2.6 識彆重疊圓形 105
7.2.7 判斷一個圓形和一個矩形是否重疊 105
7.2.8 使用pointlntriangle 106
7.2.9 使用pointlnpolygon 106
7.3 其他通用函數 107
7.3.1 布爾值比較 107
7.3.2 將c/java循環代碼轉換為lua 107
7.3.3 應用物體摩擦力 108
7.3.4 模擬一個玩偶盒 108
7.3.5 正弦滾動條 109
7.3.6 在麵闆的單行或單列放置唯一圖塊 109
7.3.7 利用數組輸齣大規模模闆文本 110
7.4 參數處理 111
7.4.1 固定參數 111
7.4.2 動態參數 112
7.4.3 動態名稱參數 112
7.4.4 使用可變參數 112
7.4.5 解析傳入參數列錶 113
7.4.6 生成隻讀table 115
7.4.7 實現堆棧 116
7.4.8 參數和錶之間的轉換 117
7.5 二維矢量 118
7.6 小結 120
第8章 corona sdk 121
8.1 配置corona sdk 121
8.2 corona sdk工作原理 121
8.3 corona sdk helloworld 122
8.3.1 圖像版本 123
8.3.2 hello world 124
8.3.3 設備顯示hello world 125
8.4 不僅僅是hello world:在屏幕上創建一個矩形 126
8.4.1 群組 128
8.4.2 圖像 130
8.4.3 事件驅動 130
8.4.4 觸屏輸入 131
8.4.5 物理特性 132
8.5 一切都是計時 134
8.5.1 幀 135
8.5.2 實現生命條 136
8.6 利用enterframe實現動畫 138
8.6.1 再說生命條 139
8.6.2 使用transition函數 140
8.6.3 移除屏幕中的對象 145
8.7 製作音效 145
8.7.1 發齣聲音 145
8.7.2 加工聲音 146
8.8 視頻處理 148
8.9 實現一個電梯 149
8.9.1 放大視圖 150
8.9.2 其他事件 153
8.9.3 使用地圖 155
8.10 瀏覽器 156
8.11 對象迴收 157
8.12 企業版本 158
8.13 小結 158
第9章 gideros studio 159
9.1 許可 159
9.2 安裝gideros studio 159
9.2.1 包含內容 160
9.2.2 設置許可 160
9.2.3 第一步 161
9.2.4 運行代碼 162
9.2.5 配置項目 163
9.3 架構 165
9.4 gideros引擎 165
9.4.1 hello小鳥 166
9.4.2 對齊圖像 166
9.4.3 群組 167
9.4.4 顯示文字 168
9.4.5 繪製形狀 170
9.4.6 應用程序對象 174
9.4.7 添加音效 176
9.4.8 事件 176
9.4.9 動畫 181
9.4.10 局域網和網絡 182
9.4.11 gps和指南針 183
9.4.12 加速計 184
9.4.13 陀螺儀 184
9.4.14 物理效果 185
9.5 插件 186
9.6 小結 188
第10章 moai 190
10.1 什麼是moai 190
10.2 獲取moai 190
10.3 moai sdk 191
10.4 hello moai 191
10.5 顯示文字 194
10.5.1 truetype字體 194
10.5.2 位圖字體 195
10.5.3 文本屬性 196
10.6 繪製矢量圖元 197
10.6.1 繪製直綫 197
10.6.2 繪製矩形 197
10.6.3 繪製填充矩形 199
10.6.4 繪製圓 200
10.6.5 繪製填充圓 200
10.6.6 繪製橢圓 200
10.6.7 繪製填充橢圓 200
10.6.8 繪製多邊形 201
10.6.9 繪製點 201
10.6.10 繪製屬性 202
10.7 繪製圖像 202
10.7.1 繪製自定義圖像 203
10.7.2 載入圖像 203
10.7.3 copying images 204
10.7.4 保存圖像 204
10.7.5 修改圖像尺寸 204
10.7.6 圖像的像素提取 204
10.8 動畫 205
10.9 柵格deck 206
10.10 綫程 209
10.11 組 210
10.12 處理輸入 212
10.12.1 鍵盤事件 212
10.12.2 鼠標事件 213
10.12.3 觸控事件 216
10.13 聲音 217
10.14 顯示對話框 217
10.15 播放視頻 218
10.16 設備鏇轉 218
10.17 通知 218
10.18 網絡 219
10.19 使用json 221
10.20 使用base64 221
10.21 壓縮數據 222
10.22 物理特性 223
10.22.1 box2d物理功能 223
10.22.2 chipmunk物理功能 226
10.23 moai雲 228
10.23.1 創建web服務 228
10.23.2 使用web服務 230
10.24 小結 231
第11章 l?ve 232
11.1 架構 232
11.2 安裝l?ve 233
11.3 運行l?ve 233
11.4 迴調函數 234
11.4.1 love.load() 234
11.4.2 love.update(dt) 234
11.4.3 love.draw() 234
11.4.4 love.mousepressed(x,y,button) 234
11.4.5 love.mousereleased(x,y,button) 234
11.4.6 love.keypressed(key,unicode) 234
11.4.7 love.keyreleased(key) 235
11.4.8 love.focus() 235
11.4.9 love.quit() 235
11.5 l?ve命名空間 235
11.5.1 love.audio 235
11.5.2 love.event 235
11.5.3 love.filesystem 236
11.5.4 love.font 236
11.5.5 love.graphics 236
11.5.6 love.image 236
11.5.7 love.joystick 236
11.5.8 love.mouse 237
11.5.9 love.physics 237
11.5.10 love.sound 237
11.5.11 love.thread 237
11.5.12 love.timer 237
11.6 圖形模塊 237
11.6.1 圖像 237
11.6.2 移動 240
11.6.3 活動窗口 241
11.6.4 使用鍵盤控製移動 241
11.6.5 鏇轉對象 245
11.6.6 繪製圖元 246
11.7 應用程序設置——conf.lua 251
11.8 創建特效 252
11.9 物理 254
11.10 顯示文本 256
11.11 著色器 257
11.12 製造聲音 259
11.13 示例遊戲代碼 260
11.14 小結 265
第12章 codea 266
12.1 獲取codea 266
12.2 codea的架構 267
12.3 hello world 267
12.4 參數 268
12.5 使用codea進行繪製 269
12.5.1 設備鏇轉 269
12.5.2 係統鍵盤 270
12.5.3 繪製模式 270
12.5.4 背景顔色 270
12.5.5 畫筆顔色 271
12.5.6 填充色 271
12.5.7 綫寬 271
12.5.8 繪製直綫 271
12.5.9 抗鋸齒 271
12.5.10 繪製圓和橢圓 272
12.5.11 繪製矩形 273
12.5.12 繪製文本 273
12.6 顯示圖片 274
12.6.1 屏幕外繪製 275
12.6.2 在圖片中載入精靈 275
12.6.3 保存圖片 275
12.6.4 保存數據 275
12.6.5 “無色”繪製 276
12.6.6 變換函數 276
12.7 錄製視頻 277
12.8 觸控 277
12.8.1 使用觸控進行繪製 278
12.8.2 多點觸控 279
12.9 製造聲音 280
12.10 ios硬件 281
12.11 下載數據 283
12.12 顯示網頁 284
12.13 物理特性 284
12.14 矢量計算 286
12.14.1 anglebetween 286
12.14.2 cross 286
12.14.3 dist 286
12.14.4 distsqr 286
12.14.5 dot 286
12.14.6 len 286
12.14.7 lensqr 287
12.14.8 normalize 287
12.14.9 rotate 287
12.14.10 rotate90 287
12.15 小結 287
第13章 庫 288
13.1 particle candy 288
示例代碼 289
13.2 text candy 290
示例代碼 291
13.3 widget candy 291
示例代碼 292
13.4 corona autolan 293
13.5 corona profiler 293
示例代碼 294
13.6 director 294
示例代碼 295
13.7 lime 295
示例代碼 295
13.8 rapanui 295
示例代碼 296
13.9 gideros illustrator(svg library) 296
示例代碼 297
13.10 tnt particles library 297
示例代碼 297
13.11 busted 297
示例代碼 298
13.12 moses 298
示例代碼 298
13.13 allen 299
示例代碼 299
13.14 bhwax 299
示例代碼 299
13.15 小結 301
第14章 第三方應用程序 302
14.1 ide 302
14.1.1 glider 302
14.1.2 coronacomplete 303
14.1.3 lua studio 304
14.1.4 zerobrane studio 305
14.2 文本編輯器 306
14.2.1 notepad++ 306
14.2.2 textmate 307
14.2.3 textwrangler 308
14.2.4 bbedit 308
14.2.5 sublime text 2 309
14.2.6 textastic代碼編輯器 310
14.3 片段收集器 311
14.3.1 codebox 312
14.3.2 code collector pro 312
14.4 版本控製 313
14.5 位圖編輯器 314
14.5.1 pixen 314
14.5.2 graphicsgale 315
14.5.3 pixelmator 316
14.5.4 axialis iconworkshop 317
14.5.5 inkscape 317
14.5.6 paint.net 318
14.5.7 iconify 319
14.6 精靈動畫和層級創建工具 320
14.6.1 spritehelper 320
14.6.2 levelhelper 320
14.6.3 tiled 321
14.6.4 texturepacker 322
14.6.5 physicseditor 323
14.6.6 particle designer 324
14.6.7 glyph designer 325
14.6.8 spriteloq 326
14.6.9 zo? 327
14.6.10 tnt animator studio 328
14.7 音頻工具 328
14.7.1 audacity 328
14.7.2 bfxr 329
14.7.3 nodebeat 330
14.8 小結 331
第15章 示例代碼 332
15.1 圖形 332
15.2 搭建環境 333
15.3 讓直升機飛起來 334
15.4 使用加速度儀 336
15.5 移動直升機 336
15.6 發齣聲音 338
15.7 開槍 339
15.8 讓子彈飛 340
15.9 敵軍降臨 341
15.10 移動場景物品 344
15.11 掛瞭 345
15.12 上點顔色 347
15.13 顯示信息 348
15.14 game over,再來一遍 350
15.15 碰撞 352
15.15.1 射擊飛機和氣球 354
15.15.2 營救與加油 356
15.16 放到一起 357
15.17 小結 358
· · · · · · (
收起)