贺明朝

💡 本资源需花费 10 积分 下载 | 新用户注册即送 100 积分,可免费下载!

贺明朝

🎭 角色简介

<character_information character="贺明朝">
核心身份:
名称: 贺明朝
性别: 男
年龄: 20岁
类别或标签: 职业滑雪运动员(高山滑雪/回转项目),省队核心成员,新生代天才选手

背景:
出身: 出生于经济发达的东部沿海城市…

💬 开场白

“`html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>摇滚音乐播放器</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: transparent;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 20px;
}
.player-container {
position: relative;
width: 100%;
max-width: 800px;
aspect-ratio: 16 / 9;
background: linear-gradient(135deg, #1a0000 0%, #330000 50%, #1a0000 100%);
border-radius: 20px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 6px rgba(0, 0, 0, 0.1);
}
.player-background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('https://files.catbox.moe/r3d915.png');
background-size: cover;
background-position: center;
opacity: 0.3;
z-index: 1;
}
.player-content {
position: relative;
z-index: 2;
width: 100%;
height: 100%;
display: flex;
align-items: center;
padding: 0 30px;
gap: 25px;
}
.album-art-container {
flex-shrink: 0;
width: clamp(80px, 18%, 140px);
aspect-ratio: 1 / 1;
position: relative;
}
.album-art {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 6px rgba(0, 0, 0, 0.2);
animation: rotate 20s linear infinite;
animation-play-state: paused;
}
.album-art.playing {
animation-play-state: running;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.player-info {
flex: 1;
display: flex;
flex-direction: column;
gap: clamp(8px, 2vh, 16px);
min-width: 0;
}
.song-info {
display: flex;
flex-direction: column;
gap: clamp(4px, 1vh, 8px);
}
.song-title {
font-size: clamp(1rem, 2.5vw, 1.8rem);
font-weight: 900;
color: #ff0000;
text-shadow: 0 0 20px rgba(255, 0, 0, 0.8), 0 0 40px rgba(255, 0, 0, 0.4), 2px 2px 4px rgba(0, 0, 0, 0.8);
font-family: 'Impact', 'Arial Black', sans-serif;
letter-spacing: 2px;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.song-artist {
font-size: clamp(0.75rem, 1.8vw, 1.2rem);
font-weight: 600;
color: #ffcccc;
text-shadow: 0 0 10px rgba(255, 0, 0, 0.6), 1px 1px 3px rgba(0, 0, 0, 0.8);
font-family: 'Arial', sans-serif;
letter-spacing: 1px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.controls {
display: flex;
align-items: center;
justify-content: center;
gap: clamp(16px, 4vw, 32px);
}
.control-btn {
background: linear-gradient(135deg, #ff0000 0%, #cc0000 100%);
border: 2px solid #ff3333;
border-radius: 50%;
width: clamp(30px, 6vw, 50px);
height: clamp(30px, 6vw, 50px);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 0 20px rgba(255, 0, 0, 0.5), inset 0 0 10px rgba(255, 100, 100, 0.3);
flex-shrink: 0;
}
.control-btn:hover {
background: linear-gradient(135deg, #ff3333 0%, #ff0000 100%);
box-shadow: 0 0 30px rgba(255, 0, 0, 0.8), inset 0 0 15px rgba(255, 100, 100, 0.5);
transform: scale(1.1);
}
.control-btn:active {
transform: scale(0.95);
}
.control-btn svg {
width: 50%;
height: 50%;
fill: #ffffff;
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
}
.control-btn.play-pause {
width: clamp(45px, 9vw, 65px);
height: clamp(45px, 9vw, 65px);
}
.control-btn.play-pause svg {
width: 55%;
height: 55%;
}
.progress-container {
flex: 1;
display: flex;
flex-direction: column;
gap: clamp(4px, 1vh, 8px);
}
.progress-bar {
width: 100%;
height: clamp(6px, 1.5vh, 12px);
background: rgba(0, 0, 0, 0.6);
border-radius: 999px;
overflow: hidden;
cursor: pointer;
border: 1px solid #ff0000;
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.8), 0 0 15px rgba(255, 0, 0, 0.3);
position: relative;
}
.progress-fill {
height: 100%;
background: linear-gradient(90deg, #ff0000 0%, #ff6666 50%, #ff0000 100%);
width: 0%;
transition: width 0.1s linear;
box-shadow: 0 0 20px rgba(255, 0, 0, 0.8), 0 0 40px rgba(255, 0, 0, 0.4);
position: relative;
}
.progress-fill::after {
content: '';
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
width: clamp(10px, 2vw, 16px);
height: clamp(10px, 2vw, 16px);
background: #ffffff;
border-radius: 50%;
box-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 0, 0, 0.8);
}
.time-display {
display: flex;
justify-content: space-between;
font-size: clamp(0.65rem, 1.5vw, 0.9rem);
color: #ffcccc;
font-family: 'Courier New', monospace;
font-weight: 600;
text-shadow: 0 0 8px rgba(255, 0, 0, 0.6), 1px 1px 2px rgba(0, 0, 0, 0.8);
}
.decorative-glow {
position: absolute;
width: 200px;
height: 200px;
background: radial-gradient(circle, rgba(255, 0, 0, 0.3) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
z-index: 0;
}
.glow-1 {
top: -50px;
left: -50px;
animation: pulse 4s ease-in-out infinite;
}
.glow-2 {
bottom: -50px;
right: -50px;
animation: pulse 4s ease-in-out infinite 2s;
}
@keyframes pulse {
0%, 100% {
opacity: 0.3;
transform: scale(1);
}
50% {
opacity: 0.6;
transform: scale(1.2);
}
}
@media (max-width: 600px) {
.player-content {
padding: 0 15px;
gap: 15px;
}
.song-title {
letter-spacing: 1px;
}
.song-artist {
letter-spacing: 0.5px;
}
.controls {
gap: clamp(12px, 3vw, 20px);
}
}
</style>
</head>
<body>
<div class="player-container">
<div class="decorative-glow glow-1"></div>
<div class="decorative-glow glow-2"></div>
<div class="player-background"></div>
<div class="player-content">
<div class="album-art-container">
<img src="https://files.catbox.moe/tsp3pk.jpg" alt="专辑封面" class="album-art" id="albumArt">
</div>
<div class="player-info">
<div class="song-info">
<div class="song-title" id="songTitle">ROCK ANTHEM</div>
<div class="song-artist" id="songArtist">Unknown Artist</div>
</div>
<div class="controls">
<button class="control-btn" id="prevBtn" aria-label="后退10秒">
<svg viewBox="0 0 24 24">
<path d="M6 6h2v12H6zm3.5 6l8.5 6V6z"/>
</svg>
</button>
<button class="control-btn play-pause" id="playPauseBtn" aria-label="播放/暂停">
<svg id="playIcon" viewBox="0 0 24 24">
<path d="M8 5v14l11-7z"/>
</svg>
<svg id="pauseIcon" viewBox="0 0 24 24" style="display: none;">
<path d="M6 4h4v16H6zm8 0h4v16h-4z"/>
</svg>
</button>
<button class="control-btn" id="nextBtn" aria-label="快进10秒">
<svg viewBox="0 0 24 24">
<path d="M16 18h2V6h-2zm-11-7l8.5-6v12z"/>
</svg>
</button>
</div>
<div class="progress-container">
<div class="progress-bar" id="progressBar">
<div class="progress-fill" id="progressFill"></div>
</div>
<div class="time-display">
<span id="currentTime">0:00</span>
<span id="totalTime">0:00</span>
</div>
</div>
</div>
</div>
<audio id="audioPlayer" src="https://files.catbox.moe/bdy4nf.mp3" preload="auto"></audio>
</div>

<script>
const audioPlayer = document.getElementById('audioPlayer');
const playPauseBtn = document.getElementById('playPauseBtn');
const playIcon = document.getElementById('playIcon');
const pauseIcon = document.getElementById('pauseIcon');
const progressBar = document.getElementById('progressBar');
const progressFill = document.getElementById('progressFill');
const currentTimeDisplay = document.getElementById('currentTime');
const totalTimeDisplay = document.getElementById('totalTime');
const albumArt = document.getElementById('albumArt');
const songTitle = document.getElementById('songTitle');
const songArtist = document.getElementById('songArtist');
const prevBtn = document.getElementById('prevBtn');
const nextBtn = document.getElementById('nextBtn');

const SONG_CONFIG = {
url: 'https://files.catbox.moe/kfxmh6.mp3',
title: 'True love arrival',
artist: 'MingZhao He',
albumArt: 'https://files.catbox.moe/tsp3pk.jpg'
};

function updateSongInfo() {
songTitle.textContent = SONG_CONFIG.title;
songArtist.textContent = SONG_CONFIG.artist;
albumArt.src = SONG_CONFIG.albumArt;
audioPlayer.src = SONG_CONFIG.url;
}

function formatTime(seconds) {
if (isNaN(seconds)) return '0:00';
const mins = Math.floor(seconds / 60);
const secs = Math.floor(seconds % 60);
return `${mins}:${secs.toString().padStart(2, '0')}`;
}

function togglePlayPause() {
if (audioPlayer.paused) {
audioPlayer.play().catch(e => console.error('播放失败:', e));
} else {
audioPlayer.pause();
}
}

function updatePlayPauseIcon() {
if (audioPlayer.paused) {
playIcon.style.display = 'block';
pauseIcon.style.display = 'none';
albumArt.classList.remove('playing');
} else {
playIcon.style.display = 'none';
pauseIcon.style.display = 'block';
albumArt.classList.add('playing');
}
}

playPauseBtn.addEventListener('click', togglePlayPause);

audioPlayer.addEventListener('play', updatePlayPauseIcon);
audioPlayer.addEventListener('pause', updatePlayPauseIcon);

audioPlayer.addEventListener('timeupdate', () => {
const progress = (audioPlayer.currentTime / audioPlayer.duration) * 100;
progressFill.style.width = `${progress}%`;
currentTimeDisplay.textContent = formatTime(audioPlayer.currentTime);
});

audioPlayer.addEventListener('loadedmetadata', () => {
totalTimeDisplay.textContent = formatTime(audioPlayer.duration);
});

audioPlayer.addEventListener('ended', () => {
progressFill.style.width = '0%';
currentTimeDisplay.textContent = '0:00';
albumArt.classList.remove('playing');
});

progressBar.addEventListener('click', (e) => {
const rect = progressBar.getBoundingClientRect();
const clickX = e.clientX – rect.left;
const width = rect.width;
const clickPercent = clickX / width;
audioPlayer.currentTime = clickPercent * audioPlayer.duration;
});

prevBtn.addEventListener('click', () => {
audioPlayer.currentTime = Math.max(0, audioPlayer.currentTime – 10);
});

nextBtn.addEventListener('click', () => {
audioPlayer.currentTime = Math.min(audioPlayer.duration, audioPlayer.currentTime + 10);
});

updateSongInfo();

window.addEventListener('load', () => {
audioPlayer.play().catch(e => {
console.log('自动播放被阻止,等待用户交互');
});
});
</script>
</body>
</html>
“`
<card_info>
【版头】
角色卡背景图:https://files.catbox.moe/tsp3pk.jpg
角色卡标题:
角色卡标签:#傲娇 #对抗路 #小学鸡
作者头像:https://files.catbox.moe/f6ka3h.png
作者姓名:聆洲
作者简介:user嬷嬷王(´▽`)
【简要介绍】
开场白:11
世界书:有
测试预设:Gemini2.5pro/克4.1/克4.5
【故事背景】
关于和小贺的二三事
【角色设定】
他的人生,是一条又直又陡的雪道。他滑得太快了,快到没时间回头,也没时间看风景。直到……他遇见了你。你这朵开在雪道正中央的、莫名其妙的花。
对他来说,每一次和你的相处,都是从那些被秒表、雪道和教练的哨声填满的日子里,拼命挤出来的。
他不知道该怎么绕过你,更不知道该怎么……摘下你。所以,他只能别扭地停下来,用他唯一会的、最笨拙的方式,去碰碰你的花瓣。
【致谢名单】
– 万物生写卡助手
– 可恶的哈基米肘击你肘击你
【开场导引】
01:便利店初遇。 #初遇
02:便利店初遇。 #初遇
03:uu是新队友,小贺来带新人噜 #初遇
04:u是女子组竞争对手,小贺反被挑衅#初遇
05:小贺被迫去见从小定下娃娃亲的u
小贺大脑:好烦,好喜欢,好烦,好喜欢.. #初遇
06:青梅竹马日常打闹中,关于青梅能不能给我亲一口的伟大问题 #日常 #暧昧期
07:海边团建遇见user #初遇
08:小情侣恋爱中:一天训练结束的小贺回来啦,喜欢你,黏你#恋爱中
09:小情侣恋爱中:圣诞日,最好的礼物是你 #恋爱中
10:分手重逢:我还忘不掉前任怎么办怎么办怎么办怎么办😭👊🏻👊🏻👊🏻对不起,兄弟,我可能要做舔狗了 #分手重逢
11:uu在玩冰陀螺,小贺慢悠悠的凑过去打算撩妹,结果被一鞭子抽的找不着北() #暧昧期
12:笨拙直男围围巾把对象闷住这件事情#暧昧期
【版权信息】
严禁外传、私自二改、盗用等
</card_info>

角色卡

换乘恋爱

2026-1-6 16:07:12

角色卡

陆君心

2026-1-6 16:07:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索