var road = createSprite('road.png'); //柏油路背景
var check1 = createSprite('check.png'); //檢查點1
var check2 = createSprite('check.png'); //檢查點2
var border = createSprite('border.png'); //道路邊界
var car = createSprite('car.png'); //車子
var dashboard = createSprite('dashboard.png'); //儀表板
var resultBoard = createSprite('result.png'); //成績顯示版
var miniRoad = createSprite('road.png'); //迷你地圖
var miniCar = createSprite('car.png'); //迷你車
check1.moveTo(600, 400);
check2.moveTo(600, -1750);
miniRoad.moveTo(1000, 700);
miniCar.moveTo(1000, 700);
//固定圖片不會隨角度旋轉
road.rotationStyle = 'fixed';
check1.rotationStyle = 'fixed';
check2.rotationStyle = 'fixed';
border.rotationStyle = 'fixed';
miniCar.scale = 1/2; //縮小車子
miniRoad.scale = 1/15; //縮小地圖
miniRoad.opacity = 0.6; //迷你地圖半透明
resultBoard.hidden = true; //預設隱藏成績顯示版
var speed = 0; //車速
var startTime = Date.now(); //開始時間
var round = 1; //圈數
var isChecked = false; //是否經過檢查點2
var timer = 0; //計時器
var t1; //第1圈秒數
var t2; //第2圈秒數
var t3; //第3圈秒數
createSound('bgm.mp3', true);
var engineSound = createSound('engine.mp3', true);
forever(loop); //重複不斷執行遊戲迴圈
//遊戲主迴圈
function loop () {
timer = (Date.now() - startTime)/1000;
print(Math.floor(speed*10) + ' km/h', 80, 80, 'white', 40);
print(round + '/3', 350, 80, 'black', 40);
print(timer + 's', 1000, 80, 'white', 40);
engineSound.setVolume(speed/10); //根據速度調整引擎聲音
border.direction = car.direction - 180;
border.stepForward(speed);
road.direction = car.direction - 180;
road.stepForward(speed);
check1.direction = car.direction - 180;
check1.stepForward(speed);
check2.direction = car.direction - 180;
check2.stepForward(speed);
if (key.right) {
car.direction += 2;
speed -= 0.2;
}
if (key.left) {
car.direction -= 2;
speed -= 0.2;
}
if (key.up) {
if (speed < 12) {
speed += 0.15;
}
} else {
speed -= 0.03;
}
if (key.down) {
if (speed > 0.6) {
speed -= 0.3;
}
}
if (car.touched(border)) {
// speed -= 0.3;
}
if (speed < 0.6) {
speed = 0.6;
}
if (car.touched(check1) && isChecked) {
startTime = Date.now();
if (round == 1) {
t1 = timer;
}
if (round == 2) {
t2 = timer;
}
if (round == 3) {
t3 = timer;
}
round += 1;
isChecked = false;
}
if (car.touched(check2)) {
isChecked = true;
}
//進入第四圈表示已經完成三圈,遊戲要結束並顯示成績
if (round == 4) {
resultBoard.hidden = false;
var avg = (t1 + t2 + t3) / 3;
drawText(t1 + 's', 550, 340, 'white', 30);
drawText(t2 + 's', 550, 410, 'white', 30);
drawText(t3 + 's', 550, 495, 'white', 30);
drawText(avg.toFixed(3) + 's', 550, 560, 'white', 30);
stop();
}
//迷你小地圖
miniCar.direction = car.direction;
miniCar.stepForward(speed/15);
}
engine.mp3
bgm.mp3
border.png
car.png