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.
430 lines
14 KiB
430 lines
14 KiB
|
|
import Common5 from "../../Platform/th/Common5";
|
|
import ZhongCanTingManager from "../GameMethodRes/ZhongCanTing/ZhongCanTingManager";
|
|
import GameBaseScript from "../GameRoomRes/GameBaseScript";
|
|
import TaskManager, { MainTaskIdEnum } from "../JuQingChat/TaskManager";
|
|
import TaskResult from "../MyRoom/TaskResult";
|
|
import PrefabManage, { GameType } from "../PrefabManager/PrefabManage";
|
|
|
|
|
|
|
|
let gameConfig = {
|
|
duihuaArray: [
|
|
{
|
|
str: "你帮我选选吧,选左还是右",
|
|
qiPaoPos: 0,
|
|
delayTime: 3.4,
|
|
effectUrl: "GameStoryRes/sound/GameStory3/你帮我选选吧,选左还是右"
|
|
},
|
|
{
|
|
str: "你这什么眼光啊",
|
|
qiPaoPos: 0,
|
|
delayTime: 1.4,
|
|
effectUrl: "GameStoryRes/sound/GameStory3/你这什么眼光啊"
|
|
},
|
|
{
|
|
str: "很漂亮,是吧",
|
|
qiPaoPos: 0,
|
|
delayTime: 1.8,
|
|
effectUrl: "GameStoryRes/sound/GameStory3/很漂亮,是吧"
|
|
},
|
|
{
|
|
str: "这个我很喜欢",
|
|
qiPaoPos: 0,
|
|
delayTime: 1.1,
|
|
effectUrl: "GameStoryRes/sound/GameStory3/这个我很喜欢"
|
|
},
|
|
{
|
|
str: "别看了,赶紧去经营湘菜馆!",
|
|
qiPaoPos: 0,
|
|
delayTime: 3.1,
|
|
effectUrl: "GameStoryRes/sound/GameStory3/别看了,赶紧去经营湘菜馆!"
|
|
}
|
|
],
|
|
chooseArray: [
|
|
{
|
|
btnArray: [
|
|
"左边",
|
|
"右边"
|
|
]
|
|
},
|
|
{
|
|
btnArray: [
|
|
"左边",
|
|
"右边"
|
|
]
|
|
},
|
|
{
|
|
btnArray: [
|
|
"不穿",
|
|
"穿"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class GameStory3 extends cc.Component {
|
|
// @property(cc.Node)
|
|
// chooseLayer: cc.Node = null;
|
|
|
|
@property([cc.Node])
|
|
role: cc.Node[] = [];
|
|
|
|
@property([cc.Node])
|
|
costumeList: cc.Node[] = [];
|
|
|
|
// @property([cc.Node])
|
|
// operatedNodeList: cc.Node[] = [];
|
|
|
|
@property(cc.Node)
|
|
btnLeft: cc.Node = null;
|
|
|
|
@property(cc.Node)
|
|
btnRight: cc.Node = null;
|
|
|
|
|
|
//当前层级下标
|
|
curLayerIndex = 0;
|
|
//当前进度
|
|
curSchedule: number = 0;
|
|
chooseIndex: number = -1;
|
|
|
|
//文本配置
|
|
// titleArrayConfig: string[] = [];
|
|
duihuaArrayConfig: any[] = [];
|
|
chooseArrayConfig: any = null;
|
|
|
|
start() {
|
|
GameBaseScript.preLoadRemoteAudio(gameConfig);
|
|
PrefabManage.showTextTips('为投资人换上合适的衣服');
|
|
this.initParameters();
|
|
this.initComponent();
|
|
|
|
}
|
|
restart() {
|
|
this.initParameters();
|
|
this.initComponent();
|
|
}
|
|
//初始化参数
|
|
initParameters() {
|
|
this.curLayerIndex = 0;
|
|
this.curSchedule = 0;
|
|
this.chooseIndex = -1;
|
|
|
|
// this.titleArrayConfig = this.jsonData.titleArray//ZhouWangDeKuaiLeConfig.getInstance().getGameConfig('titleArray') as string[];
|
|
this.duihuaArrayConfig = gameConfig.duihuaArray//this.jsonData.duihuaArray//ZhouWangDeKuaiLeConfig.getInstance().getGameConfig('duihuaArray') as any[];
|
|
this.chooseArrayConfig = gameConfig.chooseArray//this.jsonData.chooseArray//ZhouWangDeKuaiLeConfig.getInstance().getGameConfig('chooseArray');
|
|
|
|
}
|
|
|
|
//初始化组件
|
|
initComponent() {
|
|
|
|
for (const iterator of this.role) {
|
|
iterator.active = false;
|
|
}
|
|
for (const iterator of this.costumeList) {
|
|
iterator.active = false;
|
|
}
|
|
|
|
this.playAnimation2(this.role[0], '待机', true, 'default');
|
|
// this.showDuiHua(this.duihuaArrayConfig[0], () => {
|
|
// this.showDuiHua(this.duihuaArrayConfig[1], () => {
|
|
this.refreshSchedule();
|
|
// });
|
|
// });
|
|
|
|
}
|
|
|
|
|
|
|
|
//刷新进度
|
|
refreshSchedule() {
|
|
switch (this.curSchedule) {
|
|
case 0:
|
|
this.playAnimation2(this.role[0], '待机', true);
|
|
this.showDuiHua(this.duihuaArrayConfig[0], () => {
|
|
this.costumeList[this.curSchedule].active = true;
|
|
this.showChooseLayer(0);
|
|
});
|
|
break;
|
|
case 1:
|
|
this.playAnimation2(this.role[0], '待机', true);
|
|
this.costumeList[this.curSchedule].active = true;
|
|
this.showChooseLayer(1);
|
|
break;
|
|
case 2:
|
|
this.playAnimation2(this.role[0], '待机', true);
|
|
this.costumeList[this.curSchedule].active = true;
|
|
this.showChooseLayer(2);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
playAnimation2(
|
|
spineNode: cc.Node,
|
|
animName: string,
|
|
loop: boolean = false,
|
|
skinName: string = null,
|
|
completeCallback: (spineNode: cc.Node) => void = null
|
|
) {
|
|
spineNode.active = true;
|
|
if (skinName && skinName != '') {
|
|
spineNode.getComponent(sp.Skeleton).setSkin(skinName);
|
|
}
|
|
if (completeCallback) {
|
|
spineNode.getComponent(sp.Skeleton).setCompleteListener(() => {
|
|
completeCallback(spineNode);
|
|
});
|
|
}
|
|
spineNode.getComponent(sp.Skeleton).setAnimation(0, animName, loop);
|
|
}
|
|
// //触摸回调
|
|
// normalTouchCallback(targetNode) {
|
|
// console.log("+++++++++++++++++++++>" + targetNode.name);
|
|
// switch (targetNode.name) {
|
|
// case '脱衣服':
|
|
// this.chooseLayer.active = false;
|
|
// this.role[1].active = false;
|
|
// this.playAnimation2(this.role[0], '害羞', true, 'default');
|
|
// this.showDuiHua(this.duihuaArrayConfig[10], () => {
|
|
// this.endGameView(1);
|
|
// });
|
|
// break;
|
|
|
|
// default:
|
|
// break;
|
|
// }
|
|
// }
|
|
|
|
//选择回调
|
|
chooseResultCallback(touchIndex: number) {
|
|
this.node.getChildByName("mask").active = false;
|
|
this.btnLeft.active = false
|
|
this.btnRight.active = false
|
|
|
|
switch (this.chooseIndex) {
|
|
case 0:
|
|
this.costumeList[this.curSchedule].active = false;
|
|
if (touchIndex == 0) {
|
|
this.playAnimation2(this.role[0], '制服', true, '');
|
|
this.showDuiHua(this.duihuaArrayConfig[1], () => {
|
|
this.endGameView(0);
|
|
});
|
|
} else {
|
|
this.playAnimation2(this.role[0], '牛仔裙', true, '');
|
|
this.showDuiHua(this.duihuaArrayConfig[2], () => {
|
|
this.curSchedule++;
|
|
this.refreshSchedule();
|
|
});
|
|
}
|
|
break;
|
|
case 1:
|
|
this.costumeList[this.curSchedule].active = false;
|
|
if (touchIndex == 0) {
|
|
this.playAnimation2(this.role[0], '睡衣', true, '');
|
|
this.showDuiHua(this.duihuaArrayConfig[1], () => {
|
|
this.endGameView(0);
|
|
});
|
|
} else {
|
|
this.playAnimation2(this.role[0], '礼服', true, '');
|
|
this.showDuiHua(this.duihuaArrayConfig[3], () => {
|
|
this.curSchedule++;
|
|
this.refreshSchedule();
|
|
});
|
|
}
|
|
break;
|
|
case 2:
|
|
this.costumeList[this.curSchedule].active = false;
|
|
if (touchIndex == 0) {
|
|
// this.role[0].active = false;
|
|
// this.playAnimation2(this.role[0], '粉裙', true);
|
|
// this.showDuiHua(this.duihuaArrayConfig[7], () => {
|
|
this.endGameView(0);
|
|
// });
|
|
} else {
|
|
this.role[0].active = false;
|
|
this.role[1].active = true;
|
|
|
|
this.showDuiHua(this.duihuaArrayConfig[4], () => {
|
|
this.endGameView(1);
|
|
});
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//显示选项
|
|
showChooseLayer(chooseIndex: number) {
|
|
this.btnLeft.active = true
|
|
this.btnRight.active = true
|
|
this.btnLeft.getChildByName('str').getComponent(cc.Label).string = this.chooseArrayConfig[chooseIndex].btnArray[0]
|
|
this.btnRight.getChildByName('str').getComponent(cc.Label).string = this.chooseArrayConfig[chooseIndex].btnArray[1]
|
|
// this.chooseLayer.active = true;
|
|
this.chooseIndex = chooseIndex;
|
|
// Common.GameSubChooseArray = this.chooseArrayConfig[chooseIndex];
|
|
// let script_: ChooseBtnLayer = this.chooseLayer.getComponent('ChooseBtnLayer');
|
|
// script_.setChooseBtnView();
|
|
}
|
|
|
|
onBtnLeftClick() {
|
|
this.chooseResultCallback(0)
|
|
}
|
|
onBtnRightClick() {
|
|
this.chooseResultCallback(1)
|
|
}
|
|
//显示对话
|
|
showDuiHua(curLog, func?) {
|
|
console.log("curLog==", curLog);
|
|
|
|
// if (curLog.effectUrl) {
|
|
// Common5.playEffectCustom("zhouwangdekuaile", curLog.effectUrl);
|
|
// }
|
|
|
|
let string_ = curLog.str;
|
|
let qiPaoPos_ = curLog.qiPaoPos;
|
|
let delayTime_ = curLog.delayTime || 3;
|
|
|
|
let node = this.node.getChildByName('layerNode');
|
|
if (qiPaoPos_ != -1) {
|
|
if (curLog.effectUrl && curLog.effectUrl.length > 0) {
|
|
Common5.playRemoteAudioEffect(curLog.effectUrl);
|
|
}
|
|
let qiPao = node.getChildByName("qiPao").getChildByName("qiPao_" + qiPaoPos_);
|
|
let effect = node.getChildByName("声效").getChildByName("声效" + qiPaoPos_);
|
|
qiPao.stopAllActions();
|
|
effect.active = true;
|
|
// qiPao.getChildByName("str").getComponent(cc.Label).string = string_
|
|
this.showDialogStr(string_, qiPao.getChildByName("str"))
|
|
cc.tween(qiPao)
|
|
.set({ active: true, scale: 0 })
|
|
.to(0.2, { scale: 1 })
|
|
.delay(delayTime_)
|
|
.call(() => {
|
|
qiPao.active = false;
|
|
effect.active = false;
|
|
})
|
|
.start();
|
|
}
|
|
|
|
this.scheduleOnce(() => {
|
|
if (func) {
|
|
func();
|
|
}
|
|
}, delayTime_);
|
|
}
|
|
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.07, str.length - 1)
|
|
}
|
|
//关闭对话
|
|
closeDuiHua(qiPaoPos_) {
|
|
if (qiPaoPos_ != -1) {
|
|
let node = this.node.getChildByName("layerNode");
|
|
let qiPao = node.getChildByName("qiPao").getChildByName("qiPao_" + qiPaoPos_);
|
|
qiPao.stopAllActions();
|
|
qiPao.active = false;
|
|
} else {
|
|
let logPrefab = this.node.getChildByName('logPrefab');
|
|
let duihua = logPrefab.getChildByName('duihua');
|
|
duihua.stopAllActions();
|
|
duihua.active = false;
|
|
}
|
|
}
|
|
|
|
endGameView(touchIndex) {
|
|
let finishTask306 = () => {
|
|
|
|
TaskManager.finishCurMainTask(MainTaskIdEnum.MainTask_306)
|
|
TaskManager.setCurUnLockMainTaskInfo(MainTaskIdEnum.MainTask_307)
|
|
ZhongCanTingManager.checkTask()
|
|
|
|
this.node.removeFromParent()
|
|
this.node.destroy()
|
|
// Common5.releaseBundleAssets('GameStory3')
|
|
}
|
|
// this.node.getChildByName("mask").active = true;
|
|
// Game.ins.stopTime();
|
|
if (touchIndex == 0) {
|
|
this.scheduleOnce(() => {
|
|
let continueBtnFunc = () => {
|
|
console.log('换衣重玩')
|
|
this.restart()
|
|
}
|
|
let adBtnFunc = () => {
|
|
console.log('换衣完成任务')
|
|
// Common5.ReportDY("inLevel", '换衣服关卡-AD-老婆换最美衣服');
|
|
finishTask306()
|
|
}
|
|
PrefabManage.loadPrefabByType(GameType.TaskResult, null, (prefabNode) => {
|
|
prefabNode.getComponent(TaskResult).initView4(2, true, continueBtnFunc, adBtnFunc)
|
|
})
|
|
}, 0.5);
|
|
} else {
|
|
this.scheduleOnce(() => {
|
|
let successFunc = () => {
|
|
|
|
finishTask306()
|
|
}
|
|
PrefabManage.loadPrefabByType(GameType.TaskResult, null, (prefabNode) => {
|
|
prefabNode.getComponent(TaskResult).initView1(3, true, successFunc)
|
|
})
|
|
}, 0.5);
|
|
}
|
|
}
|
|
|
|
openTouchEvent(node) {
|
|
node.on(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
|
|
node.on(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this)
|
|
node.on(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
|
|
node.on(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
|
|
}
|
|
|
|
closeTouchEvent(node: cc.Node) {
|
|
node.off(cc.Node.EventType.TOUCH_START, this.touchStartNode, this)
|
|
node.off(cc.Node.EventType.TOUCH_MOVE, this.touchMoveNode, this)
|
|
node.off(cc.Node.EventType.TOUCH_CANCEL, this.touchEndNode, this)
|
|
node.off(cc.Node.EventType.TOUCH_END, this.touchEndNode, this)
|
|
}
|
|
|
|
touchStartNode(event) {
|
|
let target = event.target;
|
|
console.log('touchStartNode');
|
|
}
|
|
|
|
touchMoveNode(event) {
|
|
|
|
}
|
|
|
|
touchEndNode(event) {
|
|
let target = event.target
|
|
let logPrefab = this.node.getChildByName('logPrefab')
|
|
logPrefab.getChildByName('duihua').active = false;
|
|
}
|
|
|
|
onClick(event) {
|
|
let target = event.target as cc.Node;
|
|
console.log("+++++++++++++++++++++>" + target.name);
|
|
// Common5.playEffect("点击音效");
|
|
switch (target.name) {
|
|
case "BtnAddTimes":
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
//update(dt) { }
|
|
}
|
|
|