程晨,創客布道師、創客教育踐行者,擁有十多年嵌入式開發經驗,技術方面涉獵廣泛,先后主持參與十多項軍民科研產品的研發,擁有多項發明專利。少年創學院聯合創始人兼院長、濼喜教育聯合創始人兼技術總監,兼任Intel軟件創新大使、中國電子學會全國青少年機器人技術等級考試標準工作組副組長、中國教育技術協會數字教育資源專業委員會專家的職務。第1本Arduino中文書作者,編著、翻譯開源硬件、3D打印、機器人、智能硬件、物聯網等領域相關圖書十多本,長期在《無線電》雜志刊登技術類文章。參與錄制CCTV《原來如此》節目,錄制多套開源硬件項目視頻教程。曾任北京航空航天大學、北京郵電大學特聘講師,參與清華大學、北京科技大學等多所高校的創新性課程設計。
01 認識JavaScript..............................1
1.1 緣起.1
1.2 歷史............................1
1.3 特性................................................2
02 類型和變量..................................4
2.1 瀏覽器中的控制臺...................................4
2.2 數字和運算符..........................................5
2.3 變量................................................6
2.4 變量命名規則.......................................7
2.5 字符串...................................... 8
2.5.1 連接字符串… ………………………………………………………………………… 9
2.5.2 獲取字符串的長度… ……………………………………………………………… 10
2.5.3 獲取單個字符… …………………………………………………………………… 10
2.5.4 截取字符串… ……………………………………………………………………… 11
2.5.5 大小寫轉化… ……………………………………………………………………… 11
2.6 邏輯運算..................................... 12
2.6.1 布爾類型… ………………………………………………………………………… 12
2.6.2 邏輯運算符… ……………………………………………………………………… 12
2.6.3 關系運算符… ……………………………………………………………………… 14
2.7 underfined 和null............................. 16
2.8 原始類型.................................... 16
2.8.1 鑒別原始類型… …………………………………………………………………… 16
2.8.2 原始方法… ………………………………………………………………………… 17
03 數組..................................18
3.1 創建數組................................ 18
3.2 訪問數組元素................................ 18
3.3 修改數組元素....................... 19
3.4 應用數組................................. 20
3.4.1 查看數組長度… …………………………………………………………………… 20
3.4.2 添加數組元素… …………………………………………………………………… 20
3.4.3 刪除數組元素… …………………………………………………………………… 21
3.4.4 數組相加… ………………………………………………………………………… 22
3.4.5 查找元素的序號… ………………………………………………………………… 22
3.4.6 將數組轉換成字符串… …………………………………………………………… 23
04 對話框............................24
4.1 HTML 基礎....................................... 24
4.2 嵌入JavaScript 代碼........................... 25
4.3 對話框..................................... 27
4.3.1 輸入對話框… ……………………………………………………………………… 27
4.3.2 確定對話框… ……………………………………………………………………… 29
4.3.3 if 語句… …………………………………………………………………………… 31
4.3.4 警告對話框… ……………………………………………………………………… 32
4.4 DOM..................................... 33
4.4.1 用ID 標識元素……………………………………………………………………… 33
4.4.2 選中元素… ………………………………………………………………………… 34
4.4.3 替換文本內容… …………………………………………………………………… 34
05 繪制國際象棋棋盤.......................37
5.1 canvas 元素........................................ 37
5.2 繪制方塊......................................... 38
5.3 繪制方框........................................... 39
5.4 繪制棋盤.................................... 41
5.5 循環結構...................................... 42
5.5.1 while 語句… ………………………………………………………………………… 42
5.5.2 do-while 語句… …………………………………………………………………… 43
5.5.3 for 循環……………………………………………………………………………… 44
06 五子棋..................................48
6.1 基本繪圖方式................................... 48
6.1.1 繪制線條… ………………………………………………………………………… 48
6.1.2 填充路徑… ………………………………………………………………………… 49
6.1.3 繪制圓弧和圓… …………………………………………………………………… 50
6.2 繪制棋盤...................................... 51
6.3 鼠標交互....................................... 52
6.4 繪制棋子......................................... 54
6.5 黑子和白子.................................. 56
6.6 獲勝判斷........................................ 59
6.7 函數............................................ 63
6.7.1 函數的形式… ……………………………………………………………………… 63
6.7.2 落子函數… ………………………………………………………………………… 64
6.7.3 獲勝檢測函數… …………………………………………………………………… 65
07 彈球游戲.............................69
7.1 對象.............................................. 69
7.2 對象的方法..................................... 70
7.3 定時功能...................................... 71
7.4 邊界判斷....................................... 72
7.5 增加擋板......................................... 73
7.6 鍵盤交互........................................ 74
08 貪吃蛇..................................78
8.1 構造函數....................................... 78
8.2 原型方法........................................ 78
8.3 貪吃蛇游戲的框架........................... 79
8.4 貪吃蛇的移動.............................. 80
8.5 貪吃蛇的控制............................... 82
8.6 添加蘋果...................................... 83
8.7 吃蘋果......................................... 84
8.8 生成新蘋果................................. 86
8.9 顯示分數....................................... 87
8.9.1 設置文本基線… …………………………………………………………………… 90
8.9.2 設置文本的大小和字體… ………………………………………………………… 91
8.10 游戲結束..................................... 93
8.11 碰撞檢測...................................... 93
09 拼圖游戲..........................100
9.1 顯示圖片.................................... 100
9.2 圖形的變化.............................. 102
9.3 拼圖游戲說明............................. 104
9.4 顯示局部圖片........................... 105
9.5 圖片編號.................................. 107
9.6 移動拼圖................................... 108
9.7 打亂拼圖............................... 112
9.8 拼圖狀態判斷........................... 115
10 飛行射擊游戲.................. 121
10.1 圖片處理................................ 121
10.2 繪制飛機.............................. 122
10.3 子彈射擊............................. 123
11 游戲引擎................... 128
11.1 什么是游戲引擎....................... 128
11.2 Quintus 游戲引擎..................... 128
11.3 網頁初始化................................ 129
11.4 場景和精靈............................... 130
11.5 精靈控制................................. 132
11.6 調試功能............................... 133
11.7 GMP 游戲引擎...................... 135
11.8 js 文件下載............................. 136
11.9 真·射擊游戲................................... 137
11.10 游戲優化......................................... 144