优化击剑、起飞、一起击剑、一起起飞

master
chen 2021-12-07 13:43:20 +08:00
parent c5fcb3d64e
commit e8d8f183fc
2 changed files with 115 additions and 124 deletions

View File

@ -10,6 +10,8 @@ var allSayTimer = 5000;
var actionArr = ['dancing-left','dancing-right','dancing-down','dancing-up','dancing-wobble','dancing-wobble-right']; var actionArr = ['dancing-left','dancing-right','dancing-down','dancing-up','dancing-wobble','dancing-wobble-right'];
// 人物位移动画 // 人物位移动画
var moveArr = ['run-right','run-left','run-right-top','run-left-top','run-right-bottom','run-left-bottom']; var moveArr = ['run-right','run-left','run-right-top','run-left-top','run-right-bottom','run-left-bottom'];
// 随机荧光棒动画
var fluoArr = ['stick-go','stickcome'];
var peopleId = 0; var peopleId = 0;
// 窗体宽度 // 窗体宽度
var winWidth = $(window).width(); var winWidth = $(window).width();
@ -24,6 +26,8 @@ var dancingTime = 6000;
var runTime = 6000; var runTime = 6000;
// 随机移动的定时器 // 随机移动的定时器
var upTimer = null; var upTimer = null;
// 荧光棒关闭时间
var fluoTime = 6000//默认6秒关闭
// 集体舞ji // 集体舞ji
function allDancing(dangcing){ function allDancing(dangcing){
if(dangcing!=''){ if(dangcing!=''){
@ -52,17 +56,16 @@ function allDancing(dangcing){
},10000) },10000)
} }
} }
// 随机舞 // 创建人物时随机分配
function randomDancing(id){ function randomDancing(id){
actionArr.forEach((item,index)=>{ $(`.data${id} .people-img`).addClass(actionArr[Math.floor(Math.random()*actionArr.length)]);
var haveDan = $(`.data${id} .people-img`).is(`.${item}`); }
if(haveDan){ // 荧光棒动画事件
$(`.data${id} .people-img`).removeClass(item); function fluoEv(id,fluoEvent){
$(`.data${id} .people-img`).addClass(actionArr[Math.floor(Math.random()*actionArr.length)]); $(`#${id} .stick`).addClass(fluoEvent);
} else { setTimeout(()=>{
$(`.data${id} .people-img`).addClass(actionArr[Math.floor(Math.random()*actionArr.length)]); $(`#${id} .stick`).removeClass(fluoEvent);
} },fluoTime)
})
} }
// 个人动作舞 // 个人动作舞
function peopleAction(id,aevent){ function peopleAction(id,aevent){
@ -76,55 +79,13 @@ function peopleAction(id,aevent){
} }
}) })
} }
// // 位移事件
function upMove(id){ function upMove(id){
var odivu = document.getElementById(`${id}`); var odivu = document.getElementById(`${id}`);
upTimer = setInterval(()=>{ upTimer = setInterval(()=>{
// if(parseInt(odivu.style.top) <=10){ $(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// // clearInterval(upTimer);
// // downMove(id);
// $(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// } else {
$(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// }
},runTime) },runTime)
} }
// // 下
// function downMove(id){
// var odivd = document.getElementById(`${id}`);
// var downTimer = setInterval(()=>{
// if(parseInt(odivd.style.top) >=86){
// clearInterval(downTimer);
// upMove(id);
// } else {
// $(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// }
// },10)
// }
// // 左
// function leftMove(id){
// var odivl = document.getElementById(`${id}`);
// var leftTimer = setInterval(()=>{
// if(odivl.offsetLeft < 10){
// clearInterval(leftTimer);
// rightMove(id);
// } else {
// $(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// }
// },10)
// }
// // 右
// function rightMove(id){
// var odivr = document.getElementById(`${id}`);
// var rightTimer = setInterval(()=>{
// if(odivr.offsetLeft >= 86){
// clearInterval(rightTimer);
// leftMove(id);
// } else {
// $(`#${id}`).animate({top:`${Math.floor(Math.random()*90)}%`,left:`${Math.floor(Math.random()*90)}%`},Math.floor(Math.random()*40000+10000));
// }
// },10)
// }
// 随机位移 // 随机位移
function moveEv(id){ function moveEv(id){
upMove(id); upMove(id);

View File

@ -16,19 +16,21 @@ let leaderTime = 15*60
// 何时添加镜头 // 何时添加镜头
var addJingTime = 2000;//2秒 var addJingTime = 2000;//2秒
// 事件列表-中文 // 事件列表-中文
let eventTextList = ['切歌', '跳', '向左', '向右', '左抖腿', '右抖腿', '抖动', '一起喊', '镜头'] let eventTextList = ['切歌', '跳', '向左', '向右', '左抖腿', '右抖腿', '抖动', '一起喊', '镜头','击剑','起飞']
// 个人---荧光棒列表-中文
let fluoTextList = ['击剑','起飞'];
// 领舞---荧光棒列表-中文
let leaderFluoList = ['一起击剑','一起起飞'];
// 领舞者喊的集体舞 // 领舞者喊的集体舞
let allEventList = ['切歌', '一起跳', '一起向左', '一起向右', '一起左抖腿', '一起右抖腿', '一起抖动', '一起喊', '镜头'] let allEventList = ['切歌', '一起跳', '一起向左', '一起向右', '一起左抖腿', '一起右抖腿', '一起抖动', '一起喊', '镜头']
// 镜头列表 // 镜头列表
let list = ['scale-left', 'scale-right', 'scale-bottom-left', 'scale-bottom-right'] let list = ['scale-left', 'scale-right', 'scale-bottom-left', 'scale-bottom-right']
// 烟花次数 // 烟花次数
let firTimes = 0; let firTimes = 0;
// 根据事件文字 获取事件名 // 个人喊舞:根据事件文字 获取事件名
function getEvent(name) { function getEvent(name) {
let map = { let map = {
'烟花':'fireworks', '烟花':'fireworks',
'一起击剑':'stickcome',
'起飞':'stickgo',
'切歌' : 'change_song', '切歌' : 'change_song',
'跳' : 'dancing-down', '跳' : 'dancing-down',
'向左' : 'dancing-left', '向左' : 'dancing-left',
@ -43,12 +45,10 @@ function getEvent(name) {
return map[name] ? map[name] : '' return map[name] ? map[name] : ''
} }
// 根据事件文字 获取领舞者事件名 // 领舞者:根据事件文字 获取事件名
function getLeaderEvent(name) { function getLeaderEvent(name) {
let map = { let map = {
'烟花':'fireworks', '烟花':'fireworks',
'一起击剑':'stickcome',
'起飞':'stickgo',
'切歌' : 'change_song', '切歌' : 'change_song',
'一起跳' : 'dancing-down', '一起跳' : 'dancing-down',
'一起向左' : 'dancing-left', '一起向左' : 'dancing-left',
@ -62,22 +62,29 @@ function getLeaderEvent(name) {
return map[name] ? map[name] : '' return map[name] ? map[name] : ''
} }
//
function getLeaderFluoEvent(name) {
let leadMap = {
'一起击剑':'stickcome',
'一起起飞':'stick-go'
}
return leadMap[name] ? leadMap[name] : ''
}
// 随机选择镜头 // 随机选择镜头
function scale() { function scale() {
return list[Math.floor(Math.random() * 3)]; return list[Math.floor(Math.random() * 3)];
} }
// 字符串包含的事件 (仅取第一个) // 字符串包含的事件 (仅取第一个)
function getFirstEventKeyword(name) { // function getFirstEventKeyword(name) {
let event = '' // let event = ''
$.each(eventTextList, function (index, item) { // $.each(eventTextList, function (index, item) {
if (name.toString().indexOf(item) != -1) { // if (name.toString().indexOf(item) != -1) {
event = item // event = item
return false // return false
} // }
}) // })
return event // return event
} // }
function music() { function music() {
$.get(musicUrl, function (res) { $.get(musicUrl, function (res) {
@ -104,6 +111,18 @@ function changeMusic() {
function peopleHan(val){ function peopleHan(val){
return eventTextList.includes(val); return eventTextList.includes(val);
} }
// 领舞者:根据事件文字 获取事件名
function getFluoEvent(name) {
let fluoMap = {
'击剑':'stickcome',
'起飞':'stick-go'
}
return fluoMap[name] ? fluoMap[name] : ''
}
// 个人喊荧光棒
function peopleFluo(val){
return fluoTextList.includes(val);
}
// 领舞喊舞 // 领舞喊舞
function dancer(val){ function dancer(val){
return allEventList.includes(val); return allEventList.includes(val);
@ -122,7 +141,6 @@ function delExpireDiv() {
// console.log(delList.length, speakExpireTime+'秒未说话人数') // console.log(delList.length, speakExpireTime+'秒未说话人数')
delList.remove(); delList.remove();
} }
// 接受消息处理 // 接受消息处理
function receiveMessage(event) function receiveMessage(event)
{ {
@ -156,12 +174,12 @@ function receiveMessage(event)
// 领舞信息 目前为领舞名称 // 领舞信息 目前为领舞名称
let leaderInfo = '' let leaderInfo = ''
// 高能榜第一位设为领舞 // 高能榜第一位设为领舞
if (highList.length > 0) { if (highList!=undefined && highList.length > 0) {
leaderInfo = highList[0] leaderInfo = highList[0]
} }
// leaderInfo = '内有猛犬小心' // leaderInfo = '内有猛犬小心'
// leaderInfo = '饺子吃肉肉'
// uid是否存在 不存在则存入uidObj // uid是否存在 不存在则存入uidObj
let isNew = 0 let isNew = 0
@ -198,7 +216,6 @@ function receiveMessage(event)
leader.text = dm.text leader.text = dm.text
leader.event = eventName ? eventName : leaderEvent leader.event = eventName ? eventName : leaderEvent
} }
// 新用户 // 新用户
if(dm.is_new==1){ if(dm.is_new==1){
// if(dm.uname!=leader.uname){//如果弹幕的人的名字不等于领舞者的名字,就创建一个人物 // if(dm.uname!=leader.uname){//如果弹幕的人的名字不等于领舞者的名字,就创建一个人物
@ -214,13 +231,17 @@ function receiveMessage(event)
// 舰长添加大宝剑 // 舰长添加大宝剑
$(`#${dm.uid} .stick`).addClass("stick-swing-big-tow"); $(`#${dm.uid} .stick`).addClass("stick-swing-big-tow");
} }
setTimeout(()=>{ setTimeout(()=>{//关闭当前说话
$(`#${dm.uid} .speak`).addClass("dn"); $(`#${dm.uid} .speak`).addClass("dn");
},3000) },3000)
// 舞者喊舞 // 舞者喊舞---动作舞
if(peopleHan(dm.text)){ if(peopleHan(dm.text)){
peopleAction(`${dm.uid}`,dm.event); peopleAction(`${dm.uid}`,dm.event);
} }
// 舞者喊舞---荧光棒
if(peopleFluo(dm.text)){
fluoEv(`${dm.uid}`,getFluoEvent(dm.text));
}
} }
num++; num++;
@ -247,69 +268,78 @@ function receiveMessage(event)
$('.ground-bg').addClass(leader.event); $('.ground-bg').addClass(leader.event);
},addJingTime) },addJingTime)
} else { } else {
// 显示领舞说话 if(firTimes==0){
if (leader.text.length>0) { firTimes++;
$('.speak-pink').text(leader.text); // 显示领舞说话
$('.speak-pink').fadeIn(); if (leader.text.length>0) {
//关闭领舞说话 $('.speak-pink').text(leader.text);
setTimeout(()=>{ $('.speak-pink').fadeIn();
$('.speak-pink').fadeOut(); //关闭领舞说话
},3000) setTimeout(()=>{
} $('.speak-pink').fadeOut();
// 领舞说切歌 },3000)
if(leader.text=="切歌"){ }
changeMusic(); // 领舞说切歌
} if(leader.text=="切歌"){
if(leader.text==="烟花"){ changeMusic();
if(firTimes==0){ }
firTimes++; if(leader.text==="烟花"){
$('.lighting-bg').addClass('fireworks'); $('.lighting-bg').addClass('fireworks');
setTimeout(()=>{ setTimeout(()=>{
$('.lighting-bg').removeClass('fireworks'); $('.lighting-bg').removeClass('fireworks');
firTimes = 0;
},5000) },5000)
} }
} //领舞起飞
//领舞起飞 if(leader.text==="一起起飞"){
if(leader.text==="起飞"){
if(firTimes==0){
firTimes++;
$('.stick').removeClass('stick-swing'); $('.stick').removeClass('stick-swing');
$('.stick').addClass('stick-go'); $('.stick').addClass('stick-go');
setTimeout(()=>{ setTimeout(()=>{
$('.stick').removeClass('stick-go'); $('.stick').removeClass('stick-go');
$('.stick').addClass('stick-swing'); $('.stick').addClass('stick-swing');
firTimes = 0;
},6000) },6000)
} }
} if(leader.text==="一起击剑"){//一起击剑
//一起击剑
if(leader.text==="一起击剑"){
if(firTimes==0){
firTimes++;
$('.stick').addClass('stickcome'); $('.stick').addClass('stickcome');
setTimeout(()=>{ setTimeout(()=>{
$('.stick').removeClass('stickcome'); $('.stick').removeClass('stickcome');
firTimes = 0;
},6000) },6000)
} }
} if(peopleFluo(leader.text)){
$('.stick').removeClass('stick-swing');
// 领舞喊一起喊 $('.stick').addClass(getFluoEvent(dm.text));
if (leader.text.length >= 4) { setTimeout(()=>{
if(leader.text.slice(0,4)=="一起喊:" || leader.text.slice(0,4)=="一起喊:"){ $('.stick').removeClass(getFluoEvent(dm.text));
allSay(leader.text.slice(4)); $('.stick').addClass('stick-swing');
} },6000)
} }
setTimeout(()=>{
// 领舞自己喊跳舞 firTimes = 0;
if(peopleHan(dm.text)){ },2000)
clearInterval(dancerTimer); // 领舞喊一起喊
dancerOwn(leader.event); if (leader.text.length >= 4) {
} if(leader.text.slice(0,4)=="一起喊:" || leader.text.slice(0,4)=="一起喊:"){
// 领舞喊集体跳舞 allSay(leader.text.slice(4));
if(dancer(leader.text)){ }
allDancing(leader.event); }
// 领舞自己喊跳舞
if(peopleHan(dm.text)){
clearInterval(dancerTimer);
dancerOwn(leader.event);
}
// 领舞喊集体跳舞
if(dancer(leader.text)){
allDancing(leader.event);
}
// 领舞喊荧光棒事件
// if(getLeaderFluoEvent(leader.text)!=''){
// if(firTimes==0){//防多次说话
// firTimes++;
// console.log(getLeaderFluoEvent(leader.text));
// setTimeout(()=>{
// firTimes = 0;
// },5000)
// }
// }
} }
} }
// -------------------- 每条弹幕处理 end ----------------------- // -------------------- 每条弹幕处理 end -----------------------