{"id":633025,"student_id":3760,"content":"// 建立各遊戲角色\nlet road = createSprite('road.png'); // 柏油路背景\nlet check1 = createSprite('check.png'); // 檢查點 1\nlet check2 = createSprite('check.png'); // 檢查點 2\nlet border = createSprite('border.png'); // 道路邊界\nlet car = createSprite('car.png'); // 車子\nlet dashboard = createSprite('dashboard.png'); // 儀表板\nlet resultBoard = createSprite('result.png'); // 成績顯示版\nlet miniRoad = createSprite('road.png'); // 迷你地圖\nlet miniCar = createSprite('car.png'); // 迷你車\n\n// 設定各角色初始位置\ncheck1.moveTo(600, 400); // 檢查點 1\ncheck2.moveTo(600, -1750); // 檢查點 2\nminiRoad.moveTo(1000, 700); // 迷你地圖\nminiCar.moveTo(1000, 700); // 迷你車\n\n// 設定角色造型的旋轉方式,讓特定角色不會隨角度改變旋轉\nroad.rotationStyle = 'fixed';\ncheck1.rotationStyle = 'fixed';\ncheck2.rotationStyle = 'fixed';\nborder.rotationStyle = 'fixed';\n\n// 調整特定角色尺寸\n// 【學習】縮小迷你車角色\n// 將 miniCar 的 scale 屬性設定為 1 / 2\n// 【學習】縮小迷你地圖角色\n// 將 miniRoad 的 scale 屬性設定為 1 / 15\n// 設定迷你地圖角色至半透明\nminiRoad.opacity = 0.6;\n\n// 預設隱藏成績顯示版\nresultBoard.hidden = true; \n\n// 初始化各控制用變數\nlet speed = 0; // 車速\nlet startTime = Date.now(); // 開始時間\nlet round = 1; // 圈數\nlet isChecked = false; // 用來檢查是否經過檢查點 2\nlet timer = 0; // 計時器\nlet t1; // 第 1 圈秒數\nlet t2; // 第 2 圈秒數\nlet t3; // 第 3 圈秒數\n\n// 建立背景音樂,並設定為播放\ncreateSound('bgm.mp3', true);\n// 建立引擎聲音效,並設定為播放\nlet engineSound = createSound('engine.mp3', true);\n\n// 執行遊戲各動作的功能\nfunction loop () {\n // 更新計時器時間\n timer = (Date.now() - startTime)/1000;\n\n // 顯示目前各資訊,如車速、圈數、以及計時器時間\n print(Math.floor(speed*10) + ' km/h', 80, 80, 'white', 40);\n print(round + '/3', 350, 80, 'black', 40);\n print(timer + 's', 1000, 80, 'white', 40);\n\n // 根據車速調整引擎聲音量\n engineSound.setVolume(speed/10); \n\n // 相對移動控制程式\n border.direction = car.direction - 180;\n border.stepForward(speed);\n road.direction = car.direction - 180;\n road.stepForward(speed);\n check1.direction = car.direction - 180;\n check1.stepForward(speed);\n check2.direction = car.direction - 180;\n check2.stepForward(speed);\n\n // 如果按下鍵盤右鍵\n if (key.right) {\n // 車子往右轉\n car.direction += 2;\n // 降低車速\n speed -= 0.2;\n }\n // 如果按下鍵盤左鍵\n if (key.left) {\n // 車子往左轉\n car.direction -= 2;\n // 降低車速\n speed -= 0.2;\n }\n \n // 如果車速小於 12\n if (speed \u003c 12) {\n // 加快車速\n speed += 0.15;\n }\n // 如果車速小於 0.6\n if (speed \u003c 0.6) {\n // 固定車速\n speed = 0.6;\n }\n \n // 【學習】如果車子碰到道路邊界\n if (/* 使用 car 的 touched() 功能,檢查是否碰到 border */) {\n // 【學習】車速需要降低 0.3\n // 將 speed 設定為原本的數值減去 0.3\n }\n \n // 如果車子碰到檢查點 1 而且已經經過檢查點 2\n if (car.touched(check1) \u0026\u0026 isChecked) {\n // 更新開始時間至目前時間\n startTime = Date.now();\n // 如果目前為第 1 圈\n if (round == 1) {\n // 設定第 1 圈秒數為目前計時器時間\n t1 = timer;\n }\n // 如果目前為第 2 圈\n if (round == 2) {\n // 設定第 2 圈秒數為目前計時器時間\n t2 = timer;\n }\n // 如果目前為第 3 圈\n if (round == 3) {\n // 設定第 3 圈秒數為目前計時器時間\n t3 = timer;\n }\n // 增加累積圈數\n round += 1;\n // 更新檢查紀錄為 false,即新的一圈開始,還沒有經過檢查點 2\n isChecked = false;\n }\n // 【學習】如果車子碰到檢查點 2\n if (/* 使用 car 的 touched() 功能,檢查是否碰到 check2*/) {\n // 【學習】更新檢查紀錄為 true,表示已經過檢查點 2\n // 設定 isChecked 為 true;\n }\n \n // 如果目前為第 4 圈,表示已經完成 3 圈,遊戲要結束並顯示成績\n if (round == 4) {\n resultBoard.hidden = false;\n let avg = (t1 + t2 + t3) / 3;\n drawText(t1 + 's', 550, 340, 'white', 30);\n drawText(t2 + 's', 550, 410, 'white', 30);\n drawText(t3 + 's', 550, 495, 'white', 30);\n drawText(avg.toFixed(3) + 's', 550, 560, 'white', 30);\n stop();\n }\n \n // 設定迷你車的方向為目前車子的方向\n miniCar.direction = car.direction;\n // 設定迷你車的速度為目前車速的 1/15 倍\n miniCar.stepForward(speed/15);\n}\n\n// 【學習】使用 forever() 重複不斷執行遊戲各動作的功能\n// 使用 forever() 讓 loop 功能可以不斷重複執行 \n","created_at":"2023-11-02T03:46:15.086+08:00","updated_at":"2023-11-20T14:45:27.519+08:00","name":"JS 瘋狂賽車_學生","language":"javascript","screenshot":{"url":null},"parent_id":616140,"plugin":"Game.set({\n width: 1200, height: 900,\n})","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":17,"hashid":"6rpsqd3y9","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":14211694,"file_name":"engine.mp3","project_id":633025,"asset_id":686010,"created_at":"2023-11-02T03:46:15.091+08:00","updated_at":"2023-11-02T03:46:15.091+08:00"},{"id":14211695,"file_name":"bgm.mp3","project_id":633025,"asset_id":686011,"created_at":"2023-11-02T03:46:15.093+08:00","updated_at":"2023-11-02T03:46:15.093+08:00"},{"id":14211696,"file_name":"border.png","project_id":633025,"asset_id":686012,"created_at":"2023-11-02T03:46:15.094+08:00","updated_at":"2023-11-02T03:46:15.094+08:00"},{"id":14211697,"file_name":"car.png","project_id":633025,"asset_id":686013,"created_at":"2023-11-02T03:46:15.095+08:00","updated_at":"2023-11-02T03:46:15.095+08:00"},{"id":14211698,"file_name":"check.png","project_id":633025,"asset_id":686014,"created_at":"2023-11-02T03:46:15.096+08:00","updated_at":"2023-11-02T03:46:15.096+08:00"},{"id":14211699,"file_name":"dashboard.png","project_id":633025,"asset_id":686015,"created_at":"2023-11-02T03:46:15.097+08:00","updated_at":"2023-11-02T03:46:15.097+08:00"},{"id":14211700,"file_name":"result.png","project_id":633025,"asset_id":686016,"created_at":"2023-11-02T03:46:15.098+08:00","updated_at":"2023-11-02T03:46:15.098+08:00"},{"id":14211701,"file_name":"road.png","project_id":633025,"asset_id":686017,"created_at":"2023-11-02T03:46:15.099+08:00","updated_at":"2023-11-02T03:46:15.099+08:00"}]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
1:1:1
1:1
full
幫助
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦