介绍的文章http://www.cocoachina.com/gamedev/cocos/2014/0704/9028.html
下面我写了一个自己的方法
添加头文件
#include <sys/socket.h>
在HelloWorld::init()添加
//自定义Console命令 static struct Console::Command commands[] = { {"setRotation",//命令名称 "setRotate sprite by spriteTag and angle",//说明 /* 回调函数的第一个参数其实就是socket的句柄,使用send向client发送数据, 第2个参数是命令所带的参数字符串。 */ [&](int fd, const std::string& args) { this->consoleSetRotation(args); //const char msg[] = "how are you?\nArguments passed: "; string msg = "run SetRotate "+args +"\n"; ::send(fd, msg.c_str(), msg.length(),0); //Director::getInstance()->getScheduler()->performFunctionInCocosThread(std::bind(&HelloWorld::send)); } }, {"setPosition",//命令名称 "setPosition sprite by spriteTag and x y",//说明 /* 回调函数的第一个参数其实就是socket的句柄,使用send向client发送数据, 第2个参数是命令所带的参数字符串。 */ [&](int fd, const std::string& args) { this->consoleSetPosition(args); //const char msg[] = "how are you?\nArguments passed: "; string msg = "run setPosition "+args +"\n"; ::send(fd, msg.c_str(), msg.length(),0); //Director::getInstance()->getScheduler()->performFunctionInCocosThread(std::bind(&HelloWorld::send)); } }, }; Director::getInstance()->getConsole()->addCommand(commands[0]); Director::getInstance()->getConsole()->addCommand(commands[1]); Director::getInstance()->getConsole()->listenOnTCP(5678);然后添加函数
void HelloWorld::consoleSetRotation(const string args) { char *s = (char*)args.c_str(); // const char *d = " "; // char *p; // p = strtok(s,d); // while(p) // { // printf("%s\n",p); // p=strtok(NULL,d); // } const char *d = " "; char* _ch; _ch = strtok(s, d); Sprite* _sprite = (Sprite*)this->getChildByTag(atoi(_ch)); _ch = strtok(NULL, d); _sprite->setRotation(atoi(_ch)); } void HelloWorld::consoleSetPosition(const string args) { char *s = (char*)args.c_str(); // const char *d = " "; // char *p; // p = strtok(s,d); // while(p) // { // printf("%s\n",p); // p=strtok(NULL,d); // } const char *d = " "; char* _ch; _ch = strtok(s, d); Sprite* _sprite = (Sprite*)this->getChildByTag(atoi(_ch)); _ch = strtok(NULL, d); _sprite->setPositionX(atoi(_ch)); _ch = strtok(NULL, d); _sprite->setPositionY(atoi(_ch)); }