{"id":1714,"date":"2025-05-03T18:00:18","date_gmt":"2025-05-03T10:00:18","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/"},"modified":"2025-05-03T18:00:18","modified_gmt":"2025-05-03T10:00:18","slug":"%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/","title":{"rendered":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f"},"content":{"rendered":"<div class=\"article_content clearfix\" id=\"article_content\">\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/kdoc_html_views-1a98987dfd.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/ck_htmledit_views-704d5b9767.css\" rel=\"stylesheet\"\/>\n<div class=\"markdown_views prism-atom-one-light\" id=\"content_views\">\n  <svg style=\"display: none;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n   <path d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" stroke-linecap=\"round\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\">\n   <\/path>\n  <\/svg><\/p>\n<p>\n   \u4ee5\u4e0b\u662f\u5b8c\u6574\u7684\u3001\u53ef\u76f4\u63a5\u8fd0\u884c\u7684\u6700\u7ec8\u7248\u4ee3\u7801\n  <\/p>\n<pre><code class=\"prism language-html\"><span class=\"token doctype\"><span class=\"token punctuation\">&lt;!<\/span><span class=\"token doctype-tag\">DOCTYPE<\/span> <span class=\"token name\">html<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>html<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>head<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>title<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\u7a81\u51fb\u884c\u52a8 - \u7ec8\u6781\u5b8c\u6574\u7248<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>title<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>style<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token style\"><span class=\"token language-css\">\n        <span class=\"token selector\">body<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">margin<\/span><span class=\"token punctuation\">:<\/span> 0<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">overflow<\/span><span class=\"token punctuation\">:<\/span> hidden<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">background<\/span><span class=\"token punctuation\">:<\/span> #1a1a1a<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">display<\/span><span class=\"token punctuation\">:<\/span> flex<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">justify-content<\/span><span class=\"token punctuation\">:<\/span> center<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">align-items<\/span><span class=\"token punctuation\">:<\/span> center<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">height<\/span><span class=\"token punctuation\">:<\/span> 100vh<span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token selector\">#gameCanvas<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">border<\/span><span class=\"token punctuation\">:<\/span> 2px solid #4CAF50<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">border-radius<\/span><span class=\"token punctuation\">:<\/span> 5px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">box-shadow<\/span><span class=\"token punctuation\">:<\/span> 0 0 20px <span class=\"token function\">rgba<\/span><span class=\"token punctuation\">(<\/span>76<span class=\"token punctuation\">,<\/span> 175<span class=\"token punctuation\">,<\/span> 80<span class=\"token punctuation\">,<\/span> 0.3<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token selector\">#hud<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">position<\/span><span class=\"token punctuation\">:<\/span> absolute<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">top<\/span><span class=\"token punctuation\">:<\/span> 20px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">left<\/span><span class=\"token punctuation\">:<\/span> 20px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">color<\/span><span class=\"token punctuation\">:<\/span> #fff<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">font-family<\/span><span class=\"token punctuation\">:<\/span> Arial<span class=\"token punctuation\">,<\/span> sans-serif<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">text-shadow<\/span><span class=\"token punctuation\">:<\/span> 2px 2px 4px <span class=\"token function\">rgba<\/span><span class=\"token punctuation\">(<\/span>0<span class=\"token punctuation\">,<\/span>0<span class=\"token punctuation\">,<\/span>0<span class=\"token punctuation\">,<\/span>0.5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token selector\">#powerup<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">position<\/span><span class=\"token punctuation\">:<\/span> absolute<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">top<\/span><span class=\"token punctuation\">:<\/span> 60px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">left<\/span><span class=\"token punctuation\">:<\/span> 20px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">color<\/span><span class=\"token punctuation\">:<\/span> #FFD700<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">font-family<\/span><span class=\"token punctuation\">:<\/span> Arial<span class=\"token punctuation\">,<\/span> sans-serif<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">text-shadow<\/span><span class=\"token punctuation\">:<\/span> 2px 2px 4px <span class=\"token function\">rgba<\/span><span class=\"token punctuation\">(<\/span>0<span class=\"token punctuation\">,<\/span>0<span class=\"token punctuation\">,<\/span>0<span class=\"token punctuation\">,<\/span>0.5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token selector\">.apple-text<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">color<\/span><span class=\"token punctuation\">:<\/span> #FF4444<span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n        <span class=\"token selector\">#restart<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token property\">display<\/span><span class=\"token punctuation\">:<\/span> none<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">position<\/span><span class=\"token punctuation\">:<\/span> absolute<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">padding<\/span><span class=\"token punctuation\">:<\/span> 15px 30px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">font-size<\/span><span class=\"token punctuation\">:<\/span> 20px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">background<\/span><span class=\"token punctuation\">:<\/span> #4CAF50<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">color<\/span><span class=\"token punctuation\">:<\/span> white<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">border<\/span><span class=\"token punctuation\">:<\/span> none<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">border-radius<\/span><span class=\"token punctuation\">:<\/span> 5px<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">cursor<\/span><span class=\"token punctuation\">:<\/span> pointer<span class=\"token punctuation\">;<\/span>\n            <span class=\"token property\">box-shadow<\/span><span class=\"token punctuation\">:<\/span> 0 0 15px <span class=\"token function\">rgba<\/span><span class=\"token punctuation\">(<\/span>76<span class=\"token punctuation\">,<\/span> 175<span class=\"token punctuation\">,<\/span> 80<span class=\"token punctuation\">,<\/span> 0.5<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>style<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>head<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>body<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>div<\/span> <span class=\"token attr-name\">id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=<\/span><span class=\"token punctuation\">\"<\/span>hud<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\u5f97\u5206: <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>span<\/span> <span class=\"token attr-name\">id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=<\/span><span class=\"token punctuation\">\"<\/span>score<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>0<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>span<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>div<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>div<\/span> <span class=\"token attr-name\">id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=<\/span><span class=\"token punctuation\">\"<\/span>powerup<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>div<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>canvas<\/span> <span class=\"token attr-name\">id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=<\/span><span class=\"token punctuation\">\"<\/span>gameCanvas<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>canvas<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>button<\/span> <span class=\"token attr-name\">id<\/span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=<\/span><span class=\"token punctuation\">\"<\/span>restart<span class=\"token punctuation\">\"<\/span><\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\u91cd\u65b0\u5f00\u59cb<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>button<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;<\/span>script<\/span><span class=\"token punctuation\">&gt;<\/span><\/span><span class=\"token script\"><span class=\"token language-javascript\">\n<span class=\"token keyword\">const<\/span> canvas <span class=\"token operator\">=<\/span> document<span class=\"token punctuation\">.<\/span><span class=\"token function\">getElementById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'gameCanvas'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">const<\/span> ctx <span class=\"token operator\">=<\/span> canvas<span class=\"token punctuation\">.<\/span><span class=\"token function\">getContext<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'2d'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">const<\/span> scoreElement <span class=\"token operator\">=<\/span> document<span class=\"token punctuation\">.<\/span><span class=\"token function\">getElementById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'score'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">const<\/span> powerupElement <span class=\"token operator\">=<\/span> document<span class=\"token punctuation\">.<\/span><span class=\"token function\">getElementById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'powerup'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">const<\/span> restartButton <span class=\"token operator\">=<\/span> document<span class=\"token punctuation\">.<\/span><span class=\"token function\">getElementById<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'restart'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token comment\">\/\/ \u6e38\u620f\u914d\u7f6e<\/span>\ncanvas<span class=\"token punctuation\">.<\/span>width <span class=\"token operator\">=<\/span> <span class=\"token number\">800<\/span><span class=\"token punctuation\">;<\/span>\ncanvas<span class=\"token punctuation\">.<\/span>height <span class=\"token operator\">=<\/span> <span class=\"token number\">600<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token keyword\">const<\/span> config <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    playerSpeed<span class=\"token operator\">:<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">,<\/span>\n    bulletSpeed<span class=\"token operator\">:<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">,<\/span>\n    tripleShotDuration<span class=\"token operator\">:<\/span> <span class=\"token number\">5000<\/span><span class=\"token punctuation\">,<\/span>\n    fullCircleDuration<span class=\"token operator\">:<\/span> <span class=\"token number\">5000<\/span><span class=\"token punctuation\">,<\/span>\n    bulletCount<span class=\"token operator\">:<\/span> <span class=\"token number\">12<\/span><span class=\"token punctuation\">,<\/span>\n    enemy<span class=\"token operator\">:<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        size<span class=\"token operator\">:<\/span> <span class=\"token number\">25<\/span><span class=\"token punctuation\">,<\/span>\n        speed<span class=\"token operator\">:<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span>\n        baseSpawnRate<span class=\"token operator\">:<\/span> <span class=\"token number\">60<\/span><span class=\"token punctuation\">,<\/span>\n        color<span class=\"token operator\">:<\/span> <span class=\"token string\">'#FF5252'<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token comment\">\/\/ \u6e38\u620f\u5bf9\u8c61<\/span>\n<span class=\"token keyword\">let<\/span> player <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    x<span class=\"token operator\">:<\/span> canvas<span class=\"token punctuation\">.<\/span>width<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span>\n    y<span class=\"token operator\">:<\/span> canvas<span class=\"token punctuation\">.<\/span>height<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span>\n    size<span class=\"token operator\">:<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">,<\/span>\n    color<span class=\"token operator\">:<\/span> <span class=\"token string\">'#4CAF50'<\/span>\n<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token keyword\">let<\/span> bullets <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> enemies <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> powerups <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> score <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> gameActive <span class=\"token operator\">=<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> tripleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> fullCircleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> powerupTimer <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> appleTimer <span class=\"token operator\">=<\/span> <span class=\"token keyword\">null<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">let<\/span> mouse <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span> x<span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> y<span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span> <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token comment\">\/\/ \u4e8b\u4ef6\u76d1\u542c<\/span>\ncanvas<span class=\"token punctuation\">.<\/span><span class=\"token function\">addEventListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'mousemove'<\/span><span class=\"token punctuation\">,<\/span> updateMousePosition<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\ncanvas<span class=\"token punctuation\">.<\/span><span class=\"token function\">addEventListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'click'<\/span><span class=\"token punctuation\">,<\/span> shoot<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\nrestartButton<span class=\"token punctuation\">.<\/span><span class=\"token function\">addEventListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'click'<\/span><span class=\"token punctuation\">,<\/span> initGame<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\nwindow<span class=\"token punctuation\">.<\/span><span class=\"token function\">addEventListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'keydown'<\/span><span class=\"token punctuation\">,<\/span> handleKeyDown<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\nwindow<span class=\"token punctuation\">.<\/span><span class=\"token function\">addEventListener<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'keyup'<\/span><span class=\"token punctuation\">,<\/span> handleKeyUp<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">initGame<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">=<\/span> canvas<span class=\"token punctuation\">.<\/span>width<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>\n    player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">=<\/span> canvas<span class=\"token punctuation\">.<\/span>height<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>\n    bullets <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    enemies <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    powerups <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    score <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    tripleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n    fullCircleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n    gameActive <span class=\"token operator\">=<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n    restartButton<span class=\"token punctuation\">.<\/span>style<span class=\"token punctuation\">.<\/span>display <span class=\"token operator\">=<\/span> <span class=\"token string\">'none'<\/span><span class=\"token punctuation\">;<\/span>\n    powerupElement<span class=\"token punctuation\">.<\/span>innerHTML <span class=\"token operator\">=<\/span> <span class=\"token string\">''<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">updateScore<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">gameLoop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">gameLoop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>gameActive<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\n    \n    ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'#1a1a1a'<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fillRect<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> canvas<span class=\"token punctuation\">.<\/span>width<span class=\"token punctuation\">,<\/span> canvas<span class=\"token punctuation\">.<\/span>height<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    \n    <span class=\"token function\">handleMovement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">updatePlayer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">updateBullets<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">updateEnemies<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">updatePowerups<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">checkCollisions<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">checkPowerupCollisions<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    \n    <span class=\"token function\">requestAnimationFrame<\/span><span class=\"token punctuation\">(<\/span>gameLoop<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">handleMovement<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>keys<span class=\"token punctuation\">.<\/span>w <span class=\"token operator\">||<\/span> keys<span class=\"token punctuation\">.<\/span>ArrowUp<span class=\"token punctuation\">)<\/span> player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-=<\/span> config<span class=\"token punctuation\">.<\/span>playerSpeed<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>keys<span class=\"token punctuation\">.<\/span>s <span class=\"token operator\">||<\/span> keys<span class=\"token punctuation\">.<\/span>ArrowDown<span class=\"token punctuation\">)<\/span> player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">+=<\/span> config<span class=\"token punctuation\">.<\/span>playerSpeed<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>keys<span class=\"token punctuation\">.<\/span>a <span class=\"token operator\">||<\/span> keys<span class=\"token punctuation\">.<\/span>ArrowLeft<span class=\"token punctuation\">)<\/span> player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-=<\/span> config<span class=\"token punctuation\">.<\/span>playerSpeed<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>keys<span class=\"token punctuation\">.<\/span>d <span class=\"token operator\">||<\/span> keys<span class=\"token punctuation\">.<\/span>ArrowRight<span class=\"token punctuation\">)<\/span> player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">+=<\/span> config<span class=\"token punctuation\">.<\/span>playerSpeed<span class=\"token punctuation\">;<\/span>\n    \n    player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">min<\/span><span class=\"token punctuation\">(<\/span>canvas<span class=\"token punctuation\">.<\/span>width <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span>player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">min<\/span><span class=\"token punctuation\">(<\/span>canvas<span class=\"token punctuation\">.<\/span>height <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updatePlayer<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">let<\/span> color <span class=\"token operator\">=<\/span> <span class=\"token string\">'#4CAF50'<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>tripleShot<span class=\"token punctuation\">)<\/span> color <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FFD700'<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>fullCircleShot<span class=\"token punctuation\">)<\/span> color <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FF4444'<\/span><span class=\"token punctuation\">;<\/span>\n    \n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">arc<\/span><span class=\"token punctuation\">(<\/span>player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> color<span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>shadowColor <span class=\"token operator\">=<\/span> color<span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>shadowBlur <span class=\"token operator\">=<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updateBullets<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bullet<span class=\"token punctuation\">,<\/span> index<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        bullet<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">+=<\/span> bullet<span class=\"token punctuation\">.<\/span>dx<span class=\"token punctuation\">;<\/span>\n        bullet<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">+=<\/span> bullet<span class=\"token punctuation\">.<\/span>dy<span class=\"token punctuation\">;<\/span>\n        \n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">arc<\/span><span class=\"token punctuation\">(<\/span>bullet<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span> bullet<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> <span class=\"token number\">4<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FFC107'<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>shadowColor <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FFC107'<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>shadowBlur <span class=\"token operator\">=<\/span> <span class=\"token number\">15<\/span><span class=\"token punctuation\">;<\/span>\n        \n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>bullet<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">&lt;<\/span> <span class=\"token operator\">-<\/span><span class=\"token number\">10<\/span> <span class=\"token operator\">||<\/span> bullet<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">&gt;<\/span> canvas<span class=\"token punctuation\">.<\/span>width <span class=\"token operator\">+<\/span> <span class=\"token number\">10<\/span> <span class=\"token operator\">||<\/span> \n            bullet<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">&lt;<\/span> <span class=\"token operator\">-<\/span><span class=\"token number\">10<\/span> <span class=\"token operator\">||<\/span> bullet<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">&gt;<\/span> canvas<span class=\"token punctuation\">.<\/span>height <span class=\"token operator\">+<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">splice<\/span><span class=\"token punctuation\">(<\/span>index<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updateEnemies<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">const<\/span> spawnRate <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">max<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">30<\/span><span class=\"token punctuation\">,<\/span> config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>baseSpawnRate <span class=\"token operator\">-<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">floor<\/span><span class=\"token punctuation\">(<\/span>score<span class=\"token operator\">\/<\/span><span class=\"token number\">50<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> spawnRate <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        enemies<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n            x<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> canvas<span class=\"token punctuation\">.<\/span>width<span class=\"token punctuation\">,<\/span>\n            y<span class=\"token operator\">:<\/span> <span class=\"token operator\">-<\/span>config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span>\n            size<span class=\"token operator\">:<\/span> config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span>\n            color<span class=\"token operator\">:<\/span> config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>color\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    enemies<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">enemy<span class=\"token punctuation\">,<\/span> index<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">const<\/span> angle <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">atan2<\/span><span class=\"token punctuation\">(<\/span>player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-<\/span> enemy<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-<\/span> enemy<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        enemy<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">+=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">cos<\/span><span class=\"token punctuation\">(<\/span>angle<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>speed<span class=\"token punctuation\">;<\/span>\n        enemy<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">+=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sin<\/span><span class=\"token punctuation\">(<\/span>angle<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>enemy<span class=\"token punctuation\">.<\/span>speed<span class=\"token punctuation\">;<\/span>\n        \n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">arc<\/span><span class=\"token punctuation\">(<\/span>enemy<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span> enemy<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> enemy<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> enemy<span class=\"token punctuation\">.<\/span>color<span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>shadowColor <span class=\"token operator\">=<\/span> enemy<span class=\"token punctuation\">.<\/span>color<span class=\"token punctuation\">;<\/span>\n        ctx<span class=\"token punctuation\">.<\/span>shadowBlur <span class=\"token operator\">=<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">;<\/span>\n        \n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>enemy<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">&gt;<\/span> canvas<span class=\"token punctuation\">.<\/span>height <span class=\"token operator\">+<\/span> enemy<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            enemies<span class=\"token punctuation\">.<\/span><span class=\"token function\">splice<\/span><span class=\"token punctuation\">(<\/span>index<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updatePowerups<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">0.002<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">const<\/span> types <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">'triple'<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'apple'<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n        powerups<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n            x<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>canvas<span class=\"token punctuation\">.<\/span>width <span class=\"token operator\">-<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n            y<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token punctuation\">(<\/span>canvas<span class=\"token punctuation\">.<\/span>height <span class=\"token operator\">-<\/span> <span class=\"token number\">30<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span>\n            type<span class=\"token operator\">:<\/span> types<span class=\"token punctuation\">[<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">floor<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">random<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> types<span class=\"token punctuation\">.<\/span>length<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">,<\/span>\n            size<span class=\"token operator\">:<\/span> <span class=\"token number\">20<\/span><span class=\"token punctuation\">,<\/span>\n            spawnTime<span class=\"token operator\">:<\/span> Date<span class=\"token punctuation\">.<\/span><span class=\"token function\">now<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n\n    powerups<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">powerup<span class=\"token punctuation\">,<\/span> index<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>type <span class=\"token operator\">===<\/span> <span class=\"token string\">'apple'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">drawApple<\/span><span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span> powerup<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> powerup<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">save<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">translate<\/span><span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span> powerup<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">rotate<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>Date<span class=\"token punctuation\">.<\/span><span class=\"token function\">now<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">-<\/span> powerup<span class=\"token punctuation\">.<\/span>spawnTime<span class=\"token punctuation\">)<\/span><span class=\"token operator\">\/<\/span><span class=\"token number\">500<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FFD700'<\/span><span class=\"token punctuation\">;<\/span>\n            \n            <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">rotate<\/span><span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">\/<\/span> <span class=\"token number\">5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">moveTo<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">lineTo<\/span><span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">lineTo<\/span><span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">1.5<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">-<\/span>powerup<span class=\"token punctuation\">.<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">1.5<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">closePath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">restore<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">drawApple<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">x<span class=\"token punctuation\">,<\/span> y<span class=\"token punctuation\">,<\/span> size<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">save<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">translate<\/span><span class=\"token punctuation\">(<\/span>x<span class=\"token punctuation\">,<\/span> y<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    \n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">arc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> size<span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'#FF4444'<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    \n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">beginPath<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">moveTo<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">-<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">-<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">quadraticCurveTo<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">-<\/span>size<span class=\"token punctuation\">,<\/span> size<span class=\"token operator\">\/<\/span><span class=\"token number\">3<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token operator\">-<\/span>size<span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'#4CAF50'<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fill<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    \n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">restore<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">checkCollisions<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    enemies<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">enemy<span class=\"token punctuation\">,<\/span> eIndex<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bullet<span class=\"token punctuation\">,<\/span> bIndex<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">const<\/span> dx <span class=\"token operator\">=<\/span> enemy<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-<\/span> bullet<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">const<\/span> dy <span class=\"token operator\">=<\/span> enemy<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-<\/span> bullet<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">;<\/span>\n            <span class=\"token keyword\">const<\/span> distance <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sqrt<\/span><span class=\"token punctuation\">(<\/span>dx<span class=\"token operator\">*<\/span>dx <span class=\"token operator\">+<\/span> dy<span class=\"token operator\">*<\/span>dy<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            \n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>distance <span class=\"token operator\">&lt;<\/span> enemy<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                enemies<span class=\"token punctuation\">.<\/span><span class=\"token function\">splice<\/span><span class=\"token punctuation\">(<\/span>eIndex<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">splice<\/span><span class=\"token punctuation\">(<\/span>bIndex<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n                score <span class=\"token operator\">+=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n                <span class=\"token function\">updateScore<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n        <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n\n        <span class=\"token keyword\">const<\/span> pd <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sqrt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span>enemy<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token operator\">**<\/span><span class=\"token number\">2<\/span> <span class=\"token operator\">+<\/span> <span class=\"token punctuation\">(<\/span>enemy<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">)<\/span><span class=\"token operator\">**<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>pd <span class=\"token operator\">&lt;<\/span> enemy<span class=\"token punctuation\">.<\/span>size <span class=\"token operator\">+<\/span> player<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token function\">gameOver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">checkPowerupCollisions<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    powerups<span class=\"token punctuation\">.<\/span><span class=\"token function\">forEach<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">powerup<span class=\"token punctuation\">,<\/span> index<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">const<\/span> dx <span class=\"token operator\">=<\/span> player<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-<\/span> powerup<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">const<\/span> dy <span class=\"token operator\">=<\/span> player<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-<\/span> powerup<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">const<\/span> distance <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sqrt<\/span><span class=\"token punctuation\">(<\/span>dx<span class=\"token operator\">*<\/span>dx <span class=\"token operator\">+<\/span> dy<span class=\"token operator\">*<\/span>dy<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        \n        <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>distance <span class=\"token operator\">&lt;<\/span> player<span class=\"token punctuation\">.<\/span>size <span class=\"token operator\">+<\/span> powerup<span class=\"token punctuation\">.<\/span>size<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>type <span class=\"token operator\">===<\/span> <span class=\"token string\">'triple'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">activateTripleShot<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>powerup<span class=\"token punctuation\">.<\/span>type <span class=\"token operator\">===<\/span> <span class=\"token string\">'apple'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n                <span class=\"token function\">activateApplePowerup<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n            <span class=\"token punctuation\">}<\/span>\n            powerups<span class=\"token punctuation\">.<\/span><span class=\"token function\">splice<\/span><span class=\"token punctuation\">(<\/span>index<span class=\"token punctuation\">,<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updateMousePosition<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">e<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">const<\/span> rect <span class=\"token operator\">=<\/span> canvas<span class=\"token punctuation\">.<\/span><span class=\"token function\">getBoundingClientRect<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    mouse<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">=<\/span> e<span class=\"token punctuation\">.<\/span>clientX <span class=\"token operator\">-<\/span> rect<span class=\"token punctuation\">.<\/span>left<span class=\"token punctuation\">;<\/span>\n    mouse<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">=<\/span> e<span class=\"token punctuation\">.<\/span>clientY <span class=\"token operator\">-<\/span> rect<span class=\"token punctuation\">.<\/span>top<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">shoot<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>gameActive<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\n\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>fullCircleShot<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> config<span class=\"token punctuation\">.<\/span>bulletCount<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">const<\/span> angle <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">(<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token constant\">PI<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">2<\/span> <span class=\"token operator\">*<\/span> i<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">\/<\/span> config<span class=\"token punctuation\">.<\/span>bulletCount<span class=\"token punctuation\">;<\/span>\n            bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                x<span class=\"token operator\">:<\/span> player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span>\n                y<span class=\"token operator\">:<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span>\n                dx<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">cos<\/span><span class=\"token punctuation\">(<\/span>angle<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>bulletSpeed<span class=\"token punctuation\">,<\/span>\n                dy<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sin<\/span><span class=\"token punctuation\">(<\/span>angle<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>bulletSpeed\n            <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">const<\/span> angle <span class=\"token operator\">=<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">atan2<\/span><span class=\"token punctuation\">(<\/span>mouse<span class=\"token punctuation\">.<\/span>y <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span> mouse<span class=\"token punctuation\">.<\/span>x <span class=\"token operator\">-<\/span> player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">const<\/span> bulletCount <span class=\"token operator\">=<\/span> tripleShot <span class=\"token operator\">?<\/span> <span class=\"token number\">3<\/span> <span class=\"token operator\">:<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n        \n        <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">let<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> bulletCount<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n            <span class=\"token keyword\">const<\/span> spread <span class=\"token operator\">=<\/span> tripleShot <span class=\"token operator\">?<\/span> <span class=\"token punctuation\">(<\/span>i <span class=\"token operator\">-<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> <span class=\"token number\">0.2<\/span> <span class=\"token operator\">:<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n            bullets<span class=\"token punctuation\">.<\/span><span class=\"token function\">push<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<!-- --><\/span>\n                x<span class=\"token operator\">:<\/span> player<span class=\"token punctuation\">.<\/span>x<span class=\"token punctuation\">,<\/span>\n                y<span class=\"token operator\">:<\/span> player<span class=\"token punctuation\">.<\/span>y<span class=\"token punctuation\">,<\/span>\n                dx<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">cos<\/span><span class=\"token punctuation\">(<\/span>angle <span class=\"token operator\">+<\/span> spread<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>bulletSpeed<span class=\"token punctuation\">,<\/span>\n                dy<span class=\"token operator\">:<\/span> Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">sin<\/span><span class=\"token punctuation\">(<\/span>angle <span class=\"token operator\">+<\/span> spread<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> config<span class=\"token punctuation\">.<\/span>bulletSpeed\n            <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token punctuation\">}<\/span>\n    <span class=\"token punctuation\">}<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">activateTripleShot<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    tripleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">clearTimeout<\/span><span class=\"token punctuation\">(<\/span>powerupTimer<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    powerupTimer <span class=\"token operator\">=<\/span> <span class=\"token function\">setTimeout<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        tripleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n        powerupElement<span class=\"token punctuation\">.<\/span>innerHTML <span class=\"token operator\">=<\/span> <span class=\"token string\">''<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> config<span class=\"token punctuation\">.<\/span>tripleShotDuration<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    powerupElement<span class=\"token punctuation\">.<\/span>innerHTML <span class=\"token operator\">=<\/span> <span class=\"token string\">'\u4e09\u500d\u706b\u529b\u6fc0\u6d3b\uff01\u5269\u4f595\u79d2'<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">activateApplePowerup<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    fullCircleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token function\">clearTimeout<\/span><span class=\"token punctuation\">(<\/span>appleTimer<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    appleTimer <span class=\"token operator\">=<\/span> <span class=\"token function\">setTimeout<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">=&gt;<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n        fullCircleShot <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n        powerupElement<span class=\"token punctuation\">.<\/span>innerHTML <span class=\"token operator\">=<\/span> <span class=\"token string\">''<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">,<\/span> config<span class=\"token punctuation\">.<\/span>fullCircleDuration<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n    powerupElement<span class=\"token punctuation\">.<\/span>innerHTML <span class=\"token operator\">=<\/span> <span class=\"token string\">'&lt;span class=\"apple-text\"&gt;\u5168\u5c4f\u5c04\u51fb\u6fc0\u6d3b\uff01\u5269\u4f595\u79d2&lt;\/span&gt;'<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">updateScore<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    scoreElement<span class=\"token punctuation\">.<\/span>textContent <span class=\"token operator\">=<\/span> score<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">gameOver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    gameActive <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n    restartButton<span class=\"token punctuation\">.<\/span>style<span class=\"token punctuation\">.<\/span>display <span class=\"token operator\">=<\/span> <span class=\"token string\">'block'<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span>fillStyle <span class=\"token operator\">=<\/span> <span class=\"token string\">'rgba(255, 0, 0, 0.5)'<\/span><span class=\"token punctuation\">;<\/span>\n    ctx<span class=\"token punctuation\">.<\/span><span class=\"token function\">fillRect<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> canvas<span class=\"token punctuation\">.<\/span>width<span class=\"token punctuation\">,<\/span> canvas<span class=\"token punctuation\">.<\/span>height<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">const<\/span> keys <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">{<!-- --><\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">handleKeyDown<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">e<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    keys<span class=\"token punctuation\">[<\/span>e<span class=\"token punctuation\">.<\/span>key<span class=\"token punctuation\">.<\/span><span class=\"token function\">toLowerCase<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token boolean\">true<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>e<span class=\"token punctuation\">.<\/span>code <span class=\"token operator\">===<\/span> <span class=\"token string\">'Space'<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token function\">shoot<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">handleKeyUp<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">e<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<!-- --><\/span>\n    keys<span class=\"token punctuation\">[<\/span>e<span class=\"token punctuation\">.<\/span>key<span class=\"token punctuation\">.<\/span><span class=\"token function\">toLowerCase<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token boolean\">false<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n\n<span class=\"token function\">initGame<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<\/span><\/span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>script<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>body<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;\/<\/span>html<\/span><span class=\"token punctuation\">&gt;<\/span><\/span>\n<\/code><\/pre>\n<p>\n   \u4e3b\u8981\u529f\u80fd\u8bf4\u660e\uff1a\n  <\/p>\n<ol>\n<li>\n    \u4f7f\u7528WSAD\u6216\u65b9\u5411\u952e\u79fb\u52a8\u73a9\u5bb6\n   <\/li>\n<li>\n    \u9f20\u6807\u7784\u51c6\uff0c\u70b9\u51fb\u5de6\u952e\u6216\u7a7a\u683c\u952e\u5c04\u51fb\n   <\/li>\n<li>\n    \u4e24\u79cd\u5f3a\u5316\u9053\u5177\uff1a<\/p>\n<ul>\n<li>\n      \u2605 \u91d1\u8272\u661f\u661f\uff1a\u4e09\u8fde\u53d1\u7cbe\u51c6\u5c04\u51fb\uff085\u79d2\uff09\n     <\/li>\n<li>\n      \ud83c\udf4e \u7ea2\u8272\u82f9\u679c\uff1a360\u5ea6\u5168\u5c4f\u5f39\u5e55\uff085\u79d2\uff09\n     <\/li>\n<\/ul>\n<\/li>\n<li>\n    \u654c\u4eba\u751f\u6210\u901f\u5ea6\u968f\u5206\u6570\u589e\u52a0\n   <\/li>\n<li>\n    \u73a9\u5bb6\u989c\u8272\u53cd\u9988\u5f53\u524d\u72b6\u6001\uff1a<\/p>\n<ul>\n<li>\n      \u7eff\u8272\uff1a\u666e\u901a\u72b6\u6001\n     <\/li>\n<li>\n      \u91d1\u8272\uff1a\u4e09\u8fde\u53d1\u72b6\u6001\n     <\/li>\n<li>\n      \u7ea2\u8272\uff1a\u5168\u5c4f\u5c04\u51fb\u72b6\u6001\n     <\/li>\n<\/ul>\n<\/li>\n<li>\n    \u6301\u7eed\u66f4\u65b0\u7684\u8ba1\u5206\u7cfb\u7edf\n   <\/li>\n<li>\n    \u6e38\u620f\u7ed3\u675f\u53ef\u91cd\u65b0\u5f00\u59cb\n   <\/li>\n<\/ol>\n<p>\n   \u76f4\u63a5\u590d\u5236\u5168\u90e8\u4ee3\u7801\u4fdd\u5b58\u4e3a.html\u6587\u4ef6\uff0c\u7528\u73b0\u4ee3\u6d4f\u89c8\u5668\u6253\u5f00\u5373\u53ef\u4f53\u9a8c\u5b8c\u6574\u6e38\u620f\u3002\u73a9\u5bb6\u9700\u8981\u7075\u6d3b\u8fd0\u7528\u4e24\u79cd\u5f3a\u5316\u9053\u5177\u6765\u5e94\u5bf9\u4e0d\u65ad\u589e\u5f3a\u7684\u654c\u4eba\u653b\u52bf\uff0c\u6311\u6218\u66f4\u9ad8\u5206\u6570\uff01\n  <\/p>\n<\/p><\/div>\n<link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/editerView\/markdown_views-a5d25dd831.css\" rel=\"stylesheet\"\/>\n <link href=\"https:\/\/csdnimg.cn\/release\/blogv2\/dist\/mdeditor\/css\/style-e504d6a974.css\" rel=\"stylesheet\"\/>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee5\u4e0b\u662f\u5b8c\u6574\u7684\u3001\u53ef\u76f4\u63a5\u8fd0\u884c\u7684\u6700\u7ec8\u7248\u4ee3\u7801 &lt;!DOCTYPE html&gt; &lt;html&gt; &#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-1714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-23"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/\u5c04\u51fb\u7f51\u9875\u6e38\u620f\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"\u4ee5\u4e0b\u662f\u5b8c\u6574\u7684\u3001\u53ef\u76f4\u63a5\u8fd0\u884c\u7684\u6700\u7ec8\u7248\u4ee3\u7801 &lt;!DOCTYPE html&gt; &lt;html&gt; &amp; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/\u5c04\u51fb\u7f51\u9875\u6e38\u620f\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-03T10:00:18+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"260\" \/>\n\t<meta property=\"og:image:height\" content=\"180\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin@wunen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin@wunen\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"\u5c04\u51fb\u7f51\u9875\u6e38\u620f\",\"datePublished\":\"2025-05-03T10:00:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/\"},\"wordCount\":2,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"articleSection\":[\"\u5c04\u51fb\u6e38\u620f\"],\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/\",\"name\":\"\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"isPartOf\":{\"@id\":\"https:\/\/www.wunen.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-05-03T10:00:18+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"width\":260,\"height\":180},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wunen.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c04\u51fb\u7f51\u9875\u6e38\u620f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wunen.com\/#website\",\"url\":\"https:\/\/www.wunen.com\/\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"description\":\"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9\",\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wunen.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.wunen.com\/#organization\",\"name\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\",\"url\":\"https:\/\/www.wunen.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"contentUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png\",\"width\":1024,\"height\":1024,\"caption\":\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\"},\"image\":{\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\",\"name\":\"admin@wunen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g\",\"caption\":\"admin@wunen\"},\"sameAs\":[\"http:\/\/www.wunen.com\"],\"url\":\"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/\u5c04\u51fb\u7f51\u9875\u6e38\u620f\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"\u4ee5\u4e0b\u662f\u5b8c\u6574\u7684\u3001\u53ef\u76f4\u63a5\u8fd0\u884c\u7684\u6700\u7ec8\u7248\u4ee3\u7801 &lt;!DOCTYPE html&gt; &lt;html&gt; & [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/\u5c04\u51fb\u7f51\u9875\u6e38\u620f\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-05-03T10:00:18+00:00","og_image":[{"width":260,"height":180,"url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","type":"image\/jpeg"}],"author":"admin@wunen","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin@wunen","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f","datePublished":"2025-05-03T10:00:18+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/"},"wordCount":2,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","articleSection":["\u5c04\u51fb\u6e38\u620f"],"inLanguage":"zh-Hans","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/","name":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","isPartOf":{"@id":"https:\/\/www.wunen.com\/#website"},"primaryImageOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-05-03T10:00:18+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#primaryimage","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","width":260,"height":180},{"@type":"BreadcrumbList","@id":"http:\/\/www.wunen.com\/index.php\/2025\/05\/03\/%e5%b0%84%e5%87%bb%e7%bd%91%e9%a1%b5%e6%b8%b8%e6%88%8f\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wunen.com\/"},{"@type":"ListItem","position":2,"name":"\u5c04\u51fb\u7f51\u9875\u6e38\u620f"}]},{"@type":"WebSite","@id":"https:\/\/www.wunen.com\/#website","url":"https:\/\/www.wunen.com\/","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","description":"\u8f6f\u4ef6\u8d44\u8baf\u6765\u7269\u5ae9","publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wunen.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.wunen.com\/#organization","name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","url":"https:\/\/www.wunen.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/","url":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","contentUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/cropped-\u7269\u5ae9-1.png","width":1024,"height":1024,"caption":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51"},"image":{"@id":"https:\/\/www.wunen.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8","name":"admin@wunen","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90ec1e3faf77c4d4e66e40c29b85ff6401161e0502f401dae2f0e25b38ce25e?s=96&d=mm&r=g","caption":"admin@wunen"},"sameAs":["http:\/\/www.wunen.com"],"url":"http:\/\/www.wunen.com\/index.php\/author\/adminwunen\/"}]}},"_links":{"self":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/1714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/comments?post=1714"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/1714\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media\/215"}],"wp:attachment":[{"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/media?parent=1714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=1714"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=1714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}