Cocos Creator滑动选择节点

本文介绍了在Cocos Creator中为斗地主游戏开发滑动选择手牌的功能,由于缺少内置组件,作者自行创建了DragChoose组件,该组件用TypeScript编写,适用于有滑动选择需求的场景。使用时需配合Layout组件,确保节点正确排列。
摘要由CSDN通过智能技术生成

功能需求

Cocos Creator 开发斗地主,滑动选取手上的手牌
问题:Cocos Creator没有滑动选取节点的组件,于是自己造轮子
说明:DragChoose组件用于在多个节点上滑动时,选择鼠标滑动区域内的节点,由于Cocos Creator 支持TypeScript,所以该组件由TypeScript语言编写,需要配合Layout组件使用,可以直接挂在相应的Node节点上

使用示例

扑克根节点上需要挂上Layout组件,对子节点下的扑克牌进行排列
在这里插入图片描述

示例代码

import ScrollSelect from "./ScrollSelect";

/**
 * 示例
 * 选中是为灰色
 * 选择完是绿色
 */

const { ccclass, property } = cc._decorator;
@ccclass
export class Example extends cc.Component {

    private _root: cc.Node
    private _scrollSelect: ScrollSelect;

    start() {
        this.initRoot();
        this.initEvent();
    }

    private initRoot() {
        this._root = cc.find("CardRoot", this.node)
        this._scrollSelect = this._root.getComponent(ScrollSelect)
    }

    private initEvent() {
        this._scrollSelect.OnStart = () => { this.OnChooseStart() }
        this._scrollSelect.OnMoving = (nodes: Array<cc.Node>) => { this.OnChooseCard(nodes) }
        this._scrollSelect.OnEnd = (nodes: Array<cc.Node>) => { this.ChooseCardEnd(nodes) }
    }

    private OnChooseStart() {
        let childrens = this._root.children
        for (let index = 0; index < childrens.length; index++) {
            const child = childrens[index];
            child.color = cc.Color.WHITE
        }
    }


    private OnChooseCard(nodes: Array<cc.Node>) {
        let childrens = this._root.children
        for (let index = 0; index < childrens.length; index++) {
            const child = childrens[index];
            if (nodes.ind
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值