{"id":233753,"student_id":10,"content":"let bg = createSprite(\"bg.png\");\nlet player = createSprite(\"player.png\");\nlet laser = createSprite(\"laser_b.png\");\nlet master = createSprite(\"master_0.png\", \"master_1.png\", \"master_2.png\");\nlet info = createSprite(\"info.png\");\nlet lasers = [];\nlet enemies = [];\nlet clock = 0;\nlet level = 0;\nlet count = 0;\nlet vx = 3;\nlet playerLife = 10;\nlet masterLife = 10;\n\nmaster.moveTo(100, 100);\nplayer.moveTo(600, 800);\nlaser.direction = 0;\nlaser.hidden = true;\n// player.direction = 0;\ncreateSound('bgm.mp3');\n\n\nplayer.scale = 0.6;\nmaster.scale = 1.2;\n\n\nfunction gameloop () {\n if (info.hidden) {\n updateInfo();\n updatePlayer();\n updatePlayerLaser();\n updateMaster();\n updateMasterLaser();\n updateEnemise();\n updateBackgroud();\n }\n if (key.space \u0026\u0026 info.hidden == false) {\n info.hidden = true;\n initLevel();\n }\n if (level == 4) st \n}\n\nfunction initLevel () {\n level += 1;\n count = 0;\n clock = 0;\n master.x = 100;\n master.costumeId = level - 1;\n master.hidden = false;\n masterLife = 10;\n for (let x = 0; x \u003c 10; x++) {\n for (let y = 0; y \u003c level; y++) {\n let e = createSprite(\"enemy_0.png\", \"enemy_1.png\", \"enemy_2.png\");\n e.costumeId = level - 1;\n e.x = x * 100 + 50;\n e.y = y * 100 + 200;\n enemies.push(e);\n }\n }\n}\n\nfunction updateInfo () {\n clock++;\n drawText('life: ' + masterLife, 10, 10, 'red', 30);\n drawText('life: ' + playerLife, 10, 850, 'lightblue', 30);\n drawText('count: ' + count, 150, 850, 'white', 30);\n drawText('level: ' + level, 310, 850, 'white', 30);\n if (master.hidden \u0026\u0026 count == level*10) {\n if (level == 3) {\n stop();\n createSprite('completed.png')\n }\n else initLevel();\n }\n if (playerLife \u003c= 0) {\n stop();\n createSprite('failed.png')\n }\n}\n\n// 更新玩家\nfunction updatePlayer () {\n if (key.right) player.x += 10;\n if (key.left) player.x -= 10;\n if (key.up \u0026\u0026 laser.hidden) {\n laser.moveTo(player);\n laser.hidden = false;\n createSound('laser.mp3')\n }\n}\n\n// 移動玩家的子彈\nfunction updatePlayerLaser () {\n laser.stepForward(15);\n if (laser.y \u003c 0) {\n laser.hidden = true;\n }\n if (laser.touched(master)) {\n masterLife -= 1;\n laser.hidden = true;\n createSound('boom.mp3');\n if (masterLife \u003c= 0) {\n master.hidden = true;\n }\n }\n}\n\n//更新魔王\nfunction updateMaster() {\n master.x += vx;\n if (master.x \u003e 1200 || master.x \u003c 0) vx = -vx;\n if (Math.random() \u003c 0.02 \u0026\u0026 master.hidden == false) {\n enemyFire(master);\n if (level \u003e= 2) enemyFire(master).x += 50;\n }\n if (level \u003e= 3 \u0026\u0026 Math.random() \u003c 0.01) {\n diffusionFire(master);\n }\n}\n\n// 更新敵人的子彈\nfunction updateMasterLaser () {\n for (let i=0; i \u003c lasers.length; i++) {\n let laser = lasers[i];\n laser.stepForward(5);\n if (laser.touched(player)) {\n laser.destroy();\n playerLife -= 1;\n createSound('boom.mp3')\n }\n }\n}\n\n// 更新敵人的位置\nfunction updateEnemise () {\n for (let i = 0; i \u003c enemies.length; i++) {\n let e = enemies[i];\n if (clock % 440 \u003c 200) e.x += 1;\n else if (clock % 440 \u003c 220) e.y += 1;\n else if (clock % 440 \u003c 420) e.x -= 1;\n else e.y += 1;\n if (e.touched(laser)) {\n e.destroy();\n laser.hidden = true;\n diffusionFire(e);\n count += 1;\n createSound('boom.mp3')\n }\n }\n}\n\n// 敵人發射子彈\nfunction enemyFire (enemy) {\n let laser = createSprite('laser_r.png');\n laser.moveTo(enemy);\n laser.direction = 180;\n lasers.push(laser);\n return laser;\n}\n\n// 敵人發射發散的子彈\nfunction diffusionFire (enemy) {\n for (let i=0; i \u003c 8; i++) {\n let laser = createSprite('laser_r.png');\n laser.moveTo(enemy);\n laser.direction = i * 45;\n lasers.push(laser);\n }\n}\n\nfunction updateBackgroud() {\n bg.y += 0.5;\n if (bg.y \u003e 900) bg.y -= 900;\n}\n\nforever(gameloop);","created_at":"2021-03-10T10:17:42.849+08:00","updated_at":"2021-11-28T16:27:55.419+08:00","name":"太空侵略者","language":"javascript","screenshot":{"url":"https://cdn8.koding.school/uploads/project/screenshot/233753/b230fa3bcc0fafe3f75ee57f07ce202f.jpg"},"parent_id":2,"plugin":"Game.set({\n width: 1200, height: 900\n})","description":null,"note":null,"status":"public","like_student_ids":[],"is_featured":false,"views":231,"hashid":"vngsynvy5","is_content_changed":false,"review_status":"unsubmitted","submitted_at":null,"reviewed_at":null,"advise":null,"is_deleted":false}
[{"id":4218991,"file_name":"laser.mp3","project_id":233753,"asset_id":280652,"created_at":"2021-03-10T14:07:59.714+08:00","updated_at":"2021-03-10T14:07:59.714+08:00"},{"id":4218990,"file_name":"boom.mp3","project_id":233753,"asset_id":280653,"created_at":"2021-03-10T14:07:58.635+08:00","updated_at":"2021-03-10T14:07:58.635+08:00"},{"id":4218992,"file_name":"bgm.mp3","project_id":233753,"asset_id":280651,"created_at":"2021-03-10T14:08:03.969+08:00","updated_at":"2021-03-10T14:08:03.969+08:00"},{"id":4339785,"file_name":"bg.png","project_id":233753,"asset_id":329759,"created_at":"2021-03-22T15:05:40.541+08:00","updated_at":"2021-03-22T15:05:40.541+08:00"},{"id":4339786,"file_name":"completed.png","project_id":233753,"asset_id":329760,"created_at":"2021-03-22T15:05:40.543+08:00","updated_at":"2021-03-22T15:05:40.543+08:00"},{"id":4339789,"file_name":"enemy_2.png","project_id":233753,"asset_id":329763,"created_at":"2021-03-22T15:05:41.909+08:00","updated_at":"2021-03-22T15:05:41.909+08:00"},{"id":4339790,"file_name":"failed.png","project_id":233753,"asset_id":329764,"created_at":"2021-03-22T15:05:41.910+08:00","updated_at":"2021-03-22T15:05:41.910+08:00"},{"id":4339794,"file_name":"master_0.png","project_id":233753,"asset_id":329768,"created_at":"2021-03-22T15:05:43.069+08:00","updated_at":"2021-03-22T15:05:43.069+08:00"},{"id":4339797,"file_name":"player.png","project_id":233753,"asset_id":329771,"created_at":"2021-03-22T15:05:44.110+08:00","updated_at":"2021-03-22T15:05:44.110+08:00"},{"id":4339791,"file_name":"info.png","project_id":233753,"asset_id":329765,"created_at":"2021-03-22T15:05:42.556+08:00","updated_at":"2021-03-22T15:05:42.556+08:00"},{"id":4339798,"file_name":"laser_b.png","project_id":233753,"asset_id":329772,"created_at":"2021-03-22T15:07:13.165+08:00","updated_at":"2021-03-22T15:07:13.165+08:00"},{"id":4339799,"file_name":"laser_r.png","project_id":233753,"asset_id":329773,"created_at":"2021-03-22T15:07:13.167+08:00","updated_at":"2021-03-22T15:07:13.167+08:00"},{"id":4339787,"file_name":"enemy_0.png","project_id":233753,"asset_id":329761,"created_at":"2021-03-22T15:05:41.042+08:00","updated_at":"2021-03-22T15:05:41.042+08:00"},{"id":4339788,"file_name":"enemy_1.png","project_id":233753,"asset_id":329762,"created_at":"2021-03-22T15:05:41.043+08:00","updated_at":"2021-03-22T15:05:41.043+08:00"},{"id":4339795,"file_name":"master_1.png","project_id":233753,"asset_id":329769,"created_at":"2021-03-22T15:05:43.628+08:00","updated_at":"2021-03-22T15:05:43.628+08:00"},{"id":4339796,"file_name":"master_2.png","project_id":233753,"asset_id":329770,"created_at":"2021-03-22T15:05:43.629+08:00","updated_at":"2021-03-22T15:05:43.629+08:00"}]
橘蘋學習平台
橘蘋學習平台
我的作品
檢視專案頁
匯出
複製
匯入
刪除
下載 Android APP (APK)
截圖
1:1:1
1:1
full
幫助
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦
用手機掃描下方 QRCode 進行安裝
或您也可以
下載 APK
到這台電腦