{"id":18149,"student_id":98,"content":"var target_1 = createSprite(\"target.jpg\");\r\nvar target_2 = createSprite(\"target.jpg\");\r\ntarget_2.y = -260;\r\nvar border = createSprite(\"border.png\");\r\nvar car = createSprite(\"blue.png\");\r\n\r\nvar objects = [target_1,target_2,border,car];\r\nvar speed = 3;\r\nvar round = 0;\r\n\r\nvar ID = Date.now();\r\nvar hostid;\r\nvar name = prompt(\"你的名字?\");\r\n\r\nvar users = {};\r\nvar cars = {};\r\nusers[ID]={\r\n id:ID,\r\n name:name,\r\n status:0,\r\n offsetX:0,\r\n offsetY:0,\r\n direction:0,\r\n updateTime:0\r\n}\r\ncars[ID] = car;\r\n\r\n\r\nforever(function(){\r\n if(key.right){\r\n car.direction += 3;\r\n }\r\n if(key.left){\r\n car.direction -=3;\r\n }\r\n if(speed\u003c8){\r\n speed+=0.3;\r\n }\r\n if(car.touched(border)){\r\n if(speed\u003e0.5){\r\n speed -=0.5;\r\n }\r\n }\r\n if(users[ID].status == 1){\r\n car.stepForward(speed);\r\n }\r\n\r\n var offsetX = car.x - 320;\r\n var offsetY = car.y - 240;\r\n for(var i=0;i\u003cobjects.length;i++){\r\n objects[i].move(-offsetX,-offsetY);\r\n }\r\n if(car.touched(target_2)){\r\n round = 1;\r\n }\r\n if(car.touched(target_1)\u0026\u0026round==1){\r\n stop();\r\n }\r\n});\r\n\r\n//車尾燈\r\nforever(function(){\r\n for(var id in cars){\r\n var car = cars[id]\r\n var fire = createSprite(\"blue.png\");\r\n fire.moveTo(car);\r\n fire.direction = car.direction;\r\n objects.push(fire);\r\n fire.forever(function(){\r\n /* Do this every tick */\r\n this.scale -= 0.03;\r\n this.opacity-=0.03;\r\n if(this.scale\u003c0 || this.opacity\u003c0){\r\n this.destroy();\r\n }\r\n });\r\n } \r\n});\r\n\r\nforever(function(){\r\n users[ID].offsetX = car.x - border.x;\r\n users[ID].offsetY = car.y - border.y;\r\n users[ID].direction = car.direction;\r\n users[ID].updateTime = Date.now();\r\n\r\n DB.broadcast(\"update\",users[ID]);\r\n\r\n hostid = ID;\r\n for(var id in users){\r\n if(id \u003c hostid){\r\n hostid = id;\r\n }\r\n }\r\n var h = 0;\r\n for(var id in users){\r\n h++;\r\n if(id == hostid){\r\n print(users[id].name +'房主' ,10,20*h,\"red\"); \r\n }else{\r\n print(users[id].name ,10,20*h,\"red\");\r\n }\r\n cars[id].x = users[id].offsetX + border.x;\r\n cars[id].y = users[id].offsetY + border.y; \r\n cars[id].direction = users[id].direction;\r\n if(Date.now()\u003eusers[id].updateTime + 10000){\r\n cars[id].destroy();\r\n delete cars[id];\r\n delete users[id];\r\n }\r\n }\r\n\r\n});\r\n\r\nDB.onMessage(\"update\",function(data){\r\n if(users[data.id]){\r\n users[data.id] = data;\r\n }else{\r\n users[data.id] = data;\r\n var car = createSprite(\"gold.png\");\r\n cars[data.id] = car;\r\n }\r\n})\r\n\r\nwhen('keydown','enter',function(){\r\n if(hostid != ID){\r\n return;\r\n }\r\n startGame();\r\n DB.broadcast('startGame');\r\n})\r\nDB.onMessage('startGame',startGame);\r\n\r\n\r\n\r\n\r\nfunction startGame(){\r\n car.moveTo(border);\r\n car.direction = 45;\r\n users[ID].status = 1;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n// var target_1 = createSprite(\"target.jpg\");\r\n// var target_2 = createSprite(\"target.jpg\");\r\n// var border = createSprite(\"border.png\");\r\n// var car = createSprite(\"red.png\");\r\n// target_2.y = -260;\r\n\r\n// var objects =[border,car,target_1,target_2];\r\n// var speed = 0;\r\n// var status = 0;\r\n\r\n// //L6\r\n// var Id = Date.now();\r\n// var hostid;\r\n// var name = prompt(\"名稱?\");\r\n// var users ={};\r\n// var cars ={};\r\n// users[Id] = {\r\n// \"id\":Id,\r\n// \"name\":name,\r\n// \"offsetX\":0,\r\n// \"offsetY\":0,\r\n// \"direction\":0,\r\n// \"status\":0,\r\n// \"updateTime\":0\r\n// }\r\n// cars[Id] = car;\r\n\r\n// forever(function(){\r\n \r\n// //實作2\r\n// if(key.right){\r\n// car.direction += 3;\r\n// }\r\n// //只demo right\r\n// if(key.left){\r\n// car.direction -= 3;\r\n// }\r\n// if (car.touched(border)) {\r\n// speed = 0.3;\r\n// }\r\n// if (speed \u003c 8) {\r\n// speed += 0.1;\r\n// }\r\n// //L7\r\n// if(users[Id].status == 1){\r\n// car.stepForward(speed);\r\n// }\r\n// //實作3\r\n// var offsetX = car.x - 320;\r\n// var offsetY = car.y - 240;\r\n// for(var i=0;i\u003cobjects.length;i++){\r\n// //objects[i].stepForward(3); As a wrong demo\r\n// objects[i].move(-offsetX,-offsetY )\r\n// }\r\n// //c1\r\n// if(car.touched(target_1)){\r\n// status = 1;\r\n// }\r\n// if(status==1\u0026\u0026car.touched(target_2)){\r\n// stop();\r\n// }\r\n\r\n\r\n\r\n// });\r\n// //L6\r\n// forever(function(){\r\n// users[Id].updateTime = Date.now();\r\n// users[Id].offsetX = car.x - border.x;\r\n// users[Id].offsetY = car.y - border.y;\r\n// users[Id].direction = car.direction;\r\n\r\n// DB.broadcast(\"update\",users[Id]);\r\n// //L7\r\n// hostid = Id;\r\n// for (var id in users) {\r\n// if (id \u003c hostid) {\r\n// hostid = id;\r\n// }\r\n// }\r\n \r\n// var h = 0;\r\n// for(var id in users){\r\n// h++;\r\n// //L7\r\n// if (id == hostid) {\r\n// print(users[id].name + '(房主)', 10, 30*h, 'red');\r\n// } else {\r\n// print(users[id].name, 10, 30*h, 'red');\r\n// }\r\n// cars[id].x = users[id].offsetX + border.x;\r\n// cars[id].y = users[id].offsetY + border.y;\r\n// cars[id].direction = users[id].direction;\r\n// if(Date.now() \u003e users[id].updateTime+5000){\r\n// cars[id].destroy();\r\n// delete cars[id];\r\n// delete users[id];\r\n// }\r\n// }\r\n// });\r\n\r\n\r\n// //車尾燈 \r\n// forever(function(){\r\n// //L6\r\n// for(var i in cars){\r\n// var car = cars[i];\r\n// //實作5\r\n// var fire = createSprite(\"red.png\");\r\n// fire.moveTo(car);\r\n// fire.direction = car.direction;\r\n// //實作6\r\n// fire.forever(function(){\r\n// this.scale -= 0.03;\r\n// this.opacity -= 0.03;\r\n// if(this.scale\u003c0 || this.opacity\u003c0){\r\n// this.destroy();\r\n// }\r\n// });\r\n// }\r\n// objects.push(fire);\r\n// });\r\n\r\n// //L6\r\n// DB.onMessage(\"update\",function(data){\r\n// if(users[data.id]){\r\n// users[data.id] = data;\r\n// }else{\r\n// users[data.id] = data;\r\n// var car = createSprite(\"red.png\");\r\n// cars[data.id] = car;\r\n// }\r\n// })\r\n\r\n// //L7\r\n// when('keydown', 'enter', function() {\r\n// if (hostid != Id) {\r\n// return;\r\n// }\r\n// startGame();\r\n// DB.broadcast('startGame');\r\n// });\r\n// //L7\r\n// function startGame () {\r\n// car.moveTo(border);\r\n// car.direction = 45;\r\n// users[Id].status = 1;\r\n// target = target_2;\r\n// round = 0;\r\n// }\r\n// DB.onMessage('startGame', startGame);\r\n\r\n","created_at":"2017-03-01T20:52:04.729+08:00","updated_at":"2019-11-08T11:10:59.392+08:00","name":"多人賽車","language":"javascript","screenshot":{"url":"https://cdn9.koding.school/uploads/project/screenshot/18149/167af5602be6e303fcd8f8b6b917080f.jpg"},"parent_id":17296,"plugin":"","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":248,"hashid":"4y3sgjk9","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":370142,"file_name":"red.png","project_id":18149,"asset_id":40459,"created_at":"2017-12-21T17:43:07.640+08:00","updated_at":"2017-12-21T17:43:07.640+08:00"},{"id":370143,"file_name":"gold.png","project_id":18149,"asset_id":40460,"created_at":"2017-12-21T17:43:07.649+08:00","updated_at":"2017-12-21T17:43:07.649+08:00"},{"id":370144,"file_name":"blue.png","project_id":18149,"asset_id":40461,"created_at":"2017-12-21T17:43:07.652+08:00","updated_at":"2017-12-21T17:43:07.652+08:00"},{"id":370145,"file_name":"border.png","project_id":18149,"asset_id":40462,"created_at":"2017-12-21T17:43:07.654+08:00","updated_at":"2017-12-21T17:43:07.654+08:00"},{"id":370146,"file_name":"target.jpg","project_id":18149,"asset_id":40463,"created_at":"2017-12-21T17:43:07.656+08:00","updated_at":"2017-12-21T17:43:07.656+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
繁中
简中
English
日本語
1:1:1
1:1
全寬
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦