diff --git a/package-lock.json b/package-lock.json index 9aa720b..0e51f3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1372,7 +1372,7 @@ "version": "18.2.18", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", - "devOptional": true, + "dev": true, "dependencies": { "@types/react": "*" } @@ -1390,24 +1390,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" }, - "node_modules/@types/stats.js": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", - "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", - "peer": true - }, - "node_modules/@types/three": { - "version": "0.160.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.160.0.tgz", - "integrity": "sha512-jWlbUBovicUKaOYxzgkLlhkiEQJkhCVvg4W2IYD2trqD2om3VK4DGLpHH5zQHNr7RweZK/5re/4IVhbhvxbV9w==", - "peer": true, - "dependencies": { - "@types/stats.js": "*", - "@types/webxr": "*", - "fflate": "~0.6.10", - "meshoptimizer": "~0.18.1" - } - }, "node_modules/@types/webxr": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.10.tgz", @@ -2251,12 +2233,6 @@ "three": ">=0.137" } }, - "node_modules/meshoptimizer": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", - "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "peer": true - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", diff --git a/public/images/gamepad.png b/public/images/gamepad.png index 7dcd27a..00b0403 100644 Binary files a/public/images/gamepad.png and b/public/images/gamepad.png differ diff --git a/public/images/keyboard.png b/public/images/keyboard.png index ac5b54f..149ff1b 100644 Binary files a/public/images/keyboard.png and b/public/images/keyboard.png differ diff --git a/public/images/mobile.png b/public/images/mobile.png index d32b92f..cde9aae 100644 Binary files a/public/images/mobile.png and b/public/images/mobile.png differ diff --git a/public/images/mousekeyboard.png b/public/images/mousekeyboard.png index 60c36f9..d7aa46d 100644 Binary files a/public/images/mousekeyboard.png and b/public/images/mousekeyboard.png differ diff --git a/src/App.jsx b/src/App.jsx index 249290b..bedae7b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -42,7 +42,6 @@ function App() { actions.setId(state.id); - state.onQuit(() => { actions.removePlayer(state); diff --git a/src/Landing.jsx b/src/Landing.jsx index 628f830..e053c36 100644 --- a/src/Landing.jsx +++ b/src/Landing.jsx @@ -36,6 +36,17 @@ export const Landing = () => { }); } } + + const handleKeyDown = (event) => { + if (event.key === 'Enter') { + setSetupStatus(1); + } + }; + + document.body.addEventListener('keydown', handleKeyDown); + return () => { + document.body.removeEventListener('keydown', handleKeyDown); + }; }, [setupStatus]); if (gameStarted) { @@ -49,7 +60,12 @@ export const Landing = () => { logo
-
@@ -63,23 +79,31 @@ export const Landing = () => {
setControlStyle("keyboard")}> -

Keyboard

keyboard +
+

Keyboard

+
setControlStyle("gamepad")}> -

Gamepad

gamepad +
+

Gamepad

+
setControlStyle("mouseKeyboard")}> -

Mouse & Keybaord

mouse & keyboard +
+

Mouse & Keyboard

+
-
+
setControlStyle("touch")}> -

Mobile

mobile +
+

Mobile

+
diff --git a/src/index.css b/src/index.css index 195ba66..0ff6487 100644 --- a/src/index.css +++ b/src/index.css @@ -155,20 +155,56 @@ body::-webkit-scrollbar { height: 100vh; display: grid; place-content: center; - gap: 400px; z-index: 2; font-family: "Hanken Grotesk"; .logo { img { width: 1200px; + margin: 150px; } } + .start { + opacity: 0; + display: flex; + margin: 175px; + justify-content: center; + align-items: center; + font-weight: 900; + color: rgba(255, 255, 255, 0.795); + + font-size: 60px; + text-shadow: 0 0 10px rgba(0, 0, 0, 1); + background: linear-gradient( + to right, + rgba(54, 54, 54, 0), + rgb(54, 54, 54), + rgba(54, 54, 54, 0) + ); + animation: blinking 2s infinite; + transition: all 0.2s ease 0s; + cursor: pointer; + &:hover { + text-shadow: 0 0 40px rgba(255, 255, 255, 1); + color: white; + opacity: 1; + animation: none; + } + button { + all: unset; + display: flex; + justify-content: center; + align-items: center; + display: inline-block; + } + } +} + .glassy { - width: 1280px; - height: 720px; - background: rgba(95, 95, 95, 0.25); + width: 80vw; + height: 90vh; + background: #0000008f; /* box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 ); */ backdrop-filter: blur(0px); -webkit-backdrop-filter: blur(0px); @@ -186,15 +222,18 @@ body::-webkit-scrollbar { .articles { display: flex; justify-content: space-between; - align-items: center; + align-items: flex-start; width: 100%; + column-gap: 4%; padding: 80px; - gap: 40px; + .article { - background: rgba(216, 216, 216, 0.25); - width: 100%; - height: 300px; - border-radius: 6px; + position: relative; + background: rgba(35, 35, 53, 0.685); + width: calc((100% - 3 * 4%) / 4); + aspect-ratio: 1; + border: 3px solid #ffffff; + border-radius: 10px; display: flex; justify-content: space-between; align-items: center; @@ -202,11 +241,14 @@ body::-webkit-scrollbar { padding: 20px; transition: all 0.2s ease 0s; cursor: pointer; + overflow: hidden; &:hover { background: rgba(216, 216, 216, 0.5); + transform: scale(1.05); } img { - width: 200px; + max-width: 100%; + height: auto; filter: drop-shadow(5px 5px 5px #0000008f); } } @@ -220,16 +262,39 @@ body::-webkit-scrollbar { width: 100px; } } + + .article_label { + position: absolute; + display: flex; + justify-content: center; + left: 0; + top: 80%; + background: rgba(6, 6, 6, 0.936); + border: 2px solid #272727; + width: 100%; + height: 100%; + overflow: hidden; + } + + .article_label p { + margin-top: 6px; + font-size: calc(0.01 * (80vw - 400px) + 10px); + color: white; + } } + .submit { font-weight: 900; + padding: 10px; color: rgba(255, 255, 255, 0.795); - + border: 3px solid #ffffff; + background: rgba(35, 35, 53, 0.685); + border-radius: 10px; font-size: 27px; transition: all 0.2s ease 0s; cursor: pointer; &:hover { - text-shadow: 0 0 40px rgba(255, 255, 255, 1); + text-shadow: 0 0 40px rgba(255, 255, 255, 0.541); color: white; opacity: 1; animation: none; @@ -244,41 +309,6 @@ body::-webkit-scrollbar { } } - .start { - opacity: 0; - display: flex; - justify-content: center; - align-items: center; - font-weight: 900; - color: rgba(255, 255, 255, 0.795); - - font-size: 60px; - text-shadow: 0 0 10px rgba(0, 0, 0, 1); - background: linear-gradient( - to right, - rgba(54, 54, 54, 0), - rgb(54, 54, 54), - rgba(54, 54, 54, 0) - ); - animation: blinking 2s infinite; - transition: all 0.2s ease 0s; - cursor: pointer; - &:hover { - text-shadow: 0 0 40px rgba(255, 255, 255, 1); - color: white; - opacity: 1; - animation: none; - } - button { - all: unset; - display: flex; - justify-content: center; - align-items: center; - display: inline-block; - } - } -} - .disabled { pointer-events: none; cursor: not-allowed; @@ -336,23 +366,33 @@ body::-webkit-scrollbar { font-size: 30px; } - .glassy{ - width: 100%; - height: 100vh; - .articles{ - gap:5px; - padding: 0; - .article{ - height: 200px; - padding: 10px; - img{ - width: 100px; + @media screen and (max-width: 1000px) { + .glassy { + width: 80vw; + height: 90vh; + padding: 20px; + .articles { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: flex-start; + column-gap: 4%; + row-gap: 20px; + .article { + width: calc((100% - 3 * 4%) / 2 - 10px); + aspect-ratio: 1; + padding: 10px; + transition: transform 0.3s ease; + img { + width: 100%; + height: auto; + } + &:hover { + transform: scale(1.05); + } + } } } - .article.mobile{ - img{width:50px;} - } - } } } }