- 博客(115)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 cocos2d-x 4.0 安装教程(Windows + VS) + cocosui入门知识储备
(一)前期准备Windows 10操作系统VS 2019 或 VS 2017Python 2.7.18:记得勾选将python添加到环境变量的复选框,不然自己手动添加也行。CMake 3.19.0:记得勾选将cmake添加到环境变量的复选框,不然自己手动添加也行。cocos2d-x 4.0:手动将cocos2d-x-4.0\tools\cocos2d-console\bin目录添加到环境变量。以上全都下载最新版本应该也没问题,至此就可以使用VS来编译cocos2d-x工程了。(二)VS编
2020-10-28 17:18:40
8327
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Java & C++ & Python - 数据类型、字面常量与类型转换
一、数据类型1. Java的数据类型分为三大类:布尔型(boolean)、字符型(char)和数值型(整型byte、short、int、long;浮点型float、double)。Java还有8个包装类(将简单类型的变量表示为类):Boolean、Character、Byte、Short、Integer、Long、Float和Double。此外,编程时还经常使用到两种类变量:Strin...
2019-03-10 23:23:35
468
原创 VSCode+debugpy远程调试
先pip install debugpy安装下debugpy,代码里再添加下面这段代码,运行时就会进入阻塞以监听连接,这时候再启动VSCode调试就可以了。指定in_process_debug_adapter参数可以避免等待连接超时(timed out waiting for adapter to connect)。某一天突然发现VSCode没法远程调试了,原因竟是新版本的VSCode Python调试不再支持ptvsd插件了,所以只能改换门庭接入debugpy。
2024-08-31 18:52:34
90
原创 C#反射的NullReferenceException
xml文件中有些元素的属性被删除,导致文件无法被读取(C#)。调试之后发现,因为属性被删除,读进来会保持默认值null,在后续的反射中如果用这个null给字符串属性赋值,会抛异常。另外发现前面还有其他一些属性也被删掉了,但并不会导致异常,原因是它们的类型是int。
2024-08-05 23:04:59
282
原创 Python - 字符串拼接效率对比
##(一)三种字符串拼接/格式化方式对比不难看出使用%格式化字符串的效率是最高的。另外要注意下一般情况下数字格式化使用%s是要比%d效率更高的。
2023-07-16 12:05:41
561
原创 Python - 批量下载ts文件并合并为mp4
这个需要借助ffmpeg工具去实现。Windows平台可以直接到。下载压缩包,解压之后把bin目录加入到环境变量中即可。以文件流的形式获取,并以字节的形式写入本地文件即可。网页文件下载其实都可以通过。
2023-05-29 01:35:09
1506
原创 Python - 多继承与MRO
实际上,但我们真的遇到了像上面的案例这种情况时,最好还是审慎考虑是否需要使用到多继承,如果是的话能否尽量避免同名方法参数不一致的问题(或者父类不出现同名参数),实在没办法的话就按方法二的显式调用来替代super调用吧。答案是否定的,只有当同名方法没有被重写时(即保留了super的调用),才会继续调用MRO中下一个类的同名方法。当执行子类对象的方法时,是不是一定会按照MRO去依次执行各父类的同名方法?方法查看某个类的MRO列表(方法调用顺序)。按MRO的顺序依次执行到D, B, A的。
2023-05-20 23:08:47
465
原创 MongoDB随机查询
(2)随机数法:插入记录时生成一个随机数一并插入,取样时再生成一个随机数,先从文档中选出存储的随机数比该随机数大的指定数量的记录,如果取出的数量不够时再取出比该随机数小的记录补足。缺点是不够随机,每次取出的记录可能重复性较大。(1)聚合抽样:MongoDB的aggregate提供了sample阶段,可以从文档中取出指定记录,不过缺点是在数据量大的集合高频调用时可能会导致响应缓慢。一般情况下数据量不大的情况下用官方的方法一就足够了。不过如果是要随机取100条呢?
2023-03-18 17:08:40
700
原创 Python2.7使用apscheduler定时任务报错AttributeError: ‘datetime.datetime‘ object has no attribute ‘timestamp‘
环境Python版本:2.7.18apscheduler版本:3.9.1.post1(直接用pip install apscheduler安装) 发现问题from apscheduler.schedulers.background import BackgroundSchedulerdef task(): print 'test'scheduler = BackgroundScheduler()scheduler.add_job(task, 'cron', hour=6, minute=0
2023-03-14 23:02:56
2345
原创 DataTables & X-editable - 使用ajax从后端获取数据
(一)ajax请求后端数据$.ajax({ url: "/xx/yy", type: "post", data: {"test": test}, dataType: "json", success: function(ret){ if(!ret["success"]) { alert(ret["msg"]); return; } }, error: function(jqXHR, textStatus, errorThrown){
2022-01-03 16:49:47
1276
原创 Python - Samba服务器部署及使用
(一)Samba服务器的部署本文使用wsl来进行Linux平台(Debian或者Ubuntu)的Samba服务器部署,具体的操作流程可以参考:玩转WSL-用Samba服务替代Win10原生的文件共享。流程很详尽,给大佬比个心。下面主要说下部署过程中遇到的一些不太常见的坑点:在给Samba服务设置用户还是启动Samba服务(记不清了)这一步报错了,后来忘记是在StackOverflow还是Github上的讨论中找到了答案:Samba服务不支持在wsl上部署,只能升级到wsl2重头来过!参考win10
2021-12-04 02:02:39
4113
原创 DataTables - 导出buttons使用
(一)代码示例html代码和javascript代码可以参考官网的例子:https://datatables.net/extensions/buttons/examples/initialisation/simple.html。(二)DataTables配置需要用到jQuery和DataTables相关的css和javascript代码:<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.16/
2021-10-06 14:11:19
1363
2
原创 cocos2d-x - 资源加载
资源加载简而言之,cocos2d-x使用快速缓存机制(Cache)来缓存加载的资源,避免重复读取磁盘的开销。(一)CSLoaderCSLoader模块用于从CocosStudio导出的csb, json或ExportJson文件中加载相应的节点(Node)、动画(ActionTimeline)等。1. 加载节点直接调用CSLoader::createNode方法。e.g.auto node = CSLoader::createNode("MainScene.csb");if (node) {
2020-12-07 00:01:42
576
原创 cocos2d-x - Action 动作
Action(一)动画执行流程Node.runAction:给节点添加动作(其实是添加到_actionManager)Action * Node::runAction(Action* action){ CCASSERT( action != nullptr, "Argument must be non-nil"); _actionManager->addAction(action, this, !_running); return action;}ActionM
2020-11-19 14:30:49
635
原创 cocos2d-x - Render 渲染
Render场景图的渲染大致遵循以下几个步骤:Director::mainLoop:每一帧都会执行节点的渲染。void Director::mainLoop(){ if (_purgeDirectorInNextLoop) { _purgeDirectorInNextLoop = false; purgeDirector(); } else if (_restartDirectorInNextLoop) { _r
2020-11-18 16:57:04
665
原创 cocos2d-x - Node 节点
NodeNode常用子类包括Scene, Layer, Widget等,常用属性有旋转(float _rotationX, float _rotationY)、伸缩(float _scaleX, float _scaleY)、位置(Vec2 _position)、倾斜(float _skewX, float _skewY)、锚点(Vec2 _anchorPoint)、大小(Size _contentSize)、全局层级(float _globalZOrder)和可见性(bool _visible)等,支持
2020-11-17 10:52:28
485
原创 cocos2d-x - Ref 引用计数
RefRef是cocos2d里面所有类型的基类,用于引用计数。Ref::Ref():构造函数的初始化列表会将该对象的引用计数赋值为1(Ref::Ref(): _referenceCount(1))。void Ref::retain():将引用计数+1。void Ref::release():将引用计数-1。如果引用计数为0则删除该对象(delete this)。#if代码块的意思是为了确保如果当前对象在自动释放池中(poolManager->isObjectInPools(this
2020-11-17 10:41:13
552
原创 Python - 非阻塞网络编程
以下内容基于python2.7。(一)python非阻塞网络编程非阻塞网络编程要求监听或等待接受不阻塞当前线程,如果资源没到就先跳过(其实是抛出IOError)继续执行后面的代码。非阻塞监听:sock.setblocking(False)非阻塞接收:conn.setblocking(False)示例:服务端# coding: utf-8import socketCONN_ADDR = ('127.0.0.1', 9999)conn_list = [] # 连接列表sock =
2020-10-27 14:03:34
979
1
原创 SVN - 常用知识点
(一)基本操作svn add 文件/目录:新增文件/目录svn up (文件/目录) (-r 版本):从服务器更新(文件/目录)至某版本(默认是最新版本)svn commit -m 日志描述:提交至服务器svn st:查看工作区所做的改变svn info (文件/目录):查看文件/目录的信息svn -log (-l 日志数):查看日志(可限制数目)svn diff (文件/目录) -r (版本1 :) 版本2:比较两个版本(默认是当前版本)(文件/目录)的差异svn export . 导出
2020-10-12 23:54:17
1398
原创 Python - 类编程要点
(一)子类调用超类方法子类可以通过类方法的形式调用超类的方法。e.g.class A(object): def __init__(self): print 'A'class B(A): def __init__(self): A.__init__(self) print 'B'(二)抽象类Python2示例:from abc import ABCMeta, abstractmethodclass A: __metaclass__ = ABCMeta @abs
2020-07-10 19:44:10
357
原创 Python - 模块编程要点
以下内容参考自《Python学习手册》。(一)基本用法#module1.py(示例模块)x = 1def printer(): print ximport语句:模块中的成员要通过模块对象来获取。e.g.>>> import module1>>> module1.printer()1from语句:把模块的成员复制到当前的全局作用域。这种情况下修改变量并不会影响模块对象的变量。>>> from module1 import prin
2020-06-15 22:35:37
282
原创 C# -Unity客户端与服务器端的网络通信
前言近段时间在做Unity客户端与python服务器之间的网络通信,由于不同语言之间的类型封装不同,不建议直接收发自定义的协议类型字节序列,而是使用json字符串序列进行过渡。python提供了json模块进行序列化和反序列化,只需要掌握loads操作和dumps操作即可,使用十分简单。而C#也可以使用Newtonsoft的动态链接库进行json的序列化和反序列化,下面阐述一下使用的注意事项。下载链接:https://pan.baidu.com/s/1kM2euOyT-ivXFJixXkQJSA
2020-05-13 22:07:25
694
原创 Java - 外网服务器与内网客户端的UDP通信
(一)原理要点数据类型:DatagramSocket与DatagramPacket每个socket在创建时都会绑定一个端口:使用构造方法public DatagramSocket(int port)会绑定指定端口;使用构造方法public DatagramSocket()会随机绑定可用的端口。发送数据报时需要指定目的地址和目的端口:DatagramPacket packet = ...
2020-04-27 23:42:08
1179
原创 python - 生成器Generator
以下内容参考自《Python学习手册》。在Python中,有两种语言结构可以延迟产生结果:生成器函数:在def代码块中使用yield一次返回一个结果,在每个结果之间挂起和继续它们的状态。 生成器表达式:类似于列表解析,但是边界符使用圆括号而非方括号。它们返回按需产生结果的一个对象,而不是构建一个结果列表。(一)生成器函数1.状态挂起和返回一个值并退出的常规函数不同...
2020-01-03 00:14:21
298
原创 Python - 参数匹配模型
以下内容参考自《Python学习手册》1.匹配语法表语法 位置 解释 func(value) 调用者 常规参数:通过位置进行匹配 func(name=value) 调用者 关键字参数:通过变量名匹配 func(*tuple) 调用者 以name(一个元组)传递所有的对象,并作为独立的基于位置的参数(解包参数) func...
2019-12-31 18:00:48
388
原创 Python - LEGB
以下内容参考自《Python学习手册》。Python的变量名解析机制有时称为LEGB法则:当引用一个变量时,Python按以下顺序依次进行查找:从本地变量中(本地作用域L),在任意上层函数的作用域(嵌套作用域E),在全局作用域(G),最后在内置作用域(B)。第一个能够完成查找的就算成功。变量在代码中被赋值的位置通常就决定了它的作用域。 当在函数中给一个变量名赋值时(而不是在一个表达...
2019-12-17 23:43:39
242
转载 必会的List Comprehension (列表推导式 / 列表解析式)
以下内容转载自必会的List Comprehension (列表推导式),原作者为CodingFish。强大的List Comprehension (列表推导式或者列表解析式)是Python中必须知道的概念。然而对于初学者来说是最具挑战性的。掌握这个概念将会在两个方面帮助你:应该写更短和更高效率的代码 代码应该执行的更快List Comprehension 比for循环快35%,...
2019-12-16 15:29:14
2872
原创 Python - 文件和目录操作
以下内容参考自《Python爬虫开发与项目实战》。在Python中对文件和目录的操作经常使用到os模块和shutil模块,常用的方法如下所示:获得当前Python脚本工作的目录路径:os.getcwd() 。e.g.>>> os.getcwd()'D:\\Code\\Python'获取文件/目录列举指定目录下的所有文件和目录名:os.listdir(pa...
2019-11-05 11:31:20
195
原创 计算机网络笔面试例题要点
一、物理层1. 光纤的组成光纤由三层材料组成,中心高折射率玻璃芯,中间为低折射率硅玻璃包层,最外是加强用的树脂涂层。 包层的材料一般用纯二氧化硅,也有掺极微量的三氧化二硼。掺杂的作用是降低材料的光折射率。 涂层是用来保护光纤不受外来的损害,增加光纤的机械强度。二、链路层1. 交换机的基本功能:(1)像集线器一样,交换机提供了大量可供线缆连接的端口,这样可以采用星型拓扑布...
2019-10-12 13:20:39
341
原创 操作系统面试例题要点
一、进程1. 试解释操作系统原理中作业、进程、线程、管程各自的定义。(1)作业:用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合。它包括用户程序、所需要的数据及控制命令等。作业是由一系列有序的步骤组成的。(2)进程:一个程序在一个数据集合上的一次运行过程。一个程序在不同的数据集合上运行,乃至一个程序在同样的数据集合上的多次运行都是不同的进程。(3)线程:线程是进程中的...
2019-10-12 13:20:30
395
原创 浏览器输入URL到服务器响应的过程(简明版)
浏览器输入URL到服务器响应的过程1.浏览器识别URL协议名 主机、端口 路径2.域名解析(DNS)查询浏览器缓存。 查询系统缓存(host)。 ISP的缓存DNS服务器进行递归查询,从根域名服务器查到顶级域名服务器再查到权限域名服务器,最后得到目标域名的IP地址。3.浏览器和服务器建立TCP连接(三次握手)。4.浏览器发送请求应用层发送HTTP请求。 传...
2019-10-12 11:33:34
506
原创 C/C++ - struct&union&class 附大小端简明例子
(一)区别1.在C中,struct和union的区别:struct:各成员各自拥有自己的内存,各自使用互不干涉,同时存在的,遵循内存对齐原则。一个struct变量的字节对齐长度至少能容纳最大的成员变量,而且要满足是所有成员类型大小的整数倍。 union:各成员共用一块内存空间,并且同时只有一个成员可以得到这块内存的使用权(对该内存的读写),各变量共用一个内存首地址。一个union变量的...
2019-09-15 13:15:05
352
原创 HTTP - 长连接(Keep-Alive)模式
以下内容分别转载或摘录自:【1】松若章,你猜一个 TCP 连接上面能发多少个 HTTP 请求。【2】烛秋,HTTP的长连接和短连接【3】吴秦(Tyler),HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等【4】JanzzZ,粘包【5】大老虎打老虎,tcp长连接分包方法(一)一个 TCP 连接上面能发多少个 HTTP 请求一道经...
2019-09-09 23:38:22
1112
转载 C++中的RAII介绍
以下内容转载自C++中的RAII介绍,原作者为binbinneu。摘要RAII技术被认为是C++中管理资源的最佳方法,进一步引申,使用RAII技术也可以实现安全、简洁的状态管理,编写出优雅的异常安全的代码。资源管理RAII是C++的发明者Bjarne Stroustrup提出的概念,RAII全称是“Resource Acquisition is Initialization”...
2019-09-07 22:51:23
197
转载 C++11中智能指针的原理、使用、实现
以下内容转载自C++11中智能指针的原理、使用、实现,原作者为binbinneu。1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生...
2019-09-07 22:46:02
224
原创 C++ - const
以下内容参考自《程序员面试宝典》(一)指针常量 & 常量指针关于const修饰指针的情况,可以分为以下4种情况:int b = 1;const int* a = &b; // case 1int const *a = &b; // case 2int* const a = &b; // case 3...
2019-09-01 17:03:27
309
转载 C++ - 指针和引用的区别
以下内容转载自浅谈C++中指针和引用的区别,原作者为Matrix海子。指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1. 指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int...
2019-08-29 16:36:20
127
转载 Andorid - Activity的生命周期
以下内容转载自深入理解Activity的生命周期,原作者为这是朕的江山,部分内容有所新增。 之前学习安卓的时候只是知道生命周期是什么,有哪几个,但具体的详细的东西却不知道,后来看过《Android开发艺术探索》和大量博客之后,才觉得自己真正有点理解生命周期,本文是我对生命周期的认识的总结。 废话少说先上图。 相信学习安卓的人对这幅图都很熟悉,...
2019-08-29 14:37:37
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人