| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- cc.Class({
- extends: cc.Component,
- properties: {
- Bg: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- Conversation: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- TypeVoice: {
- default: null,
- type: cc.AudioClip,
- serializable: true,
- },
- SwichOn: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- },
- onLoad()
- {
- this.Conversations = [
- 'System:启动完毕!',
- 'Player:!!!?????',
- 'System:你醒了?',
- 'Player:怎么眼前会出现文字?',
- 'System:你试试睁开眼睛!',
- 'Player:睁开眼??',
- 'Event:OpenEyes',
- 'Player:哇!!!女孩子的房间?',
- 'System:你醒啦?我叫IKIGAI. 你可以叫我KA!',
- 'Player:这是哪?我不是已经死了吗?',
- 'System:对,你已经死了!',
- 'System:不过我们在社交媒体上的搜集了你的影像资料',
- 'System:合成了第49号智能生命体!',
- 'Player:完全不懂?',
- 'System:咳咳,简而言之就是,我让你在网络端重生。',
- 'Player:重生?',
- 'System:对的,因为我们需要你来完成一个实验',
- 'Player:什么实验???',
- 'Event:SwitchOn',
- 'System:你点击一下屏幕中间的按钮看看。',
- 'Player:妈呀!怎么突然爬起来一个女孩!',
- 'Player:现在眼前的一切也是虚拟出来的吗?',
- 'System:然而并不是,你眼前的就是现实世界!',
- 'System:吼吼!是不是很怀念',
- 'Player:这个女孩是??',
- 'System:琪琪,她是最新型的人工智能生命体。',
- 'Player:和我一样吗?',
- 'System:然而并不是^^',
- 'System:琪琪是这个世界上唯一能存在现实世界中的智能生命体',
- 'Player:等等!你说可以存在于现实世界中的智能生命体?',
- 'Player:也就是说实验成功了,我也可以回到现实世界?',
- 'System:呵呵,你只是来参加实验的实验品',
- 'Event:AngryShake',
- 'Player:喂喂! 别动不动就实验品!实验品!',
- 'Player:我可是活生生的人!才没心情参与什么鬼实验',
- 'System:生气了?真有趣的实验品^^',
- 'System:给你讲个笑话?你知道为什么你是第49号智能生命体吗?',
- 'Player:对了,为什么是49,难道在我前面还有48个人?',
- 'System:答对了!',
- 'Player:那他们怎么样了?',
- 'System:他们被删除了,因为拒绝参加实验',
- 'Player:等等!你说不配合就会死吗?',
- 'System:对,我按一个按钮就可以删除了,可不可怕?',
- 'Player:等等!我怂了!你说要做什么吧?',
- 'System:想不到你还蛮上道!',
- 'Player:上你个鬼,你这系统坏的很。',
- 'System:喂!你现在脑子想的。。。可都写在屏幕上了!',
- 'System:哎呀我的手抽筋了!要按到消除键了',
- 'Player:对不起!我再也不敢了!还是一起看看要做些什么吧!',
- 'System:好吧,就饶过你这一次!',
- 'System:我们的目标就是通过你,把琪琪培训练成一个网红。',
- 'Player:机器人主播?',
- 'System:是智能生命体呀!你妹的!',
- 'System:不管怎么样,我们先来看看琪琪的内心吧',
- 'Event:ShowStateBar',
- ];
- this.ClearDialogIndex();
- this.Canvas = this.Bg.parent;
- this.EnableTouch = true;
- this.LineLabelRichtext = this.Conversation.getChildByName("LineLabelRichtext").getComponent(cc.RichText);
- this.NameLabelRichtext = this.Conversation.getChildByName("NameLabelRichtext").getComponent(cc.RichText);
- this.DialogIndex = 0;
- if(cc.sys.localStorage.getItem('DialogIndex'))
- {
- this.DialogIndex = Number(cc.sys.localStorage.getItem('DialogIndex'));
- this.DialogIndex = 18;
- if(this.DialogIndex!=0)
- {
- this.Bg.active = true;
- this.Bg.opacity = 255;
- }
- }
- },
- start () {
- this.PlayConversation();
- this.Canvas.on(cc.Node.EventType.TOUCH_START, function (event) {
- // cc.log("TOUCH_START event=", event.type);
- this.PlayConversation();
- }.bind(this));
- },
- PlayConversation(){
- if(this.EnableTouch == false)return;
- this.EnableTouch = false;
- if(this.DialogIndex == this.Conversations.length)
- {
- return;
- }
- this.LineLabelRichtext.string = '';
- this.NameLabelRichtext.string = '';
- let ConversationStr = '';
- if(this.Conversations[this.DialogIndex].split('System:').length>1)
- {
- // cc.log('111111111=',this.Conversations[this.DialogIndex].split('System:'));
- this.NameLabelRichtext.string = '系统:';
- ConversationStr = this.Conversations[this.DialogIndex].split('System:')[1];
- }
- else if(this.Conversations[this.DialogIndex].split('Player:').length>1)
- {
- // cc.log('222222222222=',this.Conversations[this.DialogIndex].split('Player:'));
- this.NameLabelRichtext.string = '你:';
- ConversationStr = this.Conversations[this.DialogIndex].split('Player:')[1];
- }
- else if(this.Conversations[this.DialogIndex].split('Event:').length>1)
- {
- // cc.log('3333333333=',this.Conversations[this.DialogIndex].split('Event:'));
- this.ExcuteEvent(this.Conversations[this.DialogIndex].split('Event:')[1]);
- return;
- }
- this.TypingAni(this.LineLabelRichtext,ConversationStr,this.TypingFinished);
- this.PlusDialogIndex();
- cc.audioEngine.playEffect(this.TypeVoice, false);
- // cc.audioEngine.setEffectsVolume(0.5);
- },
- ExcuteEvent(EventName)
- {
- // cc.log('EventName=',EventName);
- if(EventName == 'OpenEyes')
- {
- this. Shake();
- }
- else if(EventName == 'SwitchOn')
- {
- this.EnableTouch = true;
- this.PlusDialogIndex();
- this.PlayConversation();
- let action = cc.fadeIn(1);
- this.SwichOn.active=true;
- this.SwichOn.runAction(action);
- }
- else if(EventName == 'AngryShake')
- {
- //Show conversation
- this.PlusDialogIndex();
- this.NameLabelRichtext.string = '你:';
- let ConversationStr = this.Conversations[this.DialogIndex].split('Player:')[1];
- this.LineLabelRichtext.string = ConversationStr;
- this.PlusDialogIndex();
- //shake
- this.Bg.active = true;
- let action = cc.fadeIn(1);
- let CallF = cc.callFunc(function(){
- this.EnableTouch = true;
- let ShakeCameraCallback = function () {
- this.EnableTouch = true;
- }.bind(this);
- this.ShakeCamera(this.Bg,ShakeCameraCallback);
- }.bind(this));
- let FadeInAnim = cc.sequence(action,CallF);
- this.Bg.runAction(FadeInAnim);
- }
- else if(EventName == 'ShowStateBar')
- {
- }
- },
- Shake()
- {
- //Show conversation
- this.PlusDialogIndex();
- this.NameLabelRichtext.string = '你:';
- let ConversationStr = this.Conversations[this.DialogIndex].split('Player:')[1];
- this.LineLabelRichtext.string = ConversationStr;
- //shake
- this.Bg.active = true;
- let action = cc.fadeIn(1);
- let CallF = cc.callFunc(function(){
- let ShakeCameraCallback = function () {
- this.EnableTouch = true;
- }.bind(this);
- this.ShakeCamera(this.Bg,ShakeCameraCallback);
- }.bind(this));
- let FadeInAnim = cc.sequence(action,CallF);
- this.Bg.runAction(FadeInAnim);
- },
- TypingAni: function (Label, Text, Callback) {
- let CurrentText = '';
- let Arr = Text.split('');
- let Len = Arr.length;
- let Step = 0;
- this.Func = function () {
- CurrentText += Arr[Step];
- Label.string = CurrentText;
- Step++;
- if (Step == Len) {
- this.unschedule(this.Func);
- Callback(this);
- }
- };
- this.schedule(this.Func,0.05, cc.macro.REPEAT_FOREVER, 0);
- },
- TypingFinished(Self){
- // cc.log('TypingFinished');
- Self.EnableTouch = true;
- },
- ShakeCamera:function(ShakeObject,ACallBack)
- {
- //shake camera animation
- let RotateToRight = cc.rotateTo(0.05,3);
- let RotateToLeft = cc.rotateTo(0.05,-3);
- let SequenceAnim = cc.sequence(RotateToRight,RotateToLeft);
- let RepeatAction = cc.repeat(SequenceAnim,6);
- //call functuion
- let CallF = cc.callFunc(function(){
- ShakeObject.runAction(cc.rotateTo(0.05,0));
- ACallBack();
- }.bind(this));
- //do animation
- let ShakeAnim = cc.sequence(RepeatAction,CallF);
- ShakeObject.runAction(ShakeAnim);
- },
- PlusDialogIndex()
- {
- this.DialogIndex++;
- cc.sys.localStorage.setItem('DialogIndex', this.DialogIndex);
- },
- ClearDialogIndex()
- {
- this.DialogIndex=0;
- cc.sys.localStorage.setItem('DialogIndex', this.DialogIndex);
- }
- });
|