cocos2d-x学习笔记——Csv文件读取工具

本文介绍了在Cocos2d-x游戏开发中如何处理CSV配置文件。首先,讨论了CSV文件在游戏中的作用,如存储怪物属性数据。接着,展示了如何使用自定义的MyCsvUtil工具类来读取CSV文件,并且提到了辅助的StringUtil类,用于字符串操作。CsvData类被设计为对象化的数据结构,方便处理CSV数据。通过getRowColNum获取行和列数量。最后,说明了如何在项目中集成并测试该CSV读取工具。
摘要由CSDN通过智能技术生成

一个游戏中,通常会有很多怪物,以及怪物的生命值,魔法值等属性数据,这些数据不可能在代码里面写死,一般都会用配置文件来保存,使用时再加载到内存。
我们常用的配置文件是CSV文件,即逗号分隔值(Comma-Separated Values),如下图所示。

这里写图片描述

今天,我就来介绍一个来读取CSV文件的工具类——MyCsvUtil

在接受读取CSV文件工具类之前,先介绍一个读取字符串的工具类——StringUtil

//头文件StringUtil.h

#ifndef __StringUtil_H_
#define __StringUtil_H_
#include "cocos2d.h"

class StringUtil : public cocos2d::Ref
{
public:
    static StringUtil * getInstance();
    virtual bool init();

    //用分隔符分割字符窜,结果存放到一个列表中,列表中的对象为Value
    cocos2d::ValueVector split(const char * srcStr, const char * sSep);
private:
    static StringUtil * m_StringUtil;//Util 是工具的意思!
};


//函数实现文件
#include "StringUtil.h"
USING_NS_CC;

//初始化
StringUtil * StringUtil::m_StringUtil = nullptr;

StringUtil * StringUtil::getInstance()
{
    if (m_StringUtil == nullptr)
    {
        m_StringUtil = new StringUtil();
        if (m_StringUtil && m_StringUtil->init() )
        {
            m_StringUtil->autorelease();
            m_StringUtil->retain();
        }
        else
        {
            CC_SAFE_DELETE(m_StringUtil);
            m_StringUtil = nullptr;
        }
    }
    return m_StringUtil;
}

bool StringUtil::init()
{

    ////拆分字符串
    //auto strsList = StringUtil::getInstance()->split("zhaolong,want,to,work!",",");
    //for (auto str : strsList)
    //{
   
    //  log("str = %s",str.asString().c_str());
    //}

    return true;
}

//分离函数,srcStr是要进行分离的字符串,sSep是分隔符 separator
ValueVector StringUtil::split(const char * srcStr, const char * sSep)
{
    ValueVector stringList; //typedef std::vector<Value> ValueVector;
    int size = strlen(srcStr);
    //将数据转换为字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值