From 0d1940d0c5abda3012873e951395ce638f95d219 Mon Sep 17 00:00:00 2001
From: zhangyi-user <1293605013@qq.com>
Date: Thu, 19 Mar 2026 19:11:07 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=99=AB=E5=AD=90?=
=?UTF-8?q?=E6=B8=B8=E6=88=8F=E5=80=8D=E9=80=9F=E8=B0=83=E8=8A=82=E3=80=81?=
=?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=9C=80=E9=AB=98=E5=88=86=E5=92=8C4?=
=?UTF-8?q?=E7=A7=8D=E6=96=B0=E8=99=AB=E5=AD=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
insect-catch-game/index.html | 30 ++++++++++++++++++
insect-catch-game/script.js | 50 ++++++++++++++++++++++++-----
insect-catch-game/style.css | 61 +++++++++++++++++++++++++++---------
3 files changed, 118 insertions(+), 23 deletions(-)
diff --git a/insect-catch-game/index.html b/insect-catch-game/index.html
index ebd3581..265b9c4 100644
--- a/insect-catch-game/index.html
+++ b/insect-catch-game/index.html
@@ -48,12 +48,42 @@
/>
+
+
+
+
+
+
+
+
+
+
+
+
Time: 00:00
Score: 0
+
High Score: 0
+
+
+
+ 1x
+
Are you annoyed yet?
You are playing an impossible game!!
diff --git a/insect-catch-game/script.js b/insect-catch-game/script.js
index f9963e7..a0adab3 100644
--- a/insect-catch-game/script.js
+++ b/insect-catch-game/script.js
@@ -4,25 +4,44 @@ const start_btn = document.getElementById('start-btn')
const game_container = document.getElementById('game-container')
const timeEl = document.getElementById('time')
const scoreEl = document.getElementById('score')
+const highScoreEl = document.getElementById('high-score')
+const speedSlider = document.getElementById('speed')
+const speedValue = document.getElementById('speed-value')
const message = document.getElementById('message')
let seconds = 0
let score = 0
let selected_insect = {}
+let gameSpeed = 1
+let highScore = localStorage.getItem('insectCatchHighScore') || 0
+
+highScoreEl.innerHTML = `High Score: ${highScore}`
start_btn.addEventListener('click', () => screens[0].classList.add('up'))
choose_insect_btns.forEach(btn => {
btn.addEventListener('click', () => {
const img = btn.querySelector('img')
- const src = img.getAttribute('src')
- const alt = img.getAttribute('alt')
- selected_insect = { src, alt }
+ const emoji = btn.querySelector('span')
+ if (img) {
+ const src = img.getAttribute('src')
+ const alt = img.getAttribute('alt')
+ selected_insect = { type: 'img', src, alt }
+ } else if (emoji) {
+ const content = emoji.textContent
+ const alt = btn.querySelector('p').textContent.toLowerCase()
+ selected_insect = { type: 'emoji', content, alt }
+ }
screens[1].classList.add('up')
setTimeout(createInsect, 1000)
startGame()
})
})
+speedSlider.addEventListener('input', (e) => {
+ gameSpeed = parseInt(e.target.value)
+ speedValue.textContent = `${gameSpeed}x`
+})
+
function startGame() {
setInterval(increaseTime, 1000)
}
@@ -42,7 +61,12 @@ function createInsect() {
const { x, y } = getRandomLocation()
insect.style.top = `${y}px`
insect.style.left = `${x}px`
- insect.innerHTML = `
`
+
+ if (selected_insect.type === 'emoji') {
+ insect.innerHTML = `${selected_insect.content}`
+ } else {
+ insect.innerHTML = `
`
+ }
insect.addEventListener('click', catchInsect)
@@ -65,14 +89,24 @@ function catchInsect() {
}
function addInsects() {
- setTimeout(createInsect, 1000)
- setTimeout(createInsect, 1500)
+ const baseDelay = 1000
+ const adjustedDelay = baseDelay / gameSpeed
+
+ setTimeout(createInsect, adjustedDelay)
+ setTimeout(createInsect, adjustedDelay * 1.5)
}
function increaseScore() {
score++
+ scoreEl.innerHTML = `Score: ${score}`
+
+ if (score > highScore) {
+ highScore = score
+ highScoreEl.innerHTML = `High Score: ${highScore}`
+ localStorage.setItem('insectCatchHighScore', highScore)
+ }
+
if(score > 19) {
message.classList.add('visible')
}
- scoreEl.innerHTML = `Score: ${score}`
-}
\ No newline at end of file
+}
diff --git a/insect-catch-game/style.css b/insect-catch-game/style.css
index 9808e9c..66ca07e 100644
--- a/insect-catch-game/style.css
+++ b/insect-catch-game/style.css
@@ -95,7 +95,8 @@ h1 {
}
.time,
-.score {
+.score,
+.high-score {
position: absolute;
top: 20px;
}
@@ -108,24 +109,34 @@ h1 {
right: 20px;
}
-.message {
- line-height: 1.7;
- background-color: rgba(0, 0, 0, 0.5);
- width: 100%;
- padding: 20px;
- z-index: 100;
- text-align: center;
- opacity: 0;
+.high-score {
+ top: 60px;
+ right: 20px;
+}
+
+.speed-control {
position: absolute;
- top: 0;
+ top: 20px;
left: 50%;
- transform: translate(-50%, -150%);
- transition: transform 0.4s ease-in;
+ transform: translateX(-50%);
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ z-index: 100;
}
-.message.visible {
- transform: translate(-50%, 150%);
- opacity: 1;
+.speed-control label {
+ font-size: 12px;
+}
+
+.speed-control input[type="range"] {
+ width: 100px;
+ cursor: pointer;
+}
+
+.speed-control span {
+ font-size: 12px;
+ min-width: 30px;
}
.insect {
@@ -148,3 +159,23 @@ h1 {
width: 100px;
height: 100px;
}
+
+.message {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ transform: translate(-50%, -150%);
+ background-color: rgba(0, 0, 0, 0.3);
+ width: 100%;
+ padding: 20px;
+ z-index: 100;
+ text-align: center;
+ opacity: 0;
+ transition: transform 0.4s ease-in;
+ line-height: 1.6;
+}
+
+.message.visible {
+ transform: translate(-50%, 150%);
+ opacity: 1;
+}