{"id":220567,"student_id":16,"content":"setBackdrop(\"bg.jpg\");\n\nvar nextShape = createSprite('s_0.png', 's_1.png', 's_2.png', 's_3.png', 's_4.png', 's_5.png', 's_6.png');\nvar gameoverText = createSprite('gameover.png');\nnextShape.moveTo(1050, 310);\ngameoverText.hidden = true;\ngameoverText.layer = 1;\n\nvar moving = []; //存放移動的磚塊\nvar fixed = []; //存放固定的磚塊\nvar center; //移動磚塊的中心點\nvar score = 0; //分數\nvar clock = 0; //紀錄遊戲迴圈執行次數\nvar level = 0; //等級\nvar next = 0; //下一個要出現的磚塊種類\n\nvar shapeList = [\n [[1, 0], [1, 1], [1, 2], [1, 3]], //長條形\n [[1, 0], [1, 1], [1, 2], [2, 2]], //L形\n [[1, 0], [1, 1], [1, 2], [0, 2]], //反L形\n [[1, 0], [1, 1], [0, 1], [2, 1]], //山形\n [[1, 0], [1, 1], [0, 0], [2, 1]], //Z形\n [[1, 0], [1, 1], [0, 1], [2, 0]], //反Z形\n [[1, 0], [1, 1], [0, 0], [0, 1]], //正方形\n]\n\non('keydown', 'up', turnRight); //當按上鍵\non('keydown', 'down', moveToEnd); //當按下鍵\n// on('keydown', 'up', moveUp); //當按上鍵\n// on('keydown', 'down', moveDown); //當按下鍵\non('keydown', 'right', moveRight); //當按右鍵\non('keydown', 'left', moveLeft); //當按左鍵\n\nforever(loop); //重複不斷執行遊戲迴圈\n\n//loadBlocks();\n\n// 遊戲主迴圈\nfunction loop () {\n drawText(score, 93, 664, 'black', 40);\n drawText(level, 95, 812, 'black', 40);\n \n // checkLines ();\n checkGameover();\n \n clock++;\n if (clock % (50 - level * 3) == 0) moveDown();\n}\n\n// 載入磚塊\nfunction loadBlocks () {\n var shape = shapeList[next];\n for (var i = 0; i \u003c 4; i++) {\n var b = createSprite('b_0.png', 'b_1.png', 'b_2.png', 'b_3.png', 'b_4.png', 'b_5.png', 'b_6.png')\n b.costumeId = next;\n b.x = shape[i][0] * 60 + 510;\n b.y = shape[i][1] * 60 - 150;\n moving.push(b);\n center = moving[1];\n }\n next = Math.floor(Math.random()*7);\n nextShape.costumeId = next;\n}\n\n\n//向上移動\nfunction moveUp () {\n for (var i = 0; i \u003c moving.length; i++) {\n moving[i].y -= 60;\n }\n}\n\nfunction moveDown () {\n var isTouch = false;\n for (var i = 0; i \u003c moving.length; i++) {\n moving[i].y += 60;\n if (moving[i].y \u003e 900 || moving[i].touched(fixed)) {\n isTouch = true;\n }\n }\n if (isTouch) {\n moveUp();\n fixed = fixed.concat(moving);\n moving.length = 0;\n loadBlocks();\n }\n return isTouch;\n}\n\nfunction moveRight () {\n var isTouch = false;\n for (var i = 0; i \u003c moving.length; i++) {\n moving[i].x += 60\n if (moving[i].x \u003e 900 || moving[i].touched(fixed)) {\n isTouch = true;\n }\n }\n if (isTouch) moveLeft();\n}\n\nfunction moveLeft () {\n var isTouch = false;\n for (var i = 0; i \u003c moving.length; i++) {\n moving[i].x -= 60\n if (moving[i].x \u003c 300 || moving[i].touched(fixed)) {\n isTouch = true;\n }\n }\n if (isTouch) moveRight();\n}\n\n//逆時針選轉\nfunction turnRight () {\n var isTouch = false;\n for (var i = 0; i \u003c moving.length; i++) {\n var b = moving[i];\n var d = b.distanceTo(center)\n b.toward(center)\n b.stepForward(d)\n b.direction += 90;\n b.stepForward(d)\n b.direction = 90;\n if (moving[i].x \u003c 300 || moving[i].x \u003e 900 || moving[i].touched(fixed)) {\n isTouch = true;\n }\n }\n if (isTouch) turnLeft();\n}\n\n//順時針選轉\nfunction turnLeft () {\n var isTouch = false;\n for (var i = 0; i \u003c moving.length; i++) {\n var b = moving[i];\n var d = b.distanceTo(center)\n b.toward(center)\n b.stepForward(d)\n b.direction -= 90;\n b.stepForward(d)\n b.direction = 90;\n if (moving[i].x \u003c 300 || moving[i].x \u003e 900) {\n isTouch = true;\n }\n }\n if (isTouch) turnRight();\n}\n\n//檢查是否佔滿一行\nfunction checkLines () {\n var line = 0;\n var count = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n for (var i = 0; i \u003c fixed.length; i++) {\n f = Math.floor(fixed[i].y / 60)\n count[f] += 1;\n \n }\n for (var i = 0; i \u003c 15; i++) {\n drawText(count[i], 260, 60*i, 'white', 40)\n if (count[i] == 10) {\n eraseLine(i);\n line++;\n }\n if (line == 1) score += 10;\n if (line == 2) score += 50;\n if (line == 3) score += 100;\n if (line == 4) score += 300;\n }\n level = Math.floor(score / 100);\n if (level \u003e 10) level = 10;\n}\n\n// 清除一行\nfunction eraseLine (f) {\n for (var i = 0; i \u003c fixed.length; i++) {\n var floor = Math.floor(fixed[i].y / 60)\n if (floor == f) fixed[i].y = 1000;\n if (floor \u003c f) fixed[i].y += 60;\n }\n}\n\n// 檢查遊戲是否結束\nfunction checkGameover () {\n for (var i = 0; i \u003c fixed.length; i++) {\n if (fixed[i].y \u003c 60) {\n stop();\n gameoverText.hidden = false;\n }\n }\n}\n\n// 快速向下移動\nfunction moveToEnd () {\n var isTouch = false;\n while(isTouch == false) {\n isTouch = moveDown();\n }\n}","created_at":"2021-01-20T11:03:02.609+08:00","updated_at":"2021-01-22T22:44:54.295+08:00","name":"俄羅斯方塊完整版","language":"javascript","screenshot":{"url":"https://cdn2.koding.school/uploads/project/screenshot/220567/cc6df27c2739dc3f1bf8ebe48ce6b0bc.jpg"},"parent_id":191860,"plugin":"Game.set({width: 1200, height: 900})","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":140,"hashid":"jzmsek59z","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":3916801,"file_name":"b_4.png","project_id":220567,"asset_id":262205,"created_at":"2021-01-20T11:03:02.617+08:00","updated_at":"2021-01-20T11:03:02.617+08:00"},{"id":3916802,"file_name":"b_5.png","project_id":220567,"asset_id":262206,"created_at":"2021-01-20T11:03:02.619+08:00","updated_at":"2021-01-20T11:03:02.619+08:00"},{"id":3916803,"file_name":"b_0.png","project_id":220567,"asset_id":262201,"created_at":"2021-01-20T11:03:02.620+08:00","updated_at":"2021-01-20T11:03:02.620+08:00"},{"id":3916804,"file_name":"b_1.png","project_id":220567,"asset_id":262202,"created_at":"2021-01-20T11:03:02.621+08:00","updated_at":"2021-01-20T11:03:02.621+08:00"},{"id":3916809,"file_name":"b_2.png","project_id":220567,"asset_id":262203,"created_at":"2021-01-20T11:03:02.629+08:00","updated_at":"2021-01-20T11:03:02.629+08:00"},{"id":3916810,"file_name":"b_3.png","project_id":220567,"asset_id":262204,"created_at":"2021-01-20T11:03:02.630+08:00","updated_at":"2021-01-20T11:03:02.630+08:00"},{"id":3916811,"file_name":"b_6.png","project_id":220567,"asset_id":262207,"created_at":"2021-01-20T11:03:02.631+08:00","updated_at":"2021-01-20T11:03:02.631+08:00"},{"id":3916812,"file_name":"bg.jpg","project_id":220567,"asset_id":262208,"created_at":"2021-01-20T11:03:02.632+08:00","updated_at":"2021-01-20T11:03:02.632+08:00"},{"id":3916813,"file_name":"gameover.png","project_id":220567,"asset_id":189062,"created_at":"2021-01-20T11:03:02.633+08:00","updated_at":"2021-01-20T11:03:02.633+08:00"},{"id":3917264,"file_name":"s_5.png","project_id":220567,"asset_id":306882,"created_at":"2021-01-20T17:52:03.995+08:00","updated_at":"2021-01-20T17:52:03.995+08:00"},{"id":3917265,"file_name":"s_0.png","project_id":220567,"asset_id":262209,"created_at":"2021-01-20T17:52:03.996+08:00","updated_at":"2021-01-20T17:52:03.996+08:00"},{"id":3917266,"file_name":"s_6.png","project_id":220567,"asset_id":262215,"created_at":"2021-01-20T17:52:04.708+08:00","updated_at":"2021-01-20T17:52:04.708+08:00"},{"id":3917260,"file_name":"s_2.png","project_id":220567,"asset_id":306878,"created_at":"2021-01-20T17:52:00.691+08:00","updated_at":"2021-01-20T17:52:00.691+08:00"},{"id":3917261,"file_name":"s_1.png","project_id":220567,"asset_id":306879,"created_at":"2021-01-20T17:52:00.692+08:00","updated_at":"2021-01-20T17:52:00.692+08:00"},{"id":3917262,"file_name":"s_3.png","project_id":220567,"asset_id":306880,"created_at":"2021-01-20T17:52:02.384+08:00","updated_at":"2021-01-20T17:52:02.384+08:00"},{"id":3917263,"file_name":"s_4.png","project_id":220567,"asset_id":306881,"created_at":"2021-01-20T17:52:02.386+08:00","updated_at":"2021-01-20T17:52:02.386+08:00"}]
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
繁中
简中
English
日本語
1:1:1
1:1
全寬
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦