{"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":"/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":375,"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"}]
Orange Apple Learning Platform
My Projects
View Project Page
Export
Remix
Import
Delete
Download Android APP (APK)
Screenshot
繁中
简中
English
日本語
1:1:1
1:1
Full Width
Scan the QRCode below with your phone to install
Or you can
download APK
to this computer
Scan the QRCode below with your phone to install
Or you can
download APK
to this computer