<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[keepmoving0407的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/keepmoving0407</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; keepmoving0407]]></copyright><item><title><![CDATA[微信emoji表情json文档]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/125847606</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/125847606</guid><author>keepmoving0407</author><pubDate>Mon, 18 Jul 2022 13:49:18 +0800</pubDate><description><![CDATA[微信emoji表情json文档]]></description><category></category></item><item><title><![CDATA[Duilib样式性大全-Duilib属性大全-Duilib XML属性大全-Duilib XML样式大全]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/115414500</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/115414500</guid><author>keepmoving0407</author><pubDate>Sat, 03 Apr 2021 12:02:52 +0800</pubDate><description><![CDATA[Duilib样式性大全-Duilib属性大全-Duilib XML属性大全-Duilib XML样式大全




&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;?xml-stylesheet type="text/xsl" href="属性列表.xslt"?&gt;
&lt;!-- 可能有错漏，欢迎补充。wangchyz(wangchyz@gmail.com) --&gt;
&lt;Controls&gt;
	&lt;Window parent="...]]></description><category></category></item><item><title><![CDATA[C#API大全-C# WIN32 API大全]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/115393560</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/115393560</guid><author>keepmoving0407</author><pubDate>Fri, 02 Apr 2021 10:52:49 +0800</pubDate><description><![CDATA[C#API大全-C# WIN32 API大全






    #region CPU
    public struct CPUInformation
    {
        public uint core;
        public string type;
        public uint level2;
        public uint masterfrequency;
    }
    #endregion
    #region Memory
    public ..]]></description><category></category></item><item><title><![CDATA[QT操作MySql数据库出现QSqlDatabase: QMYSQL driver not loaded解决方法]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/114505100</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/114505100</guid><author>keepmoving0407</author><pubDate>Mon, 08 Mar 2021 01:14:41 +0800</pubDate><description><![CDATA[最近装了一个WAMP服务器，要用QT访问MySql数据库，代码如下：


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qsqldatabase.h"
#include "qdebug.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui-&gt;setupUi(this);]]></description><category></category></item><item><title><![CDATA[Cocos2d+protobuf仿JJ斗地主源码,win32和Android编译通过]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/109997522</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/109997522</guid><author>keepmoving0407</author><pubDate>Mon, 23 Nov 2020 16:15:47 +0800</pubDate><description><![CDATA[曾经研究过斗地主算法，也写了一些文章，但由于时间关系，没空继续写，今天来分享一下Cocos2d+protobuf仿JJ斗地主源码，代码写的简单也有一些乱，请大家不要笑话！

首先我们来看一下服务器端：

IP为127.0.0.1端口为：98765

当有满足三个人一桌后，就开始游戏



详细信息中可以看到某一桌的牌



再看一下客户端：







game.proto文件：




syntax = "proto3";
package Game_DDZ;
message Packet{
 ...]]></description><category></category></item><item><title><![CDATA[Cocos2d-x中配置Protobuf(win32和android)]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/106243592</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/106243592</guid><author>keepmoving0407</author><pubDate>Wed, 20 May 2020 22:57:59 +0800</pubDate><description><![CDATA[今天讲一下在cocos2d-x-3.17.2项目中配置protobuf-3.12.0-rc2。

1.下载cocos2d-x-3.17.2：https://www.cocos.com/cocos2dx解压到：c:/cocos2d-x-3.17.2

2.下载protobuf-3.12.0-rc2：https://github.com/protocolbuffers/protobuf/releases/,解压到：c:/protobuf-3.12.0-rc2

要使cocos2d-x-3.17.2能编译An..]]></description><category></category></item><item><title><![CDATA[NDK编译protobuf-3.12.0-rc2]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/106201797</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/106201797</guid><author>keepmoving0407</author><pubDate>Mon, 18 May 2020 22:03:20 +0800</pubDate><description><![CDATA[今天讲一下NDK编译protobuf-3.12.0-rc2：

下载android-ndk-r13b-windows-x86_64.zip:https://dl.google.com/android/repository/android-ndk-r13b-windows-x86_64.zip?utm_source=androiddevtools&amp;utm_medium=website,解压到：：C:/android/android-ndk-r13b

下载protobuf-3.12.0-rc2：htt]]></description><category></category></item><item><title><![CDATA[cocos2d-x扫光按钮加酷炫效果]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/106116352</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/106116352</guid><author>keepmoving0407</author><pubDate>Thu, 14 May 2020 11:46:56 +0800</pubDate><description><![CDATA[今天用cocos2d-x做了一个扫光按钮，效果如下：



由于是录频生成Gif的，效果不太逼真。

做这个按钮的素材都是我自己用PS做的，有以下文件：







cocos2d-x代码头文件如下：


#ifndef __STARTBTN_H__
#define __STARTBTN_H__
#include "cocos2d.h"
using namespace cocos2d;
class HelloWorld;
class StartBtn :public cocos2d::Sp...]]></description><category></category></item><item><title><![CDATA[cocos2d-x播放骨骼动画(C++)]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/106010467</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/106010467</guid><author>keepmoving0407</author><pubDate>Sat, 09 May 2020 01:05:02 +0800</pubDate><description><![CDATA[cocos2d-x是怎样播放骨骼动画的呢？很多新手不知道怎么播放。

我们首先看一下资源文件中的骨骼地画文件：





我们主要看一下json文件里的内容：



找到动画的名称：huojianfei_you (火箭从右边飞) ，huojianfei_zhiji(火箭从中间飞) ，huojianfei_zhou(火箭从左边飞)，这三个代表火箭起飞，后面还有一个是前面都要执行的名字：huojianzha(火箭爆炸)

下面看C++播放代码：

头文件：

#include "cocos2d.h"
#i...]]></description><category></category></item><item><title><![CDATA[C++开发斗地主(QT)第五篇之牌型权重]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/105774429</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/105774429</guid><author>keepmoving0407</author><pubDate>Mon, 27 Apr 2020 13:35:57 +0800</pubDate><description><![CDATA[牌型权重

给定一组手牌，怎么计算它的权重呢？我们可以把手牌切分成不同的牌型，一次出牌只能出一个牌型(Node)，手上有多少个Node就是手数。 我们可以对每种牌型，同一个牌型的每个面值，设置不同的权重。权重可以是正值，也可以是负值。

斗地主以跑牌成功为胜利，手上多一张牌，就多一分负担。 我们可以考虑以厌恶度来衡量每张牌型的权重。如果出完手上的牌，那么手数为0，权重设为0；以此为基础，面值...]]></description><category></category></item><item><title><![CDATA[C++开发斗地主(QT)第四篇之手牌分类]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/105767979</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/105767979</guid><author>keepmoving0407</author><pubDate>Sun, 26 Apr 2020 18:20:13 +0800</pubDate><description><![CDATA[本篇将讲的是发到牌以后对手上的牌进行处理。在讲之前，我把本游戏开发要用到的声音图片下载地址给大家：https://download.youkuaiyun.com/download/keepmoving0407/12363899

同时我也刚刚创建了一个QQ学习交流群：1005923608

我们先看一下LoadCards结构体


class LordCards
{
public:
    static i...]]></description><category></category></item><item><title><![CDATA[C++开发斗地主(QT)第三篇之动画发牌与位置计算]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/105759113</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/105759113</guid><author>keepmoving0407</author><pubDate>Sun, 26 Apr 2020 11:03:25 +0800</pubDate><description><![CDATA[本篇讲的是是怎样发牌，计算牌的准确位置，请看下面桌面：

发好牌后的样子：





自己家的牌位置很好计算：

假如牌的大小为122*150，数量为n,每张牌的间隔是40，窗口的宽为width(),高为height()按从左到右的排列，后面盖住前面。则起点位置为：x=(width()-((n-1)*40+122))/2

y=height()-150-60.

(n-1)*40是除最后一张牌的...]]></description><category></category></item><item><title><![CDATA[C++开发斗地主(QT)第二篇之牌的绘制与显示]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/105755506</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/105755506</guid><author>keepmoving0407</author><pubDate>Sat, 25 Apr 2020 21:16:36 +0800</pubDate><description><![CDATA[这一节为什么讲的是牌的显示？因为我觉得要学习这些，必须与实际相结合。

一.单张牌显示控件 （CardWidget）

我的QT版本是5.12.5，编译器是MinGW32，没下载的请选下载QT，下载地址：http://download.qt.io/archive/qt/

新建一个项目名称为：Game_DDZ,点右键选AddNew，新建一个类CardWidget ，继承类为：QWidget,...]]></description><category></category></item><item><title><![CDATA[C++开发斗地主(QT)第一篇之数据结构]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/105753906</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/105753906</guid><author>keepmoving0407</author><pubDate>Sat, 25 Apr 2020 19:43:11 +0800</pubDate><description><![CDATA[斗地主，是一种在中国流行的纸牌游戏。游戏最少由3个玩家进行，用一副54张牌（连鬼牌），其中一方为地主，其余两家为另一方，双方对战，先出完牌的一方获胜。如今已风靡整个中国，并流行于互联网上！

从今天开始，我将会一步步详细讲解单机斗地主游戏开发过程。该游戏以C++为主，QT做为界面（包括显示动画声音等）的Window平台，没有用到第三方面库如CoCo2d等，至于为什么要用QT，主要是自己得心应...]]></description><category></category></item><item><title><![CDATA[车牌生成代码车牌后5位生成代码]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/103121940</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/103121940</guid><author>keepmoving0407</author><pubDate>Mon, 18 Nov 2019 15:06:30 +0800</pubDate><description><![CDATA[车牌后5位序号编码规则有三种，分别是：

1、序号的每一位都使用阿拉伯数字；

2、序号的每一位可单独使用英文字母，26个英文字母中O和I不能使用；

3、序号中允许出现2位英文字母，26个英文字母中O和I不能使用。

由于本人使用的是QT开发工具，下面就用QT来写这个


//字母数组，不含I O 
const QStringList PLATE_EN{"A","B", "C", "...]]></description><category></category></item><item><title><![CDATA[基于QT+OpenCV+hyperLPR车牌识别系统]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/102964082</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/102964082</guid><author>keepmoving0407</author><pubDate>Thu, 07 Nov 2019 22:28:55 +0800</pubDate><description><![CDATA[基于WIN QT5.12(MinGW)+ OpenCV3.3.+hyperLPR车牌识别系统，自带OpenCV3.30 MinGW SDK，把BIN目录下的DLL文件复制到生成目录中，



把model目录也复制过去，注意是整个目录！







程序运行界面：





软件对单行绿牌和黄牌识别度较高，对新能源车牌识别较低！双行车牌还不能识别！

源码下载地址:https://downl...]]></description><category></category></item><item><title><![CDATA[基于OpenCV的音频频谱优化(仿酷狗频谱)]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/98939666</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/98939666</guid><author>keepmoving0407</author><pubDate>Fri, 09 Aug 2019 12:09:29 +0800</pubDate><description><![CDATA[酷狗音乐是当今界面做的最好的软件，本人一直想模仿它，经过多年的研究，终于通过QT+FFmpg+OpenCV来解决了全部功能。

QT用来设计界面

FFmpeg用来解码音频和频谱

OpenCV用来对频谱图像优化

在这些功能中，频谱是比较难实现的，我的方案是选通过FFmpeg获取音频采样率，再分析绘制成QImage图像，再用OpenCV优化。

下图是绘制的原图：



图像经过高斯模糊后的效果...]]></description><category></category></item><item><title><![CDATA[Android 触屏事件 (单击,双击,滑动)]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/9133059</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/9133059</guid><author>keepmoving0407</author><pubDate>Wed, 19 Jun 2013 22:53:28 +0800</pubDate><description><![CDATA[主要学习内容：
1. 接收并处理鼠标事件：按下、弹起、移动、双击、长按、滑动、滚动
2. 接收并处理按键事件：按下、弹起
3. 模拟鼠标/按键事件 

1. Android事件
现代的用户界面，都是以事件来驱动的来实现人机交换的，而Android上的一套UI控件，无非就是派发鼠标和键盘事件，然后每个控件收到相应的事件之后，做相应的处理。如Button控件，就只需要处理Down、move]]></description><category></category></item><item><title><![CDATA[C#基于Udp的分包传输]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/8994888</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/8994888</guid><author>keepmoving0407</author><pubDate>Thu, 30 May 2013 16:12:29 +0800</pubDate><description><![CDATA[因为要远做程摄像头监控，要用到网络数据传输，百度了一下，很多就是基于Tcp的，因为QQ是用Udp，所有我也尝试用Udp。
要用Udp传输数据，就免不了分包和重包，因为Udp最大只能传输64KB的数据！下面给出分包的代码：
   首先定义一个包类：
using System;
using System.Collections.Generic;
namespace Packet_Librar]]></description><category></category></item><item><title><![CDATA[C#桌面歌词原理]]></title><link>https://blog.youkuaiyun.com/keepmoving0407/article/details/8082257</link><guid>https://blog.youkuaiyun.com/keepmoving0407/article/details/8082257</guid><author>keepmoving0407</author><pubDate>Wed, 17 Oct 2012 18:25:37 +0800</pubDate><description><![CDATA[喜欢编程的朋友都会开发音乐播放器，音乐播放器的制作难点不在乎歌词显示，普通的lrc格式处理比较简单，但这并非程序爱好者的最终目标！他们总会把桌面逐字显示的歌词效果当着理想目标。
谈到逐字定位歌词，大家就想到酷狗的krc歌词，但这种歌词价值金贵，都加密了！几乎还没有人能密！所以本人建议别把心思放在它上面！也别再用这金贵的软件了！
那么用什么格式的歌词呢？其实还有两种开源的歌词，那就是qq的qrc]]></description><category></category></item></channel></rss>