- 博客(100)
- 资源 (5)
- 收藏
- 关注
转载 cocos2dx配置Android环境最新教程
cocos2dx配置Android环境最新教程这几天在研究cocos2mdx怎么在Android studio下配置环境,一开始根据官网的过期教程走了不少歪路,虽然现在网上也有大致正确的安装教程,但是一些细节还是被忽略了,现在特意记录一下安装的经过首先在官网下载Cocos2dx 3.17.2版本 Cocos引擎下载连接然后下载Android studio的4.2c1版本,连接:https://redirector.gvt1.com/edgedl/android/studio/install/4.2.0
2022-04-08 21:39:22
971
原创 扇形弧度区间角度偏移
扇形弧度区间角度偏移function HandleCardView:initTouch() local selfSize = self:getContentSize() local touchBeginPos self.dragView = nil local function cardMoveEnd(localPos,isCancel) if not self.lastSelectedView then return end if not self.lastSelectedView:is
2021-10-13 11:22:18
218
原创 OpenSSL中base64编解码使用
/** *由于2进制有一些特殊的字符,在传输的过程传给对端对面解析乱码问题 *\0也是特使字符在传输的过程中读取的时候遇到\0系统认为是结束字符所以导致数据不完整 *含有中文的数据写进数据库数据库存储也会乱码 读取出去也会乱码 *为了解决了以上的问题我们引用了base64进行编码,生成二进制的时候 存储或者传输的时候我们先将他们base64转码之后在进行存储或者传输 *openssl 里面封装bio对象的 可以对base64操作 */#include<openssl/buffer.h>#in
2021-07-11 16:05:14
1122
原创 生成的密钥对进行加解密、签名和效验
生成对应的私钥和公钥#include<iostream>#include<openssl/sha.h>#include<openssl/rsa.h>#include<openssl/pem.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<string>extern "C"{ // #include<
2021-07-04 14:15:23
257
原创 网络通信防止connect,accept,rend,write阻塞设置超时处理
为了防止connect,accept,rend,write阻塞在哪影响效率问题,我们设置一个认可超时时间处理,通过调用系统内核函数帮我检查读写缓冲区是个有数据可读,分析场景: 内核去维护一个双向读写缓冲区 类似乳滑动窗口,.发送端快速发送消息到到接收端,而接收端处理消息不及时,故接收端内核读缓冲区快满了,此时发送端send就会阻塞,read读超时设置:int readTimeOut(int cfd, int timeOut ){ //我们不知道内核的读缓冲区是否有数据到达,所有我们委托内核
2021-07-02 15:32:46
1406
原创 Tcp流式传输解决粘包和少包的方案
tcp是流式传输协议,接收端和发送端的 收发时间延时,此时会出现粘包现象。比如:再不考虑内核双向缓冲区的延时发送问题,客户端假设1s 发送100k,循环发,服务器每2s收一次数据,此时服务器收到了200k,出现了消息粘包,服务器也不知道客户端的消息分组情况,所以我们需要和客户端协商一个解决方案,类型tcp底层封装思想一下定义为 消息头和消息体:下面伪代码展示一下:发送端:void sendMsg(int fd, char* sendData){ /*这里的sendData数据体他是字符串形式的
2021-07-02 11:19:36
406
原创 Linux线程同步条件变量实现的线程池
1.设计思路:通过线程池来管理线程,有任务的到达唤醒线程,没用任务睡眠线程,这样减小线程的创建开销,从而进行重复利用,类似于经典的消费模式 生产者和消费者,在对任务进行添加和处理的时候,防止线程之间资源争夺,让线程同步,引入线程锁,和条件变量#ifndef _THREADPOOL_H#define _THREADPOOL_H#include <stdio.h>#include <stdlib.h>#include <string.h>#include <
2021-06-29 00:25:07
122
原创 浏览器请求服务器静态文件的实现
服务器是基于epoll实现ET模式 非阻塞模式,浏览器用Get请求方式访问服务器本地资源写这个demo过程中遇到问题: 1.浏览器 访问的 例如 192.168.1.130:8989/ 这个 '/'这个根文件不是服务器跟目录而是服务器的本地资源相对路径,所有要切换服务器的目录到 浏览器资源访问的目录下 通过chdir设置,浏览器访的 路径 假设一个图片192.168.1.130:8989/wsy.png; 通过http数据的解析 我们得到的是/wsy.png 此时需要...
2021-06-23 00:41:35
1803
2
原创 libevent网络框架学习
//client.c#include<stdlib.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<fcntl.h>#include<sys/stat.h>#include<event2/event.h>#include<event2/bufferevent.h>char buf[1024];void read.
2021-06-12 17:25:48
210
1
原创 c小游戏之贪吃蛇
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <windows.h>#include <conio.h> //键盘事件#include <stdbool.h>#define WIDE 60#define HIGH 20#define SCORE 5//记录蛇节点坐标typedef struct _body{ int x; .
2020-11-10 20:43:52
157
原创 json转化Excel csv
var fs = require('fs');var iconv = require('iconv-lite');function parseObject(obj, path) { console.log(type(path)) if (path == undefined) path = ""; var type = obj.constructor; var scalar = (type == Number || type == Str.
2020-09-02 16:58:59
364
原创 csv-转化为json格式批量处理的
var fs = require('fs');var iconv = require('iconv-lite');var csvParse = require('csv-parse/lib/sync');// var jsonh = require('./jsonh');// const zlib = require('zlib');let clientCfg = null;function AttributeCount(obj) { var count = 0; for.
2020-09-02 14:17:32
438
转载 cocos2dx之如何优化内存使用
本文由qinning199原创,转载请注明:http://www.cocos2dx.net/?p=93一、内存优化原则为了优化应用内存,你应该知道是什么消耗了你应用的大部分内存,答案就是Texture(纹理)!它几乎占据了90%的应用内存。那么我们应该尽力去减小我们应用的纹理内存使用,否则我们的应用进程可能会被系统杀死。为了减少内存警告,这里我们给出两个普遍的关于cocos2dx游戏内存优化的指导原则。1)了解瓶颈,然后解决掉什么样的纹理消耗了大部分应用的内存呢?或者说这些纹理消耗了多少
2020-07-14 21:13:05
466
原创 c++ 加入信号量控制线程的终止和退出
信号量的实现#ifndef _CELL_SEMAPHORE_HPP_#define _CELL_SEMAPHORE_HPP_#include<chrono>#include<thread>#include<condition_variable>//信号量class CELLSemaphore{public: //阻塞当前线程 void wait() { std::unique_lock<std::mutex> lock(_m
2020-06-18 00:04:41
1416
1
原创 C++ 初识window下 IOCP网络模式
window下 IOCP网络模式#define WIN32_LEAN_AND_MEAN#include<windows.h>#include<WinSock2.h>#pragma comment(lib,"ws2_32.lib")#include<mswsock.h>#pragma comment(lib,"Mswsock.lib")#include<stdio.h>#define nClient 10enum IO_TYPE{
2020-06-17 21:38:59
454
转载 C++中static关键字作用总结
1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。//a.cchar a = 'A'; // global variablevoid msg(){ printf("Hello\n");}//main.cint main(){ extern char a; // extern ...
2020-06-17 12:01:11
214
原创 c++ 纯虚函数和虚函数重写调用
纯虚函数和虚函数重写调用class parent{public: parent(int a, int b) { this->a = a; this->b = b; cout << "我是爸爸构造函数" << endl; } void printfP() { dotest(); } virtual void dotest() { cout << "parent:dotest()" << endl;.
2020-06-17 11:43:13
1209
原创 C++ 继承 之 构造析构顺序
继承 之 构造析构顺序#include<iostream>using namespace std;class parent{public: parent(int a, int b) { this->a = a; this->b = b; cout << "我是爸爸构造函数" << endl; } void printfP() { dotest(); } virtual void dotest() { cout
2020-06-17 11:36:45
804
1
转载 C++中虚函数继承类的内存占用大小计算
计算一个类对象的大小时的规律:1、空类、单一继承的空类、多重继承的空类所占空间大小为:1(字节,下同); 2、一个类中,虚函数本身、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的; 3、因此一个对象的大小≥所有非静态成员大小的总和; 4、当类中声明了虚函数(不管是1个还是多个),那么在实例化对象时,编译器会自动在对象里安插一个指针vPtr指向虚函数表VTable; 5、虚承继的情况:由于涉及到虚函数表和虚基表,会同时增加一个(多重虚继承下对应多个)vfPtr指针指向虚函数
2020-06-16 22:46:58
973
转载 C语言-结构体和联合体的区别
结构体和联合体的区别请参考此网站https://www.cnblogs.com/nktblog/p/4027107.html
2020-06-16 22:28:23
518
原创 初识Linux下epoll网络通信
#ifndef _WIN32#include<unistd.h> //uni std#include<arpa/inet.h>#include<string.h>#include<sys/epoll.h>#endif#define SOCKET int#define INVALID_SOCKET (SOCKET)(~0)#define SOCKET_ERROR (-1)#include<stdio.h&.
2020-06-16 19:07:55
181
转载 字符串按照一定的字符切割
C 库函数 -strtok()C 标准库 - <string.h>描述C 库函数char *strtok(char *str, const char *delim)分解字符串str为一组字符串,delim为分隔符。声明下面是 strtok() 函数的声明。char *strtok(char *str, const char *delim)参数str-- 要被分解成一组小字符串的字符串。 delim-- 包含分隔符的 C 字符串。返回值该...
2020-06-12 18:17:04
1432
转载 strchr函数用法-查找切割
原型:char *strchr(const char *s, int c);头文件:#include <string.h>描述:用于查找字符#include <iostream>#include <string.h>using namespace std;int main(){ char str[] = "Hello World!"; char* p1 = strchr(str, 'r'); if (p1) {...
2020-06-12 16:46:10
363
原创 不同平台下的简易服务器脚本配置
目录 通过main函数传参 int main(int argc, char* args[]); int argc 标识参数的个数 char* agrs[] 标识参数的字符串指针 (注:传参都是字符串形式的) args[0] 参数是程序入口的完整路径 假设生成的文件为 HelloSocket.exe (debug模式下的) int main(int argc, char* args[]){ char* strIp = args[1]; uint16...
2020-06-12 15:37:43
204
原创 c++ 消息字节流数据读和写
#ifndef _CELL_STREAM_HPP_#define _CELL_STREAM_HPP_#include <cstdint>class CELLStream{public: //创建数据块 (写消息) CELLStream(int nSize = 1024) { _nSize = nSize; _pBuff = new char[_nSize]; _bDelete = true; } ...
2020-06-10 21:04:01
2450
原创 c++简易日志文件系统
#ifndef _CELL_LOG_HPP_#define _CELL_LOG_HPP_#include"CELL.hpp"#include"CELLTask.hpp"#include<ctime>class CELLLog{ //Info //Debug //Warring //Errorpublic: CELLLog() { _taskServer.Start(); } ~CELLLog()...
2020-06-08 19:35:40
246
原创 c++跨平台 计时器
#ifndef _CELLTimestamp_hpp_#define _CELLTimestamp_hpp_//#include <windows.h>#include<chrono>using namespace std::chrono;class CELLTime{public: //获取当前时间戳 (毫秒) static time_t getNowInMilliSec() { return duration_cast&l...
2020-06-05 19:25:09
446
原创 c++ 对象池的实现
#ifndef _CELLObjectPool_hpp_#define _CELLObjectPool_hpp_#include<stdlib.h>#include<assert.h>#include<mutex>#ifdef _DEBUG#ifndef xPrintf#include<stdio.h>#define xPrintf(...) printf(__VA_ARGS__)#endif#else#ifndef xPrintf#
2020-06-02 10:28:11
234
原创 C++ 内存池实现 并管理内存池(支持多线程)
Alloctor.h:#ifndef _ALLOCTOR_H_#define _ALLOCTOR_H_void* operator new(size_t size);void operator delete(void* p);void* operator new[](size_t size);void operator delete[](void* p);void* mem_alloc(size_t size);void mem_free(void* p);#endif.
2020-06-01 11:35:25
781
原创 python 读写Excel
import xlrdimport pandas as pdfrom pandas import DataFramebook = xlrd.open_workbook("newtable.xlsx")sheet1 = book.sheets()[0]nrows = sheet1.nrowsprint('表格总行数', nrows)ncols = sheet1.ncols...
2020-04-24 20:57:12
193
原创 cocos2dx-Text 详细
local text = ccui.Text:create(content, "font/sysfont.ttf", 18)text:setPosition(pos) --设置位置text:setColor(color) --设置颜色text:setFontSize(size) --设置字体大小text:setTextHorizontalAlignment(alignment ...
2020-01-16 17:16:14
1277
原创 单点触摸事件技巧
local function touchBegan(touch, event)self.m_addClickCardIndex = -1self.m_removeClickCardIndex = -1self.m_cardInStructIndex = -1self.m_firstTouchCardValue = Common.INVALID_CARDself.m_beginP...
2020-01-03 10:49:38
237
转载 Windows批处理(cmd/bat)常用命令教程
常见问题:1.如果你自己编写的.bat文件,双击打开,出现闪退 2.批处理.bat 文件中输出中文乱码 解决方法在文章末尾!前言批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工...
2019-12-26 18:06:08
438
转载 Cocos2d-lua,Button 切换图片时的适配处理
1,Cocos2d中的Button可以通过两种方式创建:代码:localbtn=ccui.Button:create()CocosStudio:直接使用Button空间,拖拽到指定的位置调整好需要的属性即可。localbtn=panel:getChildByName("button")button:addClickEventListener(function(...
2019-12-26 11:36:31
1046
原创 整理数组技巧
local bombArr = {}for k,v in pairs(bombArry) doif bombArr[self:CardValue(v)] thentable.insert(bombArr[self:CardValue(v)], v)elsebombArr[self:CardValue(v)] = {v}endend
2019-12-25 15:58:11
93
原创 scrollView使用案例
self.m_scroView:removeAllChildren()for i=1, table.nums(detail_score) dolocal curInfo = deal_cell_data[i].itemlocal item = cc.CSLoader:createNode("deskScene/fenNode.csb")self.m_scroView:setCont...
2019-12-13 13:29:27
144
vs 2017免费版
2019-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人