webp

用Creator实现一个擀面的效果

妖精的绣舞 提交于 2020-08-04 17:10:25
先上几张效果图 怎么实现的呢? 节点介绍 1是背景图,可以忽略;2 是准备好的面团;3 是擀好的面饼先隐藏;4 是需要绘制的节点;5 是擀面杖。 制作开始 首先在view上挂一个mask,并且设置为模板模式,sprite frame 就设置成那张擀好的面饼。这样的设置可以使Mask按照擀好面饼的形状遮罩内容。 在walpaper-layer 节点上挂在了一个我写好的有关于绘制图形的脚本文件,并设置好相关参数。这个脚本主要做的就是使用Graphics绘制图形。 在graphics节点上挂上Graphics组件提供给我的脚本使用。 使用擀面杖监听触摸事件,通过移动擀面杖并使用擀面杖的坐标(并不是触摸点的坐标)绘制圆形,设置绘制圆形的半径为80或者更大些,以便达到擀面饼的感觉。 怎么判断面饼擀好了呢? 记录面饼九个点的坐标 判断擀面杖的坐标走过的点,走过一个移除一个,都走过之后就可以设置为完成了。 最后隐藏掉绘制的图案,面团,显示出来之前设置好的面饼,这个效果就算制作完成了。 长按下方二维码,关注《微笑游戏》公众号,获取更多精彩内容。 欢迎扫码关注公众号《微笑游戏》,浏览更多内容。 来源: oschina 链接: https://my.oschina.net/u/4064781/blog/4326712

Java 源码分析-Condition

亡梦爱人 提交于 2020-08-04 17:00:57
前面对Java中的锁进行了简单的分析,锁的使用和原理整体来说还是比较简单。今天我们来分析一下Condition这个类,这个类通常来说是跟Lock搭配使用的。比如说,如果一个线程获得了Lock的同步状态(即锁),但是由于达不到运行的条件,可能不能成功运行完毕,此时一种方式就是将它自己阻塞,等到条件满足再来重新运行。   本文的参考资料来源:   1.方腾飞、魏鹏、程晓明的《Java 并发编程的艺术》   2.Cay S.Horstmann的《Java 核心技术卷 I》 1.Condition的简单实用   我们还是先来说说我们的synchronized关键字吧,我们知道每个对象都有一组自己的监视器方法,从Object类继承过来的,主要包括wait方法和notify方法,这些方法与synchronized关键字配合使用的。在Condition接口上面,也提供了类似Object的监视器方法,与Lock配合使用。   我们来看看下面的例子: public class ConditionUseCase { private Lock lock = new ReentrantLock ( ) ; private Condition condition = lock . newCondition ( ) ; public void conditionWait ( ) { lock . lock (

手把手教你用Python网络爬虫获取网易云音乐歌曲

社会主义新天地 提交于 2020-07-29 09:15:09
前天给大家分享了用Python网络爬虫爬取了网易云歌词,在文尾说要爬取网易云歌曲,今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地。 跟着小编运行过代码的筒子们将网易云歌词抓取下来已经不再话下了,在抓取歌词的时候在函数中传入了歌手ID和歌曲名两个参数,其实爬取歌曲也是同样的道理,也需要传入这两个参数,只不过网易云歌曲的URL一般人找不到。不过也不要慌,有小编在,分分钟扫除您的烦恼。 网易云歌曲一般会有一个外链,专门用于下载音乐音频的,以赵雷的歌曲《成都》为例,《成都》的外链URL是: http://music.163.com/song/media/outer/url?id=436514312.mp3 ,其中436514312这个数字是《成都》这首歌曲的ID。也就是说只要我们将歌曲的ID传入到外链URL中,就可以找到该歌曲的下载地址,之后通过Python标准库进行下载即可。 话不多说,直接上代码: 程序设计好之后,运行程序,输入歌手的ID,以赵雷为例,其ID是6731,输入这个ID数值之后,程序将自动将赵雷的专辑歌曲及其对应的歌词下载到本地,运行的效果图如下所示: 程序运行完毕之后,歌词和歌曲都down到本地了,如下图: 之后在本地便可以听到优雅的歌曲了,如《成都》,见下图: 大家以后要听歌曲的话只要运行这个爬虫程序,输入你喜欢的那位歌手的ID

一篇文章教会你使用Python定时抓取微博评论

独自空忆成欢 提交于 2020-07-29 07:41:53
【Part1——理论篇】 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存。首先从微博api寻找抓取评论的接口,如下图所示。 但是很不幸,该接口频率受限,抓不了几次就被禁了,还没有开始起飞,就凉凉了。 接下来小编又选择微博的移动端网站,先登录,然后找到我们想要抓取评论的微博,打开浏览器自带流量分析工具,一直下拉评论,找到评论数据接口,如下图所示。 之后点击“参数”选项卡,可以看到参数为下图所示的内容: 可以看到总共有4个参数,其中第1、2个参数为该条微博的id,就像人的身份证号一样,这个相当于该条微博的“身份证号”,max_id是变换页码的参数,每次都要变化,下次的max_id参数值在本次请求的返回数据中。 【Part2——实战篇】 有了上文的基础之后,下面我们开始撸代码,使用Python进行实现。 1、首先区分url,第一次不需要max_id,第二次需要用第一次返回的max_id。 2、请求的时候需要带上cookie数据,微博cookie的有效期比较长,足够抓一条微博的评论数据了,cookie数据可以从浏览器分析工具中找到。 3、然后将返回数据转换成json格式,取出评论内容、评论者昵称和评论时间等数据,输出结果如下图所示。 4、为了保存评论内容,我们要将评论中的表情去掉

1.2.2 字典类型是怎么存储的 数据存储-数据类型之Dict

让人想犯罪 __ 提交于 2020-07-29 02:34:34
参考 https://www.jianshu.com/p/05bf8a945944 字典结构 https://github.com/antirez/redis/blob/unstable/src/dict.h typedef struct dict { // 特定于类型的处理函数 dictType *type; // 类型处理函数的私有数据 void *privdata; // 哈希表(2个) dictht ht[2]; // 记录 rehash 进度的标志,值为-1 表示 rehash 未进行 int rehashidx; // 当前正在运作的安全迭代器数量 int iterators; } dict; typedef struct dictht { dictEntry **table;// 二维 unsigned long size;// 第一维数组的长度 unsigned long sizemask; unsigned long used;// hash 表中的元素个数 } dictht; typedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; double d; } v; struct dictEntry *next; } dictEntry; 图示如下 基本操作

Spring Boot 项目如何做性能监控?

情到浓时终转凉″ 提交于 2020-07-28 20:08:51
作者:zhaoyh http://zhaoyh.com.cn/ Spring Boot特别适合团队构建各种可快速迭代的微服务,同时为了减少程序本身监控系统的开发量, Spring Boot 提供了 actuator 模块,可以很方便的对你的 Spring Boot 程序做监控。 1. actuator接口说明 Spring Boot 应用中加入监控很简单,只需要在pom.xml文件中加入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 为了保证actuator接口的敏感性,在配置文件中,开放安全属性配置: management.security.enabled=false 这样就能允许你查看 Spring Boot 进程的actuator信息了。 启动Spring Boot程序,在启动日志里看到可访问的actuator接口: 通过这些,我们可以实时的获取应用的各项监控指标。另外,关注微信公众号:Java技术栈,在后台回复:boot,可以获取我整理的 N 篇 Spring Boot 教程,都是干货。 actuator的接口分为原生接口和用户自定义接口。 原生接口主要有如下几个

Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!

梦想与她 提交于 2020-07-28 18:54:02
本文授权转载自FreeBuf.COM 链接: https://www.freebuf.com/vuls/240578.html 前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过 Mybatis 框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手一些思路。 一、Mybatis的SQL注入 Mybatis的SQL语句可以基于注解的方式写在类方法上面,更多的是以xml的方式写到xml文件。 Mybatis中SQL语句需要我们自己手动编写或者用generator自动生成。编写xml文件时,Mybatis支持两种参数符号,一种是#,另一种是$。比如: <select id="queryAll" resultMap="resultMap"> SELECT * FROM NEWS WHERE ID = #{id} </select> 使用预编译,$使用拼接SQL。 Mybatis 框架下易产生SQL注入漏洞的情况主要分为以下三种: 1、模糊查询 Select * from news where title like ‘%#{title}%’ 在这种情况下使用#程序会报错,新手程序员就把#号改成了$

YonBuilder: 开启低代码开发新时代

天涯浪子 提交于 2020-07-28 11:28:29
了解YonBuilder YonBuilder 致力于让企业应用构建更简单,既支持公民开发者无代码可视化应用构建,也支持专业开发人员低代码高效率应用开发。YonBuider作为企业服务产业共享共创平台,面向开发者生态提供开发构建、开放连接、部署运维、在线运营的全生命周期能力,践行数智化商业创新,实现生态共荣! 提供企业数智化转型的一切 全流程、一站式线上研发部署,实时四驱架构:“事件驱动、模型驱动、场景驱动、数据驱动”。 开放连接 | 共享生态 背靠用友百万客户,聚焦企业服务领域,汇聚优质平台伙伴,打通新技术及应用、企业与伙伴、伙伴与伙伴、产品服务与销售机会之间的壁垒,为客户提供强大的业务、技术、销售和营销资源。基于用友大量的企业用户资源及强大的开放连接能力,为企业应用开发者提供聚合用友多个产品级平台的入口。有助于企业产品推广,增加应用的流量、拓展新用户,获得收益。企业通过用友云开放平台,可将内部的信息系统延伸、整合到统一的移动入口及WEB端入口,快速帮助企业实现信息移动化,向企业用户提供更友好、更方便的企业服务,实现数据共享和生态伙伴融合。 前所未有 | 极速构建 YonBuilder提供企业级全能基础设施,帮助用户通过“零安装,低编码,可视化”来构建适用于不同场景的应用;拖拽式开发web应用、移动应用、小程序,加速业务创新转化。并提供向导和大量应用模板,快速轻松构建企业应用程序

Shader笔记_003UNITY提供的内置变量和文件及特殊语义

风流意气都作罢 提交于 2020-07-28 11:11:36
当我们查看别人的shader,如果没有在代码里找到声明那多半是使用了UNITY内置的文件和变量。 一、包含文件 UNITY可以使用#include 来包含部分文件,文件后缀.cginc,类似C++头文件/java的包 例如 CGPROGRAM ... #include "UnityCG.cginc" ... ENDCG 通过这种方式可以引用UNITY已经封装好的函数/变量我们可以通过 http://unity3d.com/cn/get-unity/download/archive 下载(虽然网站没法访问) 常用的UNITY内置文件 UnityCG.cginc 包含了最常用的函数结构体和宏等 UnityShaderVariables.cginc 在编译UNITY SHADER时 会自动被包含进来 ,包含了很多全局变量 如 UNITY_MATRIX_MVP转换矩阵 Lighting.cginc 包含了各种光照模型,如果编写Surface Shader的话 会被自动包含进来 HLSLSupport.cginc 在编译UNITY SHADER时被自动包含进来,声明了很多用于跨平台编译的宏和定义 UnityStandardBRDF.cginc、UnityStandardCore.cginc 这些文件里面包含了用于基于物理的渲染 --------------------------------

上帝视角,什么是生态思维(上)

巧了我就是萌 提交于 2020-07-28 10:32:02
以模式为中心需要具备一种重要的思维方式叫生态思维,生态思维是站在进化或退化的角度看企业对环境的适应能力,环境是变化的,企业内部结构是应对内部的管理与外部的经营而存在,而时代的变迁和技术的进步引发了整个市场环境的变化,企业就应该进行某些部门的进化,而某些部门就应该退化。 一个是否具有生态思维的人在于他的格局,这是一种掌控全局的能力。一是把有限的企业资源合理优化,发挥出最大的效益,另外还要学会引入外部资源。高手做事赢在谋篇布局,正如下棋并不在于某一棋子的得失,而是全局的得与失。商场如战场,每一步都要运用资源,牵一发而动力而动全身。因此局在心中,万物不破。 比如过去的投资投的是资源,你有1000万,如果你投一个项目需要1000万,你一定是把这一千万投在自己的公司,这只是一个人的资源,整个公司就你一个人琢磨事。而对于赚钱这件事来说,先得有资源,如此经营才是有有效的。怎么理解?一句话:小媳妇难做无米之炊。今天很多老板赚不到钱,实际是在资源层面上出了问题,却总以为自己能力出了问题。你有没有很好的产品?有没有很好的品牌?有没有很好的渠道?有没有优秀的人才?有没有强大的资金支持?有没有好的商业模式?有没有好的项目?这些资源总得有一个吧。结果你没有好项目,没有很好的各种人脉关系,产品又不行,品牌形象又差,渠道、人才没有,资金很短缺,更不知道什么是商业模式,项目就一个,这明显就是资源不足。