{"id":3766,"date":"2025-06-13T18:00:22","date_gmt":"2025-06-13T10:00:22","guid":{"rendered":"https:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/"},"modified":"2025-06-13T18:00:22","modified_gmt":"2025-06-13T10:00:22","slug":"%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f","status":"publish","type":"post","link":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/","title":{"rendered":"\u50cf\u7d20\u5c04\u51fb\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=\"htmledit_views atom-one-dark\" id=\"content_views\">\n<p>\n   &lt;!DOCTYPE html&gt;<br \/>\n   <br \/>\n   &lt;html&gt;<br \/>\n   <br \/>\n   &lt;head&gt;<br \/>\n   <br \/>\n   &lt;title&gt;\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\uff08\u7b80\u5355\u7248\uff09&lt;\/title&gt;<br \/>\n   <br \/>\n   &lt;style&gt;<br \/>\n   <br \/>\n   body {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   margin: 0;<br \/>\n   <br \/>\n   padding: 0;<br \/>\n   <br \/>\n   display: flex;<br \/>\n   <br \/>\n   justify-content: center;<br \/>\n   <br \/>\n   align-items: center;<br \/>\n   <br \/>\n   height: 100vh;<br \/>\n   <br \/>\n   background-color: #222;<br \/>\n   <br \/>\n   overflow: hidden;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   canvas {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   border: 2px solid #444;<br \/>\n   <br \/>\n   background-color: #111;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   #gameInfo {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   position: absolute;<br \/>\n   <br \/>\n   top: 10px;<br \/>\n   <br \/>\n   left: 10px;<br \/>\n   <br \/>\n   color: white;<br \/>\n   <br \/>\n   font-family: Arial, sans-serif;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   #startScreen {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   position: absolute;<br \/>\n   <br \/>\n   color: white;<br \/>\n   <br \/>\n   font-family: Arial, sans-serif;<br \/>\n   <br \/>\n   text-align: center;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   button {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   padding: 10px 20px;<br \/>\n   <br \/>\n   font-size: 16px;<br \/>\n   <br \/>\n   background-color: #4CAF50;<br \/>\n   <br \/>\n   color: white;<br \/>\n   <br \/>\n   border: none;<br \/>\n   <br \/>\n   cursor: pointer;<br \/>\n   <br \/>\n   border-radius: 5px;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   button:hover {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   background-color: #45a049;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   &lt;\/style&gt;<br \/>\n   <br \/>\n   &lt;\/head&gt;<br \/>\n   <br \/>\n   &lt;body&gt;<br \/>\n   <br \/>\n   &lt;div id=&#8221;gameInfo&#8221;&gt;<br \/>\n   <br \/>\n   \u5206\u6570: &lt;span id=&#8221;score&#8221;&gt;0&lt;\/span&gt; | \u751f\u547d: &lt;span id=&#8221;lives&#8221;&gt;3&lt;\/span&gt;<br \/>\n   <br \/>\n   &lt;\/div&gt;<\/p>\n<p>   &lt;div id=&#8221;startScreen&#8221;&gt;<br \/>\n   <br \/>\n   &lt;h1&gt;\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\uff08\u7b80\u5355\u7248\uff09&lt;\/h1&gt;<br \/>\n   <br \/>\n   &lt;p&gt;\u4f7f\u7528WASD\u6216\u65b9\u5411\u952e\u79fb\u52a8\uff0c\u9f20\u6807\u70b9\u51fb\u5c04\u51fb&lt;\/p&gt;<br \/>\n   <br \/>\n   &lt;p&gt;\u6d88\u706d\u6240\u6709\u654c\u4eba\u83b7\u5f97\u5206\u6570&lt;\/p&gt;<br \/>\n   <br \/>\n   &lt;button id=&#8221;startButton&#8221;&gt;\u5f00\u59cb\u6e38\u620f&lt;\/button&gt;<br \/>\n   <br \/>\n   &lt;\/div&gt;<\/p>\n<p>   &lt;canvas id=&#8221;gameCanvas&#8221; width=&#8221;600&#8243; height=&#8221;400&#8243;&gt;&lt;\/canvas&gt;<\/p>\n<p>   &lt;script&gt;<br \/>\n   <br \/>\n   \/\/ \u6e38\u620f\u53d8\u91cf<br \/>\n   <br \/>\n   const canvas = document.getElementById(&#8216;gameCanvas&#8217;);<br \/>\n   <br \/>\n   const ctx = canvas.getContext(&#8216;2d&#8217;);<br \/>\n   <br \/>\n   const scoreElement = document.getElementById(&#8216;score&#8217;);<br \/>\n   <br \/>\n   const livesElement = document.getElementById(&#8216;lives&#8217;);<br \/>\n   <br \/>\n   const startScreen = document.getElementById(&#8216;startScreen&#8217;);<br \/>\n   <br \/>\n   const startButton = document.getElementById(&#8216;startButton&#8217;);<\/p>\n<p>   let score = 0;<br \/>\n   <br \/>\n   let lives = 3;<br \/>\n   <br \/>\n   let gameRunning = false;<br \/>\n   <br \/>\n   let gameOver = false;<\/p>\n<p>   \/\/ \u73a9\u5bb6\u8bbe\u7f6e<br \/>\n   <br \/>\n   const player = {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   x: canvas.width \/ 2,<br \/>\n   <br \/>\n   y: canvas.height &#8211; 50,<br \/>\n   <br \/>\n   width: 30,<br \/>\n   <br \/>\n   height: 30,<br \/>\n   <br \/>\n   speed: 5,<br \/>\n   <br \/>\n   color: &#8216;#3498db&#8217;,<br \/>\n   <br \/>\n   isMoving: {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   up: false,<br \/>\n   <br \/>\n   down: false,<br \/>\n   <br \/>\n   left: false,<br \/>\n   <br \/>\n   right: false<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   };<\/p>\n<p>   \/\/ \u5b50\u5f39\u6570\u7ec4<br \/>\n   <br \/>\n   let bullets = [];<br \/>\n   <br \/>\n   const bulletSpeed = 7;<br \/>\n   <br \/>\n   const bulletSize = 5;<\/p>\n<p>   \/\/ \u654c\u4eba\u6570\u7ec4<br \/>\n   <br \/>\n   let enemies = [];<br \/>\n   <br \/>\n   const enemySize = 25;<br \/>\n   <br \/>\n   let enemySpawnRate = 60; \/\/ \u5e27\u6570<br \/>\n   <br \/>\n   let enemySpawnCounter = 0;<\/p>\n<p>   \/\/ \u7206\u70b8\u6548\u679c\u6570\u7ec4<br \/>\n   <br \/>\n   let explosions = [];<\/p>\n<p>   \/\/ \u63a7\u5236\u8bbe\u7f6e<br \/>\n   <br \/>\n   const keys = {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ArrowUp: false,<br \/>\n   <br \/>\n   ArrowDown: false,<br \/>\n   <br \/>\n   ArrowLeft: false,<br \/>\n   <br \/>\n   ArrowRight: false,<br \/>\n   <br \/>\n   w: false,<br \/>\n   <br \/>\n   a: false,<br \/>\n   <br \/>\n   s: false,<br \/>\n   <br \/>\n   d: false<br \/>\n   <br \/>\n   };<\/p>\n<p>   \/\/ \u4e8b\u4ef6\u76d1\u542c<br \/>\n   <br \/>\n   window.addEventListener(&#8216;keydown&#8217;, (e) =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (keys.hasOwnProperty(e.key)) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   keys[e.key] = true;<br \/>\n   <br \/>\n   updatePlayerMovement();<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   });<\/p>\n<p>   window.addEventListener(&#8216;keyup&#8217;, (e) =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (keys.hasOwnProperty(e.key)) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   keys[e.key] = false;<br \/>\n   <br \/>\n   updatePlayerMovement();<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   });<\/p>\n<p>   canvas.addEventListener(&#8216;click&#8217;, (e) =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (gameRunning &amp;&amp; !gameOver) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   shootBullet();<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   });<\/p>\n<p>   startButton.addEventListener(&#8216;click&#8217;, startGame);<\/p>\n<p>   \/\/ \u66f4\u65b0\u73a9\u5bb6\u79fb\u52a8\u72b6\u6001<br \/>\n   <br \/>\n   function updatePlayerMovement() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   player.isMoving.up = keys.ArrowUp || keys.w;<br \/>\n   <br \/>\n   player.isMoving.down = keys.ArrowDown || keys.s;<br \/>\n   <br \/>\n   player.isMoving.left = keys.ArrowLeft || keys.a;<br \/>\n   <br \/>\n   player.isMoving.right = keys.ArrowRight || keys.d;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u5f00\u59cb\u6e38\u620f<br \/>\n   <br \/>\n   function startGame() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   score = 0;<br \/>\n   <br \/>\n   lives = 3;<br \/>\n   <br \/>\n   bullets = [];<br \/>\n   <br \/>\n   enemies = [];<br \/>\n   <br \/>\n   explosions = [];<br \/>\n   <br \/>\n   gameRunning = true;<br \/>\n   <br \/>\n   gameOver = false;<br \/>\n   <br \/>\n   enemySpawnRate = 60; \/\/ \u91cd\u7f6e\u654c\u4eba\u751f\u6210\u901f\u7387<br \/>\n   <br \/>\n   startScreen.style.display = &#8216;none&#8217;;<br \/>\n   <br \/>\n   updateScore();<br \/>\n   <br \/>\n   updateLives();<br \/>\n   <br \/>\n   gameLoop();<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u6e38\u620f\u4e3b\u5faa\u73af<br \/>\n   <br \/>\n   function gameLoop() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (!gameRunning) return;<\/p>\n<p>   \/\/ \u6e05\u9664\u753b\u5e03<br \/>\n   <br \/>\n   ctx.clearRect(0, 0, canvas.width, canvas.height);<\/p>\n<p>   \/\/ \u66f4\u65b0\u548c\u7ed8\u5236\u73a9\u5bb6<br \/>\n   <br \/>\n   updatePlayer();<br \/>\n   <br \/>\n   drawPlayer();<\/p>\n<p>   \/\/ \u66f4\u65b0\u548c\u7ed8\u5236\u5b50\u5f39<br \/>\n   <br \/>\n   updateBullets();<br \/>\n   <br \/>\n   drawBullets();<\/p>\n<p>   \/\/ \u751f\u6210\u548c\u66f4\u65b0\u654c\u4eba<br \/>\n   <br \/>\n   spawnEnemies();<br \/>\n   <br \/>\n   updateEnemies();<br \/>\n   <br \/>\n   drawEnemies();<\/p>\n<p>   \/\/ \u66f4\u65b0\u548c\u7ed8\u5236\u7206\u70b8\u6548\u679c<br \/>\n   <br \/>\n   updateExplosions();<br \/>\n   <br \/>\n   drawExplosions();<\/p>\n<p>   \/\/ \u68c0\u67e5\u6e38\u620f\u7ed3\u675f<br \/>\n   <br \/>\n   if (gameOver) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   endGame();<br \/>\n   <br \/>\n   return;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u7ee7\u7eed\u6e38\u620f\u5faa\u73af<br \/>\n   <br \/>\n   requestAnimationFrame(gameLoop);<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u73a9\u5bb6\u4f4d\u7f6e<br \/>\n   <br \/>\n   function updatePlayer() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (player.isMoving.up &amp;&amp; player.y &gt; 0) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   player.y -= player.speed;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   if (player.isMoving.down &amp;&amp; player.y &lt; canvas.height &#8211; player.height) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   player.y += player.speed;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   if (player.isMoving.left &amp;&amp; player.x &gt; 0) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   player.x -= player.speed;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   if (player.isMoving.right &amp;&amp; player.x &lt; canvas.width &#8211; player.width) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   player.x += player.speed;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u7ed8\u5236\u73a9\u5bb6<br \/>\n   <br \/>\n   function drawPlayer() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ctx.fillStyle = player.color;<br \/>\n   <br \/>\n   ctx.fillRect(player.x, player.y, player.width, player.height);<\/p>\n<p>   \/\/ \u7ed8\u5236\u70ae\u7ba1<br \/>\n   <br \/>\n   ctx.fillStyle = &#8216;#e74c3c&#8217;;<br \/>\n   <br \/>\n   ctx.fillRect(player.x + player.width\/2 &#8211; 2, player.y &#8211; 10, 4, 10);<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u53d1\u5c04\u5b50\u5f39<br \/>\n   <br \/>\n   function shootBullet() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   bullets.push({<br \/>\n   <!-- --><br \/>\n   <br \/>\n   x: player.x + player.width\/2 &#8211; bulletSize\/2,<br \/>\n   <br \/>\n   y: player.y &#8211; bulletSize,<br \/>\n   <br \/>\n   width: bulletSize,<br \/>\n   <br \/>\n   height: bulletSize,<br \/>\n   <br \/>\n   speed: bulletSpeed<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u5b50\u5f39\u4f4d\u7f6e<br \/>\n   <br \/>\n   function updateBullets() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   for (let i = bullets.length &#8211; 1; i &gt;= 0; i&#8211;) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   bullets[i].y -= bullets[i].speed;<\/p>\n<p>   \/\/ \u79fb\u9664\u8d85\u51fa\u5c4f\u5e55\u7684\u5b50\u5f39<br \/>\n   <br \/>\n   if (bullets[i].y &lt; 0) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   bullets.splice(i, 1);<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u7ed8\u5236\u5b50\u5f39<br \/>\n   <br \/>\n   function drawBullets() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ctx.fillStyle = &#8216;#f1c40f&#8217;;<br \/>\n   <br \/>\n   bullets.forEach(bullet =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ctx.fillRect(bullet.x, bullet.y, bullet.width, bullet.height);<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u751f\u6210\u654c\u4eba<br \/>\n   <br \/>\n   function spawnEnemies() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemySpawnCounter++;<br \/>\n   <br \/>\n   if (enemySpawnCounter &gt;= enemySpawnRate) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemySpawnCounter = 0;<\/p>\n<p>   \/\/ \u968f\u673a\u51cf\u5c11\u751f\u6210\u95f4\u9694\u4ee5\u589e\u52a0\u96be\u5ea6\uff08\u6bd4\u539f\u7248\u66f4\u6162\uff09<br \/>\n   <br \/>\n   if (enemySpawnRate &gt; 30) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemySpawnRate -= 0.2;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u5728\u5c4f\u5e55\u9876\u90e8\u968f\u673a\u4f4d\u7f6e\u751f\u6210\u654c\u4eba<br \/>\n   <br \/>\n   const x = Math.random() * (canvas.width &#8211; enemySize);<br \/>\n   <br \/>\n   enemies.push({<br \/>\n   <!-- --><br \/>\n   <br \/>\n   x: x,<br \/>\n   <br \/>\n   y: -enemySize,<br \/>\n   <br \/>\n   width: enemySize,<br \/>\n   <br \/>\n   height: enemySize,<br \/>\n   <br \/>\n   speed: 0.5 + Math.random() * 1.5, \/\/ \u964d\u4f4e\u654c\u4eba\u79fb\u52a8\u901f\u5ea6<br \/>\n   <br \/>\n   color: `hsl(${Math.random() * 360}, 70%, 50%)`<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u654c\u4eba\u4f4d\u7f6e<br \/>\n   <br \/>\n   function updateEnemies() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   for (let i = enemies.length &#8211; 1; i &gt;= 0; i&#8211;) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemies[i].y += enemies[i].speed;<\/p>\n<p>   \/\/ \u68c0\u67e5\u654c\u4eba\u662f\u5426\u8d85\u51fa\u5c4f\u5e55\u5e95\u90e8<br \/>\n   <br \/>\n   if (enemies[i].y &gt; canvas.height) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemies.splice(i, 1);<br \/>\n   <br \/>\n   lives&#8211;;<br \/>\n   <br \/>\n   updateLives();<\/p>\n<p>   if (lives &lt;= 0) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   gameOver = true;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u68c0\u67e5\u654c\u4eba\u4e0e\u73a9\u5bb6\u78b0\u649e<br \/>\n   <br \/>\n   if (checkCollision(player, enemies[i])) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemies.splice(i, 1);<br \/>\n   <br \/>\n   lives&#8211;;<br \/>\n   <br \/>\n   updateLives();<br \/>\n   <br \/>\n   createExplosion(player.x, player.y, player.width, player.height);<\/p>\n<p>   if (lives &lt;= 0) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   gameOver = true;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u68c0\u67e5\u5b50\u5f39\u4e0e\u654c\u4eba\u78b0\u649e<br \/>\n   <br \/>\n   for (let j = bullets.length &#8211; 1; j &gt;= 0; j&#8211;) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   if (checkCollision(bullets[j], enemies[i])) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemies.splice(i, 1);<br \/>\n   <br \/>\n   bullets.splice(j, 1);<br \/>\n   <br \/>\n   score += 10;<br \/>\n   <br \/>\n   updateScore();<br \/>\n   <br \/>\n   createExplosion(enemies[i].x, enemies[i].y, enemies[i].width, enemies[i].height);<br \/>\n   <br \/>\n   break;<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u7ed8\u5236\u654c\u4eba<br \/>\n   <br \/>\n   function drawEnemies() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   enemies.forEach(enemy =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ctx.fillStyle = enemy.color;<br \/>\n   <br \/>\n   ctx.fillRect(enemy.x, enemy.y, enemy.width, enemy.height);<\/p>\n<p>   \/\/ \u7ed8\u5236\u654c\u4eba\u773c\u775b<br \/>\n   <br \/>\n   ctx.fillStyle = &#8216;white&#8217;;<br \/>\n   <br \/>\n   ctx.fillRect(enemy.x + 5, enemy.y + 5, 5, 5);<br \/>\n   <br \/>\n   ctx.fillRect(enemy.x + 15, enemy.y + 5, 5, 5);<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u521b\u5efa\u7206\u70b8\u6548\u679c<br \/>\n   <br \/>\n   function createExplosion(x, y, width, height) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosions.push({<br \/>\n   <!-- --><br \/>\n   <br \/>\n   x: x,<br \/>\n   <br \/>\n   y: y,<br \/>\n   <br \/>\n   width: width,<br \/>\n   <br \/>\n   height: height,<br \/>\n   <br \/>\n   particles: [],<br \/>\n   <br \/>\n   duration: 30,<br \/>\n   <br \/>\n   counter: 0<br \/>\n   <br \/>\n   });<\/p>\n<p>   \/\/ \u521b\u5efa\u7206\u70b8\u7c92\u5b50<br \/>\n   <br \/>\n   for (let i = 0; i &lt; 20; i++) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosions[explosions.length &#8211; 1].particles.push({<br \/>\n   <!-- --><br \/>\n   <br \/>\n   x: x + width\/2,<br \/>\n   <br \/>\n   y: y + height\/2,<br \/>\n   <br \/>\n   size: Math.random() * 4 + 2,<br \/>\n   <br \/>\n   color: `hsl(${Math.random() * 60 + 10}, 100%, 50%)`,<br \/>\n   <br \/>\n   speedX: (Math.random() &#8211; 0.5) * 8,<br \/>\n   <br \/>\n   speedY: (Math.random() &#8211; 0.5) * 8<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u7206\u70b8\u6548\u679c<br \/>\n   <br \/>\n   function updateExplosions() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   for (let i = explosions.length &#8211; 1; i &gt;= 0; i&#8211;) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosions[i].counter++;<\/p>\n<p>   \/\/ \u66f4\u65b0\u7c92\u5b50\u4f4d\u7f6e<br \/>\n   <br \/>\n   explosions[i].particles.forEach(particle =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   particle.x += particle.speedX;<br \/>\n   <br \/>\n   particle.y += particle.speedY;<br \/>\n   <br \/>\n   });<\/p>\n<p>   \/\/ \u79fb\u9664\u8fc7\u671f\u7684\u7206\u70b8\u6548\u679c<br \/>\n   <br \/>\n   if (explosions[i].counter &gt;= explosions[i].duration) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosions.splice(i, 1);<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u7ed8\u5236\u7206\u70b8\u6548\u679c<br \/>\n   <br \/>\n   function drawExplosions() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosions.forEach(explosion =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   explosion.particles.forEach(particle =&gt; {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   ctx.fillStyle = particle.color;<br \/>\n   <br \/>\n   ctx.fillRect(particle.x, particle.y, particle.size, particle.size);<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   });<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u78b0\u649e\u68c0\u6d4b<br \/>\n   <br \/>\n   function checkCollision(obj1, obj2) {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   return obj1.x &lt; obj2.x + obj2.width &amp;&amp;<br \/>\n   <br \/>\n   obj1.x + obj1.width &gt; obj2.x &amp;&amp;<br \/>\n   <br \/>\n   obj1.y &lt; obj2.y + obj2.height &amp;&amp;<br \/>\n   <br \/>\n   obj1.y + obj1.height &gt; obj2.y;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u5206\u6570\u663e\u793a<br \/>\n   <br \/>\n   function updateScore() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   scoreElement.textContent = score;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u66f4\u65b0\u751f\u547d\u663e\u793a<br \/>\n   <br \/>\n   function updateLives() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   livesElement.textContent = lives;<br \/>\n   <br \/>\n   }<\/p>\n<p>   \/\/ \u6e38\u620f\u7ed3\u675f<br \/>\n   <br \/>\n   function endGame() {<br \/>\n   <!-- --><br \/>\n   <br \/>\n   gameRunning = false;<br \/>\n   <br \/>\n   startScreen.style.display = &#8216;block&#8217;;<br \/>\n   <br \/>\n   startScreen.innerHTML = `<br \/>\n   <br \/>\n   &lt;h1&gt;\u6e38\u620f\u7ed3\u675f&lt;\/h1&gt;<br \/>\n   <br \/>\n   &lt;p&gt;\u4f60\u7684\u6700\u7ec8\u5206\u6570: ${score}&lt;\/p&gt;<br \/>\n   <br \/>\n   &lt;button id=&#8221;restartButton&#8221;&gt;\u518d\u73a9\u4e00\u6b21&lt;\/button&gt;<br \/>\n   <br \/>\n   `;<br \/>\n   <br \/>\n   document.getElementById(&#8216;restartButton&#8217;).addEventListener(&#8216;click&#8217;, startGame);<br \/>\n   <br \/>\n   }<br \/>\n   <br \/>\n   &lt;\/script&gt;<br \/>\n   <br \/>\n   &lt;\/body&gt;<br \/>\n   <br \/>\n   &lt;\/html&gt;\n  <\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;tit [&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-3766","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>\u50cf\u7d20\u5c04\u51fb\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\/06\/13\/\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u50cf\u7d20\u5c04\u51fb\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"og:description\" content=\"&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;tit [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\/\" \/>\n<meta property=\"og:site_name\" content=\"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51\" \/>\n<meta property=\"article:published_time\" content=\"2025-06-13T10:00:22+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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/\"},\"author\":{\"name\":\"admin@wunen\",\"@id\":\"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8\"},\"headline\":\"\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\",\"datePublished\":\"2025-06-13T10:00:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/\"},\"wordCount\":927,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.wunen.com\/#organization\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/\",\"url\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/\",\"name\":\"\u50cf\u7d20\u5c04\u51fb\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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg\",\"datePublished\":\"2025-06-13T10:00:22+00:00\",\"breadcrumb\":{\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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\":\"\u50cf\u7d20\u5c04\u51fb\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":"\u50cf\u7d20\u5c04\u51fb\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\/06\/13\/\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\/","og_locale":"zh_CN","og_type":"article","og_title":"\u50cf\u7d20\u5c04\u51fb\u6e38\u620f - \u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","og_description":"&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;tit [&hellip;]","og_url":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/\u50cf\u7d20\u5c04\u51fb\u6e38\u620f\/","og_site_name":"\u7269\u5ae9\u8f6f\u4ef6\u8d44\u8baf\u7f51","article_published_time":"2025-06-13T10:00:22+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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#article","isPartOf":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/"},"author":{"name":"admin@wunen","@id":"https:\/\/www.wunen.com\/#\/schema\/person\/d5f7a6cf545656a9c90d507e64452db8"},"headline":"\u50cf\u7d20\u5c04\u51fb\u6e38\u620f","datePublished":"2025-06-13T10:00:22+00:00","mainEntityOfPage":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/"},"wordCount":927,"commentCount":0,"publisher":{"@id":"https:\/\/www.wunen.com\/#organization"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/","url":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/","name":"\u50cf\u7d20\u5c04\u51fb\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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#primaryimage"},"image":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wunen.com\/wp-content\/uploads\/2025\/03\/\u8d44\u8baf.jpg","datePublished":"2025-06-13T10:00:22+00:00","breadcrumb":{"@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%e6%b8%b8%e6%88%8f\/"]}]},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"http:\/\/www.wunen.com\/index.php\/2025\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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\/06\/13\/%e5%83%8f%e7%b4%a0%e5%b0%84%e5%87%bb%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":"\u50cf\u7d20\u5c04\u51fb\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\/3766","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=3766"}],"version-history":[{"count":0,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/posts\/3766\/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=3766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/categories?post=3766"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.wunen.com\/index.php\/wp-json\/wp\/v2\/tags?post=3766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}