自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 深入理解C++中的类型转换

文章目录前言隐式转换C语言中的隐式转换类类型转换显示转换前言在深入理解C语言中的类型转换一文中对C语言中出现的隐式转换和显示转换进行了总结,在那篇文章中所提到的所有类型转换都适用于C++语言,本文将特别关注C++语言中的类型转换,主要概括出C++不同于C语言的知识点。隐式转换C语言中的隐式转换主要参考前言中提到的那篇文章,在此不再重复叙述。类类型转换作为一门面向对象的编程语言,C++在C语言基础上从程序语言层次上支持了类及其一系列相关特性,例如继承、虚函数、多态等。在显示转换...

2020-11-08 20:36:45 375

原创 深入理解c语言中的const

手机编写,暂时列个提纲,待后续更新1 类型检查2 本身作用域为当前文件,但是可以通过extern声明为全局const,define不行3 作用域可以在类下面,define不行4 局部作用域下的const和define测试5 修饰函数参数及返回类型 修饰成员函数 修饰指针...

2020-11-01 23:13:06 195

原创 深入理解C语言中的类型转换

文章目录隐式转换基本类型转换整形提升算术转换赋值转换输出转换类类型转换显示转换传统方式static_castdynamic_castconst_castreinterpret_castexplicit 关键字隐式转换基本类型转换整形提升算术转换赋值转换输出转换类类型转换显示转换传统方式static_castdynamic_castconst_castreinterpret_castexplicit 关键字...

2020-10-18 13:12:42 1265 3

原创 常量引用,指向常量的指针和常量指针的区别

引言阅读完《C++ Primer》2.4小节,对const限定符下的引用和指针的理解有点迷茫,因此本文总结了const限定符下的指针和引用的使用方式。const修饰符用来定义常量,可以有两种作用方式。当其修饰对象时,例如const int, int* const,该对象必须显式初始化,此时称其为顶层const;当其修饰类型说明符时,例如const int&, const int*,该对...

2020-03-13 16:44:47 635 2

原创 C# 特性与反射

C# 中的特性也是一个Class,在自定义一个特性时,需要指出以下几点:能够应用此特性的元素类型,可以使用AttributeTargets枚举来定义;对于同一个元素,能否多次应用这个特性,用AllowMultiple来指定;当特性应用于Class或者Interface时,特性能否由子类继承,用`Inherited``指定;例如有一个自定义特性如下:[AttributeUsage(At...

2020-02-16 11:10:21 537

原创 C# 多线程编程 异步编程模型

1

2020-02-12 16:05:38 328

原创 C# 多线程编程 线程的创建方式

Thread在C#中,Thread类位于System.Threading空间下,当new一个Thread实例时,并不会实际创建出一个操作系统层次的线程,只有当调用Start方法时,才会实际创建出操作系统线程,然后操作系统线程执行C#线程对应的回调函数。using System;using System.Threading;namespace MultiThread{ inter...

2020-02-12 15:26:08 504

原创 python提取pdf中的表格

import pdfplumberimport xlwt# 定义保存Excel的位置workbook = xlwt.Workbook() #定义workbooksheet = workbook.add_sheet('Sheet1') #添加sheeti = 0 # Excel起始位置path = input("请输入PDF文件位置:") #path = "aaaaaa....

2020-01-21 14:56:29 1442

原创 android 手机获取 root 权限

为了让android 手机获取root权限,需要经历以下几个步骤。手机解锁现在大部分的手机在出厂时都锁定了bootloader,需要在官网上申请解锁,以小米为例,解锁网址。解锁的具体教程不在此详述,注意解锁需要小米账号和设备绑定一定的时间,往往是72小时,另外注意解锁前会清空手机,相当于手机的重置,会删除一切应用程序,系统应用数据也会全部删除。准备magisk安装包在高版本的android...

2019-06-11 22:01:36 9179 3

转载 adb 教程

本文转载自博客 ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。持续更新中,欢迎提 PR 和 Issue ...

2019-06-03 11:01:26 4070

原创 TensorFlow(四) cnn mnist分类

import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# number 1 to 10 datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)def compute_accuracy(v_xs, v_ys)...

2019-05-30 10:41:21 205

原创 TensorFlow(五)keras mnist分类

from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activationfrom keras.optimizers import RMSprop# download the mn...

2019-05-30 10:07:47 324

原创 TensorFlow(三) mnist分类

import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data# number 1 to 10 datamnist = input_data.read_data_sets('MNIST_data', one_hot=True)def add_layer(inputs, in_size, o...

2019-05-30 10:06:07 440

转载 TensorFlow(二)Tensorboad 1.13.1 报错OSError:[Errno 22] Invalid argumnt

本文是对Bill.Z大神博客的记录,原文参考地址听说tensorflow 1.13.1 开始支持python 3.7,电脑里正好装了python3.7,于是安装tensorflow 1.13.1,在使用相应的tensorboard 1.13.1时,在命令行键入tensorboard --logdir="logs"却报错如下解决方案如下,找到manager.py文件,该文件位于XXX\s...

2019-05-29 09:24:45 335

原创 TensorFlow(一)安装与简单示例

安装tensorflow安装需要numpy,并且numpy和tensorflow需要用同一种方式安装,否则会报错。tensorflow有下面两种安装方式,这两种方式不能混用,也就是说通过pip安装的numpy和通过conda安装的tensorflow是不兼容的。第一种,通过pip安装pip install numpyCPU版pip install tensorflowGPU版pip ...

2019-05-28 10:40:05 225

原创 Unity 动画系统的使用

基础用法Unity 动画系统采用状态机,将每一个动画视为一个状态,根据用户的输入来改变状态机中的条件,利用该特定的条件来控制状态的切换,从而实现动画的改变。下面将从四个步骤来展示动画系统的使用方法。在Project中新建一个Animator Controller,将其赋给角色身上的Animator组件。打开Window->Animator窗口,将动画(Animation)拖放到窗口...

2019-05-25 10:45:44 7519 2

转载 Win10 注册表 ---- 删除资源管理器中的图片/文档/音乐/视频文件夹

注意,本篇教程来自装机之家,原文地址。第一步找到注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace不同的键值对应了资源管理器中不同的文件夹,想要删除对应的文件夹,右键对应的键,删除即可。第二步删除后需要重启资源管理器,按住Ctrl + Shif...

2019-05-20 09:28:13 1951

原创 从Frame Debug看前向渲染和延迟渲染

摘要提到Unity开发游戏时的性能优化,就不得不提延迟渲染技术。为了探究延迟渲染技术提高性能的原因,本文认真总结了《Unity Shader 入门精要》第9章知识和相关网络资料,首先给出了渲染流水线基本结构,其次介绍了Unity引擎自带的Frame Debug调试器,然后分别分析了在Frame Debug调试器下看到的前向渲染和延迟渲染过程,最后提出了本文关于前向渲染和延迟渲染的认识。本文没有讨...

2019-03-23 10:39:48 4152 1

原创 存档和读档

游戏中往往需要存档和读档,进行游戏的保存和读取,游戏的存档和读档其实就是对象的序列化和反序列化。如果游戏中需要存储的类是Save,那么有三种方式进行存档和读档。//数据类[System.Serializable]public class Save{ public List<int> livingTargetPositions = new List<int>()...

2019-01-09 10:15:05 6476

原创 换装原理实践

换装系列文章:换装原理初探换装原理中篇效果图UI制作Toggle组,区分性别。对于每种性别,Toggle组,区分部位。对于每个部位,Toggle组,区分型号。性别切换时,触发两个函数,UI上性别Toggle组切换,AvatarCustomization性别切换ChangeGender。部位切换时,触发一个函数,UI上部位Toggle组切换。型号切换时,触发一个函数,Avat...

2018-12-17 19:53:20 639

原创 换装原理中篇

代码复用和合并在换装原理初探中介绍了换装的核心步骤,但是只有一种男孩角色的换装,本文考虑男孩和女孩的换装。并且,对上文的一些变量命名进行调整,Target均改为Avatar,合并Model和Avatar的加载方法。其实考虑男孩和女孩的换装,主要是代码的复用和合并问题。加载Model和Avatar。由于需要复用代码,因此需要在加载方法中给出参数,这里主要有模型名字modelName,avata...

2018-12-17 16:40:02 418

原创 换装原理初探

换装英文中称为Character Customization,在游戏中很常见。换装的基本步骤如下。MaleModel预设制作,此模型包括所有样式的SkinnedMeshRenderer和骨骼,并以一定规则命名,比如eye有三种,则命名为eye-1,eye-2,eye-3。MaleTarget预设制作,此模型只包含骨骼。初始化MaleModel和MaleTarget。保存数据,将MaleM...

2018-12-16 20:19:25 999

原创 AssetBundle

作用是一个压缩包,包含模型、贴图、预制体、场景等资源,可以在游戏运行时被加载。自身保存相互依赖的关系减少安装包的大小,资源有需加载也可以被认为是一个文件夹,可以包含序列化文件和源文件,序列化文件例如预制体和模型,一个AB包中只有一个序列化文件,源文件例如声音和图片,可以有多个。使用设置AB包属性构建AB包上传AB包加载AB包和资源...

2018-12-16 15:34:34 645

原创 Async与Await

ThreadPoolTask

2018-12-15 16:28:58 224 1

原创 迭代器异步等待与Unity协程

在Yield关键字与迭代器一文中有提到过用迭代器来实现5次循环的异步等待操作,但是如果我们需要实现一定时间段的异步等待操作,又该怎么用迭代器来实现呢?对于这样一定时长的异步等待操作,可以在迭代器中开启一个循环,并设置一个时间判断,当判断不通过时,迭代器永远都在循环中自我迭代,不会执行后续操作,而当判断通过时,迭代器跳出循环,执行一定时长的异步等待操作。class IteratorWorkflo...

2018-12-14 16:28:02 777

原创 MYSQL 数据库基本操作

数据库服务器连接 注意:本文所使用的bjpowernode.sql文件可以在这里下载 打开Windows PowerShell,输入下面命令,以root身份连接数据库服务器。当然,命令可以运行成功需要两个前提,一是MySQL服务正在运行,二是将mysql.exe所在目录写入环境变量。数据库服务器启动net start MySQL80数据库服务器关闭net stop MySQL80连...

2018-11-18 16:41:20 251

原创 程序设计五大原则

单一职责原则(SRP)一个类应该仅有一个引起它变化的原因开放封闭原则(OCP)类模块是可拓展的,但是不可修改(对拓展开放,对更改封闭)里氏替换原则(LSP)子类必须能够替换它们的基类依赖倒置原则(DIP)高层模块不应该依赖于低层模块,二者都应该依赖于抽象抽象不应该依赖于实现细节,实现细节应该依赖于抽象接口隔离原则(ISP)不应该强迫客户程序依赖于它们不用的方...

2018-11-18 14:03:47 1978

原创 C# 163邮箱自动登陆

文章目录引言163邮箱的不同解决方案引言在C# 学校邮箱自动登陆中我们使用WebBrowser控件轻松地完成了学校邮箱的登陆,但是如果想用这个办法来登录163邮箱,会找不到用户名、密码和登陆按钮这些元素。注意:阅读本文前最好先阅读之前的C# 学校邮箱自动登陆163邮箱的不同打开163邮箱链接,同样的,检查邮箱账号元素,我们可以得到下面这张图,网页中确实是存在邮箱账号元素的,而且类似学校的...

2018-10-29 10:50:07 1887

原创 C# 学校邮箱自动登陆

C# 学校邮箱自动登陆引言分析邮箱站点结构创建代码引言在平时的工作和学习中,我们需要使用邮箱,在电脑上更多的时候是使用网页版的邮箱登陆界面进行操作,每次都需要输入用户名和密码,略显繁琐,因此,本文设计了自动登陆的解决方案,只需在源代码中添加一次用户名和密码,就可以直接登陆邮箱,接收与发送邮件。自动登陆的原理十分简单,获取邮箱站点的HTML代码;从代码中分析出账号用户名和密码的元素,设置这两个...

2018-10-29 10:10:44 693

原创 C# 爬取静态网页入门

目录确定目标内容和目标站点分析目标站点结构网页获取网页节点解析分析天气网页结构总结爬虫分为两种,静态网页爬虫和动态网页爬虫,相比较于动态网页爬虫而言很简单,静态网页的爬取不需要执行如JavaScript类似的代码,只需要获取页面Html代码,并解析目标内容即可,本文介绍了静态网页爬取的基本流程。确定目标内容和目标站点明确需求,比如本文中需要爬取北京过去一段时间内...

2018-10-10 11:21:14 2585 3

原创 Singleton单件模式C#版

目录单线程静态属性静态构造器多线程  测试有时候需要在程序中保证一个类只能有一个实例,并且提供一个该实例的全局访问点,这时候就需要利用单件模式。所有的代码是在控制台应用中可以运行的。单线程静态属性用静态属性和私有构造器来实现单例模式,静态属性确保全局只有一个实例,私有构造器确保外部无法构造该类实例,通过对静态属性的第一次访问,创建该类的一个实例,以后所有的对属性...

2018-08-22 11:46:26 334

原创 状态模式C#版

目录例子普通方式实现问题解决方式枚举方式实现问题状态模式状态接口状态对象游戏玩家作为设计模式中的一种,状态模式在软件、游戏设计中有很重要的作用。为了理解这种模式,本文首先用普通方式实现了一个例子,然后分别用枚举方式和状态模式实现了这个例子,所有的代码经过测试可以在Unity(2017.2)中运行。 例子游戏中有一个处于站立姿态的女英雄...

2018-08-20 18:05:20 522 1

Unity 换装

该资源是一个Unity工程,实现角色换装,详细文档可以参考系列博客https://blog.csdn.net/Abecedarian_CLF/article/details/85040319。

2018-12-17

数据库教程资料

该资料是MYSQL 数据库基本操作博文中的数据库资料,可以辅助MYSQL的学习

2018-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除