- 博客(2082)
- 资源 (58)
- 收藏
- 关注
原创 Phaser笔记-精灵(sprite)的使用
这里解释下this.anims.generateFrameNumbers中的config参数是{start: 0, end: 3},代表这个动画播放0到3。这里有4个人物,所以frameWidth: 480/4 = 120。这里就解释下setScale放大为2。②将资源添加到spritesheet;③在physics中添加sprite;②将资源添加到spritesheet;③在physics中添加sprite;①设置好physics;①设置好physics;
2023-05-29 15:25:01
210
原创 Phaser笔记文档阅读-Working with Phaser, TypeScript and webpack – step 1
这里有个要说明,如果安装phaser使用npm安装使用--save-dev,那么phaser就会会放到devDependencies。执行上面的命令成功后会自动创建package.json文件。创建新目录src,新建文件src/main.js,index.html。在到src目录下创建asserts,放图片资源。devDependencies:开发环境需要的依赖库;创建一个webpack.development.js。dependencies:生产环境需要的依赖库;首先得安装好npm和node.js。
2023-05-22 15:10:24
445
原创 C/C++笔记-使用Qt的UI文件时make流程
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;从中发现了个有意思的,以前都以为moc_xxx.cpp文件是通过对于的.h和.cpp使用moc联合生成的,现在发现他仅仅是使用对应的.h文件生成。这里就很明确的发现了,在编译阶段,使用了Q_OBJECT和继承了QObject的类会编译时会生成2个object文件,分别是原始object和带moc的object文件。-O2:optimization优化,比-O高一级的优化,编译优化,具体优化哪些内容,在此不说明;
2023-05-15 11:04:35
484
原创 C/C++笔记-构造makefile使用MOC程序及编译,链接
②:$(PROGRAM): $(OBJECTS):这个会先找在文件中找main.o Test.o moc_Test.o,如果找不到就在makefile下,看有没有对应的标签。背景是这样的构造一个Test类,使用了Q_OBJECT宏,和继承了QObject,也就是元对象,这时,makefile需要如何写。每一条命令在前一篇文章中已经说明了。
2023-05-08 21:17:02
322
原创 C/C++笔记-分析带有Q_OBJECT继承QObject的类make流程
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;从中发现了个有意思的,以前都以为moc_xxx.cpp文件是通过对于的.h和.cpp使用moc联合生成的,现在发现他仅仅是使用对应的.h文件生成。这里就很明确的发现了,在编译阶段,使用了Q_OBJECT和继承了QObject的类会编译时会生成2个object文件,分别是原始object和带moc的object文件。-O2:optimization优化,比-O高一级的优化,编译优化,具体优化哪些内容,在此不说明;
2023-05-03 14:49:49
1766
原创 C/C++笔记-写一个Makefile并链接QtCore库使用QString,QDebug
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;②用于运行时指定所有引用库的位置,作用同修改环境变量(LD_LIBRARY_PATH),并且库路径引用优先级高于LD_LIBRARY_PATH;③$
2023-04-23 14:52:20
940
2
原创 Phaser笔记-scene中的preload、create、update、player、键盘控制
create:preload完成后,就会调用到这函数,这个函数一般用于构造界面,关联玩家键盘,游戏大部分逻辑事件等等等;那么还需要创建动画,方便后边的键盘操作,上面的精灵是个横版的图,左边4幅是左,中间那一幅是停止的,右边4幅是右走。如将玩家(精灵)在不同操作下,设置不同的X,Y轴坐标,以及播放不同的动画。update:会按周期进行调用,一般用于键盘控制玩家,玩家坐标更新等。preload:是在create函数前调用的,一般用于资源的加载;分别是左键被按下,右键被按下,跳起一次。
2023-04-17 18:38:19
1028
2
原创 C/C++笔记-记录一次对qmake生成的Makefile的分析(2023-02-07)
Wl, -rpath:①用于编译时指定间接引用的库位置,作用同-Wl,-rpath-link;②用于运行时指定所有引用库的位置,作用同修改环境变量(LD_LIBRARY_PATH),并且库路径引用优先级高于LD_LIBRARY_PATH;-fPIC:用于生成位置无关的代码(Position-Independent-Code);-DQT_CORE_LIB:这个没查到,但看名称差不多能猜到是QT核心库的调试;-D_REENTRANT:它会对部分函数重新定义它们的可安全重入的版本;-L:Link链接路径;
2023-04-10 21:47:19
1038
原创 C/C++文档阅读笔记-A Simple Makefile Tutorial解析
上面定义了CC和CFLAGS两个宏,目的是方便makefile后面的脚本使用,CC=gcc并且后面的$(CC) -o hellomake hellomake.o hellofunc.o说明这个CC=gcc是使用C编译器,CFLAGS列出来标签的list, -I . 编译成.o文件需要依赖当前目录的.h文件。没用makefile文件,程序员对代码进行修改后,就需要不停按键盘的↑键去找对应的命令进行编译,如果新增了一个.c文件,还需要修改对应的命令。(可以用“\”来转义,以“\%”来表示真实含义的“%”字符)
2023-03-30 09:10:46
2193
5
原创 Linux笔记-使用grep检索指定字符串
如果这里面有很多文件夹,还需要检索子文件夹中的字符串带个-r就可以了。以前都是用find和grep这种组合命令去检索。这种更加灵活点,但是有时用grep就够了。-i:不区分大小写;
2023-03-30 09:05:07
1187
原创 Qt文档阅读笔记-Tetrix Example解析
Q_OBJECTpublic:private:在类的private中有几个成员变量,包括前端画线,各种挂机和按钮,按钮有开始游戏,暂停当前游戏和退出。TetrixWindow继承了QWidget,但QWidget父类不能构造自己想创建的结构,所以,一般用上面这种方式创建程序员想要的界面。TetrixPiece类为游戏区域创建俄罗斯方块,包括形状、位置、方块在游戏区域的位置范围。
2023-03-30 09:04:53
1305
原创 Arduino文档阅读笔记-4 WHEEL ROBOT CAR BASIC EXAMPLE
电机控制板,直接可以放到Arduino上面就可以了,用这个扩展板使用直流电机控制4个马达。使用扩展板上的M1,M2控制前面2个轮转,M3,M4控制后面两个轮子。下面这个实例来做一个最基础的4轮小车,下面将说明各个功能和代码。Arduino小车有很多种,包括2个轮子,4个轮子。首先写一段测试程序,测试马达能否正常转动。首先得先准备这样的一辆4个轮子的小车。
2023-03-27 09:00:30
1177
原创 Python文档阅读笔记-Car detection with OpenCV
在人脸检测中,使用预先被训练过的模型文件去侦测脸和眼睛。同样使用预先被训练过来的模型文件去检测汽车。将用这个模型检测出来的汽车用矩形框出来。
2023-03-20 08:54:17
1320
原创 Qt笔记-pro文件中添加-fpermissive
在Makefile里面写比较方便。老项目里面的库,一包含就报-fpermissive错误。我在Linux上成功了。
2023-03-13 09:18:43
1527
原创 Python文档阅读笔记-Number Plate Recognition with OpenCV and EasyOCR
注意,在本博文写的时候(2022-02-28)OpenCV版本4.5.5.62和EasyOCR不兼容。首先初始化Reader对象,然后调用readtext函数,其中的参数,传找到的车牌号。所以,这种车牌,需要有和其他技术进行搭配。原因的光线问题,在识别中,拍照也是一门技术活。如果返回为0,说明什么也没找到,什么也没识别出来,这里程序会出现一个提示框。首先将图片转换为灰度图,再通过高斯滤波删除一些干扰信息,最后进行边缘检测。如果识别成功,程序会将识别到的信息,也就是那3个元素,显示到车牌旁。
2023-03-06 08:57:58
1665
1
原创 Phaser笔记-Phaser适配WeChat
首先将这个大佬的Github下载下来,他已经做好了适配。将git上下载的包放到libs/gamelibs。用微信开发工具创建一个小游戏项目。
2023-02-27 10:37:20
1632
原创 PHP笔记-Workerman整合到Laravel中并创建websocket
今天想把websocket搭建起来,查了下原始的Laravel并没有这个功能,发现php中websocket用workerman好像比较多。因为虚拟空间只开了80或443端口,websocket需要另外开个端口,所以这种情况要分开。在此将他们结合下,但结合时发现了一些问题。此篇博文虽然以及结合起来了,但是在某些情况下,建议还是分开,做成微服务的那种。业务简单的情况下可以结合起来,不影响。这个$signature要填写,控制台启动workerman时就是。如果是要搞中大型的项目,建议分开。
2023-02-20 08:47:53
1707
原创 Laravel笔记-搭建Restful风格的后端
这里需要在routes/api.php中添加代码,不用在web.php中添加。首先创建Controller和resource。
2023-02-13 08:53:01
1531
原创 Laravel笔记-使用php命令创建模型&创建数据库迁移文件&生成仿真数据(伪造数据)
在Models下会自动创建Products.php文件以及migrations下会创建对应的迁移文件。在ProductsFactory.php中新增definition的return值。composer创建Laravel应用已经有博文了,在此不重复。最后在DatabaseSeeder.php中进行创建。这样表就创建好了,下面生成仿真数据。然后在model中进行对应。最终执行命令生成仿真数据。创建Products模型。在迁移文件中新建字段。数据库中就有数据了。
2023-02-06 10:08:04
1602
1
原创 Laravel笔记-使用composer搭建Laravel环境(开发工具phpStorm)
从中可以看到当前(2023-01-05 10:18:48)最新8版本的Laravel。运行后,浏览器直接localhost就可以看到Laravel欢迎界面了。以前写过一个,但没这个composer直接搭建的方便。创能一个phpStorm,指定好Host和执行public目录。这里用的是8版本,因为我用的是php7.3。新增一个PHP Built-in Web Server。然后用phpStorm打开,会出现加载npm依赖。随后配置下phpStorm。先配置下php解释器。再创建一个运行配置。
2023-01-29 11:09:01
2247
1
原创 Laravel文档阅读笔记-How to Build a Rest API with Laravel: A Beginners Guide①
随着移动端和JavaScript框架的发展,比如React和Vue,Restful风格的API越来越流行。使用Restful风格的好处就是一个后端程序可以与多个版本的前端用户界面关联。Laravel提供了创建Rest API的环境和生态。首先得导入依赖包比如Laravel Passport和Laravel Sanctum,这两个包提供了Restful API的权限功能,并且使用起来非常简单。Laravel Breeze包提供了重置密码的模版功能。Socialite和Scout提供了登陆和查找功能。
2023-01-16 09:12:11
1767
1
原创 Python文档阅读笔记-Turn Images into Cartoons using Python
下面展示不同原始图片转换为不同版本的图片。
2023-01-09 13:52:16
1409
1
原创 C++设计模式-状态模式案例(用户每日充值获取不同的VIP状态)
不仅仅有VIP状态,还有个金币。每日首充可以获得10个金币,充得多获得20个金币,不充值扣5个金币。这个状态模式在2019年07月05号写过一篇,当时是把大话设计模式中C#的代码翻译成C++的。今天(2022年12月07日)需要用到这个,在此温习下,写个自己的案例出来。模拟2周(14天),有个用户类。用户需要每日充值,从而获取不同的VIP状态。这里的案例主要是这样的。
2023-01-03 09:05:59
1211
2
原创 Qt文档阅读笔记-Qt, QML, Widgets…What Is The Difference?
这个是个人总结和博文无关。Widgets相当于是和VB、MFC、C#这类竞争的。QML相当于是和Android、IOS这类移动端竞争的。
2022-12-27 15:05:46
1015
4
原创 Spring Boot文档阅读笔记-Scheduling Tasks
这篇博文将说明,如何一步一步完成Spring的任务调度功能。主要是使用@Scheduled注解,完成每5秒打印当前时间。首先在Maven中增加awaitility依赖包整体Maven如下:创建调度调度任务的类,ScheduleTasks.java@Scheduled注解说明了在合适调用,比如fixedDelay说明每多少毫秒调用一次。这里还有其他选项,比如使用corn,这里全称应该是crontab,也就是定时任务,如@Scheduled(cron="...")最后在@SpringBo
2022-12-05 09:00:09
875
1
原创 Qt笔记-pro文件配置include和lib及遍历文件夹及文件排序
pro文件里面也可以定义变量,比如DPI_INCLUDE和DPI_LIB,调用的时候用$${DPI_INCLUDE}和$${DPI_INCLUDE}就可以了。有QDir::Time、QDir::Size、QDir::Type这些比较常用。QDir::SortFlag::Name,就是按照文件名排序。首先是pro文件配置include和lib。连接include用INCLUDEPATH。LIBS为链接的动态和静态文件。
2022-11-28 15:33:51
1273
1
原创 C/C++语言笔记-递归、迭代、动态规划的区别与联系(手段就2种-递归/迭代)
递归:程序调用自身,从顶部将问题分解,通过解决掉所有分解出来的小问题,来解决整个问题。迭代:利用变量的原值推算出变量的一个新值。递归中一定有迭代,但是迭代中不一定有递归。动态规划:通常与递归相反,其从底部开始解决问题。将所有小问题解决掉,进而解决的整个问题。下面通过斐波那契数列相关代码来比较一下三者。斐波那契数列:1,1,2,3,5,8,11,13…
2022-11-21 20:59:18
674
原创 Java笔记-使用processBuilder调用shell(Linux)
环境是这样的,前端发起一个post请求,里面的信息带有要启动的进程,java后端接收到这个进程名后,使用linux的shell调用指定的程序。
2022-11-14 09:04:32
1308
1
原创 Spring Boot文档阅读笔记-3 Ways to Add Custom Header in Spring SOAP Request
本篇博文使用3种不同的方法,在Spring SOAP(Simple Object Access Protocol)上添加自定义头信息。头信息一般是服务端用于身份验证的。SOAP头信息在SWDL文档中是不会提及的,这需要程序员手动在请求上添加头信息。这里可以使用interceptor用于添加头信息,也可以在WebServiceMessageCallback中重写dowithMessage()方法上做,也可以在JAXB Marshaller中添加头信息。下面是一个简单的SOAP请求的XML头信息。
2022-11-07 09:17:28
650
原创 Qt文档阅读笔记-Zoom Line Example
i < 500;i++) {}这里可以看到这条直线数据,x轴是0~500,每1个单元一个点,y轴是qSin(M_PI / 50 * i) * 100,中学以来我们都知道sinx是个曲线图像,并且当x为π时,图像会与x轴相交,所以qSin(M_PI / 50 * i)的含义就是变化相位,变化成,当x取50的倍数时,图像与x轴相交,最后那个*100,是把sin函数从[-1,1]的值放大到[-100,100]。最后是在y轴加上一个0~20的随机数。我个人觉得是增加图形的毛刺感。
2022-10-31 09:09:19
568
原创 C++文档阅读笔记-Understanding nullptr in C++
NULL 是被定义为(void *)0,所以他也能被转换为int类型,所以fun(NULL)就搞不清,这个函数到底是调用fun(int N)还是fun(char *s)。在上面这段代码中,如果使用nullptr代替NULL。就不会告警了,因为nullptr可以隐式转换为任意指针类型,而NULL,不能进行隐式转换为int类型。在编程中经常会使用到指针为NULL(need of nullptr)。为什么使用nullptr就能解决这个告警?上面的代码出现了何种问题呢?这里编译器会报警告。
2022-10-17 09:12:13
540
原创 C++文档阅读笔记-Difference Between C Structures and C++ Structures
这里来讨论struct在C和C++的异同。在C++中struct和class极其相似。
2022-10-10 08:56:20
605
原创 Qt文档阅读笔记-Bluetooth Scanner Example
项目是这样的,主要有2个界面,一个是service,一个是device。当调用QBluetoothDeviceDiscoveryAgent,的start方法后,就会emit2个关键信号,分别是deviceDiscovered()和finished()。简单描述下就是当发现蓝牙设备后,会触发这个信号,并且将发现的设备以QBluetoothDeviceInfo的形式给到槽参数里面。这里主要想弄懂的是如何使用Qt的蓝牙类,扫描蓝牙的,所以主要关注点在。如果电脑上只有1个蓝牙,就不用这么麻烦了。
2022-10-04 14:42:52
805
原创 C语言文档阅读笔记-Basics of File Handling in C
wb+:以二进制的方法打开可读可写文件,如果文件存在则清空文件内容,如果文件不存在就创建新的文件,如果存在不了就返回NULL。wb:以二进制的方法打开只写文件,如果文件存在则清空文件内容,如果文件不存在就创建新的文件,如果存在不了就返回NULL。w+:打开可读可写文件,如果文件存在则清空文件内容,如果文件不存在就创建新的文件,如果存在不了就返回NULL。w:打开只写文件,如果文件存在则清空文件内容,如果文件不存在就创建新的文件,如果存在不了就返回NULL。④写入文件(fprintf或fputs)。
2022-09-26 09:18:59
519
原创 C++文档阅读笔记-How to find Segmentation Error in C & C++ ? (Using GDB)
将上面的这个文件保存为Program1.cpp。打开终端,进入Program1.cpp所在目录。Segmentation Error:是在运行时对内存非法访问时报的错,比如非法读取内存。在下面这个例子中展示了如何在程序中找段错误,找到这个段错误是在程序代码的哪一行。现在就可以知道端错误在第8行*p = 1这个地方,这里输入quit就能退出了。注意:这里使用的是Linux的Ubuntu操作系统演示。这种报错在C/C++程序中很常见。这里会报出错,异常原因是段错误。如何使用GDB找到错误源。
2022-09-19 09:33:38
494
原创 C++文档阅读笔记-Core Dump (Segmentation fault) in C/C++
这篇博文比较有意思,在此记录下,方便以后查阅,同样也是在GeeksForGeeks看读到的。Core Dump/Segmentation fault这个报错是内存在告诉程序员“这块内存不属于你”。
2022-09-12 17:46:19
451
原创 C++笔记-auto_ptr&unique_ptr&shared_ptr&shared_ptr基本用法
看到这里想必都已经明白了,auto_ptr一般是在栈区进行创建,当栈区生命周期结束后,调用其自己的析构函数,而他自己的析构函数里面对_Myptr进行了delete。这里可以看到,但调用->这个符号后,他先看_Myptr有无值,如果有就调用get()方法。就会传*get()过来,这里差不多就可以猜到,这个get()方法,返回的就是_Myptr。其实auto_ptr就是一封装类,他将传入的指针放到了_Ty中,命名为_Myptr。从中可以看到,的确,get方法返回被包裹的指针。第一个问题就研究完了,
2022-09-05 19:37:23
426
Qt文本转化工具 realase版本
2019-01-19
Qt文件编码转换工具源码
2019-01-19
libX11生成libX11-xcb.so.1
2018-11-13
基于RFID门禁系统源码 ,C/C++
2017-09-10
Qt+Opencv-PCA人脸识别+视频
2017-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人