UItest总结

cocos界面

在这里插入图片描述

BgControl源码

import MsgControl from "./MsgControl";
import PaojieControl from "./PaojieControl";

const {ccclass, property} = cc._decorator;

class Message{
    name: string;
    content: string;
    face: string;
    mouth: string;
    constructor(name:string,content:string,face:string,mouth:string){
        this.name = name;
        this.content = content;
        this.face = face;
        this.mouth = mouth;
    }
}

@ccclass
export default class BgControl extends cc.Component {


    //人物和消息的控制器
    @property(PaojieControl)
    paojieControl: PaojieControl =null;

    @property(MsgControl)
    msgControl: MsgControl = null;

    //消息数组
    msgs: Message[] =null;

    // 当前是第几条消息
    index:number = 0;

    // onLoad () {}

    start () {
        this.msgs =[
            new Message("御坂美琴","今天天气不错","paojieface_02","paojiemouth_02"),
            new Message("御坂美琴","来喝点饮料","paojieface_01","paojiemouth_01"),
            new Message("御坂美琴","可惜贩卖机又坏了","paojieface_02","paojiemouth_02")
        ];
        
        //鼠标点击对话
        this.node.on(cc.Node.EventType.MOUSE_DOWN,(event)=>{
            if(this.index <= this.msgs.length){
                //如果对话面板没显示,则显示
                if(this.msgControl.node.active == false){
                    this.msgControl.node.active = true;
                }
               
                //读消息
                let message = this.msgs[this.index++]; 
                
                //显示消息
                this.paojieControl.setImage(message.face,message.mouth);
                this.msgControl.setMessage(message.name,message.content);
            }
        });

    }

    // update (dt) {}
}

PaojieControl源码


const {ccclass, property} = cc._decorator;

@ccclass
export default class PaojieControl extends cc.Component {

    // onLoad () {}

    start () {

    }

    //设置表情
    setImage(face:string,mouth:string){
        //加载素材
        //脸部
        cc.resources.load(face,cc.SpriteFrame,(err,sp)=>{
            this.node.children[0].getComponent(cc.Sprite).spriteFrame = sp;
        });

        //嘴部
        cc.resources.load(mouth,cc.SpriteFrame,(err,sp)=>{
            this.node.children[1].getComponent(cc.Sprite).spriteFrame = sp;
        });

    }

    // update (dt) {}
}
 

MsgControl源码

const {ccclass, property} = cc._decorator;

@ccclass
export default class MsgControl extends cc.Component {

   
    // onLoad () {}

    start () {

    }

    //加载消息
    setMessage(name: string, content: string){
        this.node.children[0].getComponent(cc.Label).string = name;
        this.node.children[1].getComponent(cc.Label).string = content;
    }
}

效果图

开始界面在这里插入图片描述
点击
在这里插入图片描述
点击
在这里插入图片描述
点击
在这里插入图片描述

总结

通过新建一个类来存需要的文本和数据,等需要的时候再调用对应的数据

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值