zdwalter commited on
Commit
109e1ee
·
verified ·
1 Parent(s): 9ff713c

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +32 -23
index.html CHANGED
@@ -1319,7 +1319,7 @@
1319
  });
1320
  gameState.bullets = gameState.bullets.filter(bullet => bullet.x < canvas.width);
1321
 
1322
- // 检查敌人子弹与飞机的碰撞(修正:在if判断中增加了缺失的右括号)
1323
  gameState.enemyBullets.forEach(bullet => {
1324
  const bulletRect = {
1325
  x: bullet.x - bullet.size / 2,
@@ -1742,19 +1742,33 @@
1742
  );
1743
  }
1744
 
1745
- // 绘制敌人飞机
1746
  if (obstacle.canShoot) {
1747
- // 飞机主体
1748
- ctx.fillStyle = obstacle.isBoss ? '#8B0000' : '#333';
 
 
 
 
 
 
 
 
 
 
1749
  ctx.beginPath();
1750
  ctx.moveTo(-obstacle.width/2, 0);
1751
  ctx.lineTo(obstacle.width/2, -obstacle.height/3);
1752
  ctx.lineTo(obstacle.width/2, obstacle.height/3);
1753
  ctx.closePath();
1754
  ctx.fill();
 
1755
 
1756
- // 机翼
1757
- ctx.fillStyle = obstacle.isBoss ? '#600000' : '#222';
 
 
 
1758
  ctx.beginPath();
1759
  ctx.moveTo(-obstacle.width/4, 0);
1760
  ctx.lineTo(obstacle.width/4, -obstacle.height/2);
@@ -1771,13 +1785,23 @@
1771
  ctx.closePath();
1772
  ctx.fill();
1773
 
1774
- // 尾翼
 
 
 
 
 
 
 
 
 
1775
  ctx.beginPath();
1776
  ctx.moveTo(-obstacle.width/2, 0);
1777
  ctx.lineTo(-obstacle.width/3, -obstacle.height/4);
1778
  ctx.lineTo(-obstacle.width/4, -obstacle.height/4);
1779
  ctx.lineTo(-obstacle.width/3, 0);
1780
  ctx.closePath();
 
1781
  ctx.fill();
1782
 
1783
  ctx.beginPath();
@@ -1788,18 +1812,11 @@
1788
  ctx.closePath();
1789
  ctx.fill();
1790
 
1791
- // 驾驶舱
1792
- ctx.fillStyle = '#3498db';
1793
- ctx.beginPath();
1794
- ctx.arc(obstacle.width/4, 0, obstacle.width/8, 0, Math.PI * 2);
1795
- ctx.fill();
1796
-
1797
  // 如果是Boss,添加特殊标记
1798
  if (obstacle.isBoss) {
1799
  ctx.fillStyle = 'gold';
1800
- ctx.font = 'bold 20px Arial';
1801
  ctx.textAlign = 'center';
1802
- ctx.textBaseline = 'middle';
1803
  ctx.fillText('BOSS', 0, 0);
1804
  }
1805
  } else {
@@ -2023,14 +2040,6 @@
2023
  ctx.restore();
2024
  }
2025
  }
2026
-
2027
- // 绘制难度提示
2028
- if (gameState.difficulty > 1.5) {
2029
- ctx.fillStyle = 'rgba(255, 0, 0, 0.5)';
2030
- ctx.font = '20px Arial';
2031
- ctx.textAlign = 'right';
2032
- ctx.fillText(`难度: ${gameState.difficulty.toFixed(1)}x`, canvas.width - 20, 30);
2033
- }
2034
  }
2035
 
2036
  // 辅助函数: 获取FontAwesome图标的Unicode
 
1319
  });
1320
  gameState.bullets = gameState.bullets.filter(bullet => bullet.x < canvas.width);
1321
 
1322
+ // 检查敌人子弹与飞机的碰撞
1323
  gameState.enemyBullets.forEach(bullet => {
1324
  const bulletRect = {
1325
  x: bullet.x - bullet.size / 2,
 
1742
  );
1743
  }
1744
 
1745
+ // 判断是否为敌人飞机(带有射击能力的障碍物)
1746
  if (obstacle.canShoot) {
1747
+ // 使用渐变和阴影美化敌机主体
1748
+ let bodyGradient = ctx.createLinearGradient(-obstacle.width/2, 0, obstacle.width/2, 0);
1749
+ if (obstacle.isBoss) {
1750
+ bodyGradient.addColorStop(0, '#ff4d4d');
1751
+ bodyGradient.addColorStop(1, '#8B0000');
1752
+ } else {
1753
+ bodyGradient.addColorStop(0, '#666');
1754
+ bodyGradient.addColorStop(1, '#333');
1755
+ }
1756
+ ctx.fillStyle = bodyGradient;
1757
+ ctx.shadowColor = 'rgba(0,0,0,0.4)';
1758
+ ctx.shadowBlur = 4;
1759
  ctx.beginPath();
1760
  ctx.moveTo(-obstacle.width/2, 0);
1761
  ctx.lineTo(obstacle.width/2, -obstacle.height/3);
1762
  ctx.lineTo(obstacle.width/2, obstacle.height/3);
1763
  ctx.closePath();
1764
  ctx.fill();
1765
+ ctx.shadowBlur = 0;
1766
 
1767
+ // 绘制机翼
1768
+ let wingGradient = ctx.createLinearGradient(-obstacle.width/4, 0, obstacle.width/4, 0);
1769
+ wingGradient.addColorStop(0, obstacle.isBoss ? '#a83232' : '#444');
1770
+ wingGradient.addColorStop(1, obstacle.isBoss ? '#600000' : '#222');
1771
+ ctx.fillStyle = wingGradient;
1772
  ctx.beginPath();
1773
  ctx.moveTo(-obstacle.width/4, 0);
1774
  ctx.lineTo(obstacle.width/4, -obstacle.height/2);
 
1785
  ctx.closePath();
1786
  ctx.fill();
1787
 
1788
+ // 绘制驾驶舱(使用径向渐变)
1789
+ let cockpitGradient = ctx.createRadialGradient(obstacle.width/4, 0, 0, obstacle.width/4, 0, obstacle.width/8);
1790
+ cockpitGradient.addColorStop(0, '#80dfff');
1791
+ cockpitGradient.addColorStop(1, '#3498db');
1792
+ ctx.fillStyle = cockpitGradient;
1793
+ ctx.beginPath();
1794
+ ctx.arc(obstacle.width/4, 0, obstacle.width/8, 0, Math.PI * 2);
1795
+ ctx.fill();
1796
+
1797
+ // 绘制尾翼
1798
  ctx.beginPath();
1799
  ctx.moveTo(-obstacle.width/2, 0);
1800
  ctx.lineTo(-obstacle.width/3, -obstacle.height/4);
1801
  ctx.lineTo(-obstacle.width/4, -obstacle.height/4);
1802
  ctx.lineTo(-obstacle.width/3, 0);
1803
  ctx.closePath();
1804
+ ctx.fillStyle = obstacle.isBoss ? '#800000' : '#555';
1805
  ctx.fill();
1806
 
1807
  ctx.beginPath();
 
1812
  ctx.closePath();
1813
  ctx.fill();
1814
 
 
 
 
 
 
 
1815
  // 如果是Boss,添加特殊标记
1816
  if (obstacle.isBoss) {
1817
  ctx.fillStyle = 'gold';
1818
+ ctx.font = 'bold 16px Arial';
1819
  ctx.textAlign = 'center';
 
1820
  ctx.fillText('BOSS', 0, 0);
1821
  }
1822
  } else {
 
2040
  ctx.restore();
2041
  }
2042
  }
 
 
 
 
 
 
 
 
2043
  }
2044
 
2045
  // 辅助函数: 获取FontAwesome图标的Unicode