From 01f4240c38a842fcc65990e10ae196c38c974617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com> Date: Wed, 26 Aug 2026 08:48:24 +0800 Subject: [PATCH] =?UTF-8?q?planet=20v3=EF=BC=9A=E7=AB=8B=E4=BD=93=E6=82=AC?= =?UTF-8?q?=E6=B5=AE=E6=98=9F=E7=90=83=E2=80=94=E2=80=94=E5=A4=A7=E7=88=86?= =?UTF-8?q?=E7=82=B8=E4=B8=AD=E8=AF=9E=E7=94=9F=EF=BC=8C=E5=91=A8=E5=9B=B4?= =?UTF-8?q?=E6=98=AF=E7=AD=89=E5=BE=85=E5=BC=80=E6=8B=93=E7=9A=84=E9=BB=AF?= =?UTF-8?q?=E6=B7=A1=E6=98=9F=E7=BE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按冰朔规格重做:球体三要素(高光偏移33%/暗面inset明暗交界/表面纹理pan自转) +大气rim+悬浮浮动9s+大爆炸(conic爆光+扩散环+18抛射碎屑) +黯淡星球群7颗(无光仅rim、其一带火种)+湖面语言纹理保留。 纯CSS轻量无依赖。搜索确认技术:stackoverflow/codepen pure CSS sphere。 --- .../first-planet-home/FirstPlanetHome.tsx | 66 +++-- .../first-planet-home/first-planet-home.css | 271 +++++++++--------- 2 files changed, 187 insertions(+), 150 deletions(-) diff --git a/build/mother-brain-desktop-app-phase4-20260825/source/hololake-native-desktop/src/modules/first-planet-home/FirstPlanetHome.tsx b/build/mother-brain-desktop-app-phase4-20260825/source/hololake-native-desktop/src/modules/first-planet-home/FirstPlanetHome.tsx index aa3fb13be..4d726ab89 100644 --- a/build/mother-brain-desktop-app-phase4-20260825/source/hololake-native-desktop/src/modules/first-planet-home/FirstPlanetHome.tsx +++ b/build/mother-brain-desktop-app-phase4-20260825/source/hololake-native-desktop/src/modules/first-planet-home/FirstPlanetHome.tsx @@ -63,18 +63,35 @@ function usePlanetSpecks(count: number) { }), [count]) } -// 大爆炸废墟:星球外圈的碎光微粒 -function useDebris(count: number) { +// 大爆炸:向外飞散的爆发碎屑(诞生瞬间的抛射物) +function useBangShards(count: number) { return useMemo(() => Array.from({ length: count }, (_, i) => { - const angle = seeded(i + 901) * Math.PI * 2 - const radius = 58 + seeded(i + 1101) * 26 + const angle = (i / count) * Math.PI * 2 + seeded(i + 901) * 0.5 + const dist = 62 + seeded(i + 1101) * 30 return { id: i, - x: 50 + Math.cos(angle) * radius, - y: 50 + Math.sin(angle) * radius * 0.8, - d: 3 + seeded(i + 1301) * 5, - dl: -seeded(i + 1501) * 7, - s: 0.8 + seeded(i + 1701) * 1.4, + x: 50 + Math.cos(angle) * dist, + y: 50 + Math.sin(angle) * dist * 0.85, + len: 6 + seeded(i + 1301) * 14, + rot: (angle * 180) / Math.PI, + warm: seeded(i + 1501) < 0.55, + dl: -seeded(i + 1701) * 4, + } + }), [count]) +} + +// 等待被开拓的黯淡星球群:大小不一、无光、仅 rim +function useDimPlanets(count: number) { + return useMemo(() => Array.from({ length: count }, (_, i) => { + const angle = (i / count) * Math.PI * 2 + seeded(i + 2001) * 0.9 + const dist = 34 + seeded(i + 2201) * 12 + return { + id: i, + x: 50 + Math.cos(angle) * dist * 0.95, + y: 40 + Math.sin(angle) * dist * 0.55, + s: 20 + seeded(i + 2401) * 34, + spark: i === 2, + dl: -seeded(i + 2601) * 5, } }), [count]) } @@ -138,8 +155,9 @@ export function FirstPlanetHome() { const [infinityLit, setInfinityLit] = useState(false) const [gateMessage, setGateMessage] = useState('') - const specks = usePlanetSpecks(42) - const debris = useDebris(12) + const specks = usePlanetSpecks(26) + const shards = useBangShards(18) + const dims = useDimPlanets(7) const formatted = useMemo(() => (raw ? formatGateNumber(raw) : ''), [raw]) const fullNumber = formatted ? (infinityLit ? `${formatted}∞` : formatted) : '' const canEnter = Boolean(fullNumber) @@ -157,22 +175,28 @@ export function FirstPlanetHome() {
-