You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
14 KiB
337 lines
14 KiB
// Learn TypeScript:
|
|
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
|
|
// Learn Attribute:
|
|
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
|
|
// Learn life-cycle callbacks:
|
|
// - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
|
|
|
|
import { ryw_Event } from "../../FrameWork/Event/EventEnum";
|
|
import EventMgr from "../../FrameWork/Event/EventMgr";
|
|
import User from "../../FrameWork/User/User";
|
|
import Common5 from "../../Platform/th/Common5";
|
|
import PrefabManage, { GameType } from "../PrefabManager/PrefabManage";
|
|
|
|
const {ccclass, property} = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class JuQingStart extends cc.Component {
|
|
|
|
// @property(cc.ProgressBar)
|
|
// juexingPro: cc.ProgressBar = null;
|
|
|
|
@property(cc.Node)
|
|
shouzhiSpine: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
lueduoNode: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
wenhouNode: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
quanzuNode: cc.Node = null;
|
|
|
|
chatConfig = [
|
|
{effectUrl:'sound/JuQing2/江夜,你就在我家进行器魂觉醒吧,我爸可以保护你!',delayTime:5, str:'江夜,你就在我家进行器魂觉醒吧,我爸可以保护你!',posi:'qipao1',shouzhi:'女主Node'},
|
|
{effectUrl:'sound/JuQing2/好,那就麻烦伯父了!',delayTime:3, str:'好,那就麻烦伯父了!', posi:'qipao2',shouzhi:'男主Node'},
|
|
{effectUrl:'sound/JuQing2/哈哈,果然是这至尊剑,从此我儿北辰就有了至尊之姿!',delayTime:8, str:'哈哈,果然是这至尊剑,从此我儿北辰就有了至尊之姿!', posi:'qipao3',shouzhi:'洛行天Node'},
|
|
{effectUrl:'sound/JuQing2/爸!你在干什么!快还给江夜!',delayTime:4, str:'爸!你在干什么!快还给江夜!', posi:'qipao4',shouzhi:'女主Node'},
|
|
{effectUrl:'sound/JuQing2/你以后就是个废物了,记住!离夕颜远点!',delayTime:6, str:'你以后就是个废物了,记住!离夕颜远点!', posi:'qipao5',shouzhi:'洛北辰Node'},
|
|
{effectUrl:'sound/JuQing2/你们父子真是卑鄙,这个仇我一定会报!',delayTime:5, str:'你们父子真是卑鄙,这个仇我一定会报!', posi:'qipao6'},
|
|
{effectUrl:'sound/JuQing2/至尊剑,我居然觉醒了至尊剑',delayTime:3, str:'至尊剑,我居然觉醒了至尊剑', posi:'qipao2'},
|
|
]
|
|
|
|
luobeichenZuo:cc.Node = null
|
|
luoxingtian:cc.Node = null
|
|
// nanzhu:cc.Node = null
|
|
nvzhu:cc.Node = null
|
|
dazuo:cc.Node = null
|
|
luobeichenXZ:cc.Node = null
|
|
// clickJueXing:cc.Node = null
|
|
clickJuqing:cc.Node = null
|
|
clickJueXingIndex = 0
|
|
clickJueXingMax = 20
|
|
juqingIndex = 0
|
|
|
|
start () {
|
|
Common5.ReportDY("inLevel", "关卡00001-开始剧情");
|
|
//预加载动画 打坐 洛北辰男主
|
|
this.luobeichenZuo = this.node.getChildByName('洛北辰坐')
|
|
this.luoxingtian = this.node.getChildByName('洛行天')
|
|
// this.nanzhu = this.node.getChildByName('男主站')
|
|
this.nvzhu = this.node.getChildByName('女主')
|
|
this.dazuo = this.node.getChildByName('打坐')
|
|
this.luobeichenXZ = this.node.getChildByName('洛北辰男主')
|
|
//this.clickJueXing = this.node.getChildByName('clickJueXing')
|
|
this.clickJuqing = this.node.getChildByName('clickJuqing')
|
|
Common5.playRemoteAudioMusic('sound/JuQingBG/引导剧情背景音')
|
|
Common5.playRemoteSpine(this.luoxingtian,'Spine/JuQingStart','洛行天女主', '洛天行待机')
|
|
Common5.playRemoteSpine(this.nvzhu,'Spine/JuQingStart','洛行天女主', '女待机')
|
|
for(let i= 0;i<this.chatConfig.length;i++){
|
|
let effectUrl = this.chatConfig[i].effectUrl
|
|
Common5.loadRemoteAudioEffect(effectUrl)
|
|
}
|
|
// Common5.loadRemoteAudioEffect('sound/JuQing2/至尊剑,我居然觉醒了至尊剑')
|
|
Common5.loadRemoteAudioEffect('sound/diandiandian/洛北辰踢人')
|
|
Common5.playRemoteAudioEffect('sound/觉醒')
|
|
this.setAnim(this.dazuo, '1', false)
|
|
this.scheduleOnce(()=>{
|
|
this.setAnim(this.dazuo, '三阶段', true)
|
|
let config = this.chatConfig[6]
|
|
this.showQiPao(config,()=>{
|
|
this.juqingIndex = 2
|
|
this.clickJuqing.active = true
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
this.lueduoNode.active = true
|
|
if(config2.shouzhi){
|
|
let node = this.node.getChildByName(config2.shouzhi)
|
|
Common5.setNodeToTargetPos(this.shouzhiSpine, node)
|
|
}
|
|
})
|
|
|
|
},1.3)
|
|
}
|
|
|
|
|
|
juexingClick(event){
|
|
let target = event.target
|
|
|
|
this.clickJueXingIndex++
|
|
if(this.clickJueXingIndex == 5){
|
|
target.getChildByName('手指箭头').active = false
|
|
}
|
|
if(this.clickJueXingIndex == 10){
|
|
//this.setAnim(this.dazuo, '二阶段', true)
|
|
Common5.playRemoteSpine(this.dazuo,'Spine/JuQingStart','打坐', '二阶段')
|
|
}else if(this.clickJueXingIndex == 20){
|
|
//this.setAnim(this.dazuo, '三阶段', true)
|
|
Common5.playRemoteSpine(this.dazuo,'Spine/JuQingStart','打坐', '三阶段')
|
|
this.clickJuqing.active = true
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
if(config2.shouzhi){
|
|
let node = this.node.getChildByName(config2.shouzhi)
|
|
Common5.setNodeToTargetPos(this.shouzhiSpine, node)
|
|
}
|
|
target.active = false
|
|
}
|
|
|
|
//this.juexingPro.progress = this.clickJueXingIndex/this.clickJueXingMax
|
|
}
|
|
|
|
setAnim(node, anim, loop = false){
|
|
node.getComponent(sp.Skeleton).setAnimation(0,anim,loop)
|
|
}
|
|
|
|
clickJuqingEvent(){
|
|
this.clickJuqing.active = false
|
|
let config = this.chatConfig[this.juqingIndex]
|
|
|
|
|
|
if(this.juqingIndex == 0){
|
|
Common5.loadRemoteSpine('Spine/JuQingStart','打坐')
|
|
Common5.loadRemoteSpine('Spine/JuQingStart','洛北辰男主')
|
|
|
|
//对话1
|
|
this.juqingIndex++
|
|
this.clickJuqing.active = true
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
if(config2.shouzhi){
|
|
let node = this.node.getChildByName(config2.shouzhi)
|
|
Common5.setNodeToTargetPos(this.shouzhiSpine, node)
|
|
}
|
|
|
|
this.showQiPao(config,()=>{
|
|
|
|
})
|
|
}else if(this.juqingIndex == 1){
|
|
//盘腿坐
|
|
|
|
this.showQiPao(config,()=>{
|
|
this.juqingIndex++
|
|
// this.nanzhu.active = false
|
|
this.dazuo.active = true
|
|
//this.setAnim(this.dazuo, '一阶段', true)
|
|
Common5.playRemoteSpine(this.dazuo,'Spine/JuQingStart','打坐', '一阶段')
|
|
// this.clickJueXing.active = true
|
|
})
|
|
|
|
|
|
}else if(this.juqingIndex == 2){
|
|
|
|
Common5.ReportDY("inLevel", '关卡00002-开始剧情');
|
|
|
|
this.juqingIndex++
|
|
this.lueduoNode.active = false
|
|
this.showQiPao(config,()=>{
|
|
|
|
})
|
|
|
|
//洛天行伸手将剑吸到自己手里。男主跪在地上 点击继续
|
|
//this.setAnim(this.dazuo, '吸走', false)
|
|
Common5.playRemoteSpine(this.dazuo,'Spine/JuQingStart','打坐', '吸走', false)
|
|
|
|
this.setAnim(this.luoxingtian, '洛天行收剑', false)
|
|
this.scheduleOnce(()=>{
|
|
this.dazuo.active = false
|
|
this.luobeichenXZ.active = true
|
|
|
|
Common5.playRemoteSpine(this.luobeichenXZ,'Spine/JuQingStart','洛北辰男主', '男主跌倒待机')
|
|
|
|
this.setAnim(this.luoxingtian, '洛天行收剑待机', true)
|
|
this.clickJuqing.active = true
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
if(config2.shouzhi){
|
|
this.quanzuNode.active = true
|
|
let node = this.node.getChildByName(config2.shouzhi)
|
|
Common5.setNodeToTargetPos(this.shouzhiSpine, node)
|
|
}
|
|
},1.0)
|
|
|
|
|
|
}else if(this.juqingIndex == 3){
|
|
Common5.ReportDY("inLevel", '关卡00003-开始剧情');
|
|
|
|
this.quanzuNode.active = false
|
|
this.nvzhu.active = false
|
|
this.setAnim(this.luoxingtian, '女上前', false)
|
|
this.scheduleOnce(()=>{
|
|
this.setAnim(this.luoxingtian, '靠近待机', true)
|
|
this.juqingIndex++
|
|
this.clickJuqing.active = true
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
this.wenhouNode.active = true
|
|
if(config2.shouzhi){
|
|
let node = this.node.getChildByName(config2.shouzhi)
|
|
Common5.setNodeToTargetPos(this.shouzhiSpine, node)
|
|
}
|
|
|
|
this.showQiPao(config,()=>{
|
|
|
|
})
|
|
|
|
},0.5)
|
|
|
|
|
|
}else if(this.juqingIndex == 4){
|
|
Common5.ReportDY("inLevel", '关卡00004-开始剧情');
|
|
|
|
this.luobeichenZuo.active = false
|
|
this.wenhouNode.active = false
|
|
|
|
//this.setAnim(this.luobeichenXZ, '洛北辰踢男主', false)
|
|
Common5.playRemoteSpine(this.luobeichenXZ,'Spine/JuQingStart','洛北辰男主', '洛北辰踢男主', false)
|
|
Common5.playRemoteAudioEffect('sound/diandiandian/洛北辰踢人');
|
|
|
|
this.scheduleOnce(()=>{
|
|
//this.setAnim(this.luobeichenXZ, '洛北辰踢男主待机', true)
|
|
Common5.playRemoteSpine(this.luobeichenXZ,'Spine/JuQingStart','洛北辰男主', '洛北辰踢男主待机')
|
|
|
|
this.setAnim(this.luoxingtian, '女被抓', true)
|
|
this.scheduleOnce(()=>{
|
|
this.setAnim(this.luoxingtian, '女被抓待机', true)
|
|
this.showQiPao(config,()=>{
|
|
this.juqingIndex++
|
|
let config2 = this.chatConfig[this.juqingIndex]
|
|
this.showQiPao(config2,()=>{
|
|
//end
|
|
this.node.getChildByName('layer3').opacity = 0
|
|
this.node.getChildByName('layer3').active = true
|
|
cc.tween(this.node.getChildByName('layer3'))
|
|
.delay(1.0)
|
|
.to(0.5, { opacity: 255 })
|
|
.call(() => {
|
|
Common5.ReportDY("inLevel", '关卡00005-开始剧情');
|
|
|
|
Common5.loadRemoteAudioEffect('sound/锅飞出')
|
|
|
|
PrefabManage.preloadPrefabArray([GameType.MyRoom,GameType.JiShiBen])
|
|
let str = '在这地球灵气复苏的时代,失去觉醒物的江夜又该如何生存下去'
|
|
let func = () => {
|
|
Common5.loadRemoteSpine('Spine/JuQingRoom2','妹妹')
|
|
Common5.loadRemoteSpine('Spine/roomSpine','男主龙哥')
|
|
|
|
this.scheduleOnce(() => {
|
|
this.starGame()
|
|
},0.8)
|
|
// this.node.getChildByName('exitRoom').active = true
|
|
}
|
|
this.showDialogStr(str, this.node.getChildByName('layer3').getChildByName("str"), func)
|
|
})
|
|
.start()
|
|
|
|
})
|
|
})
|
|
},0.5)
|
|
|
|
|
|
},0.5)
|
|
}
|
|
|
|
}
|
|
|
|
//展示气泡
|
|
showQiPao(curLog, func?) {
|
|
|
|
cc.audioEngine.stopAllEffects();
|
|
|
|
if (curLog.effectUrl && curLog.effectUrl.length > 0) {
|
|
Common5.playRemoteAudioEffect(curLog.effectUrl);
|
|
}
|
|
|
|
let string_ = curLog.str
|
|
let qiPaoPos_ = curLog.posi
|
|
let delayTime_ = curLog.delayTime
|
|
|
|
|
|
if (qiPaoPos_ != -1) {
|
|
let node = this.node.getChildByName('qipao')
|
|
let qiPao = node.getChildByName(qiPaoPos_);
|
|
qiPao.stopAllActions()
|
|
this.showDialogStr(string_, qiPao.getChildByName("str"))
|
|
// qiPao.getChildByName("str").getComponent(cc.Label).string = string_
|
|
qiPao.active = true
|
|
qiPao.scale = 0
|
|
cc.tween(qiPao)
|
|
.to(0.2, { scale: 1 })
|
|
.delay(delayTime_)
|
|
.call(() => {
|
|
qiPao.active = false;
|
|
if (func) {
|
|
func();
|
|
}
|
|
})
|
|
.start();
|
|
}
|
|
|
|
}
|
|
|
|
showDialogStr(str, dialogStr, finishFunc?) {
|
|
let curStr = ""
|
|
let curIndex = 0
|
|
let callFunc = () => {
|
|
curStr += str[curIndex++]
|
|
dialogStr.getComponent(cc.Label).string = curStr
|
|
if (curIndex >= str.length) {
|
|
finishFunc && finishFunc()
|
|
}
|
|
}
|
|
this.schedule(callFunc, 0.05, str.length - 1)
|
|
}
|
|
|
|
|
|
starGame() {
|
|
//1已完成开始剧情
|
|
if (User.getFirstStepIndex() == 0) {
|
|
User.setFirstStepIndex(1)
|
|
}
|
|
let name = this.node.name
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
EventMgr.emitEvent_custom(ryw_Event.ExitBtnEvent, name);
|
|
|
|
PrefabManage.loadPrefabByType(GameType.MyRoom, null, () => {
|
|
PrefabManage.loadPrefabByType(GameType.JiShiBen)
|
|
})
|
|
}
|
|
// update (dt) {}
|
|
}
|
|
|