精华内容
下载资源
问答
  • 10大炫酷的HTML5文字动画特效欣赏
    千次阅读
    2020-12-19 05:02:08

    7款让人惊叹的HTML5粒子动画特效

    HTML5的很大一个优势就是可以更加便捷高效地制作网页粒子动画特效,特别是Canvas特性,可以实现在网页上绘制任何图形和动画。本文要分享7款让人惊叹的HTML5粒子动画特效,这些粒子特效都提供源代码下载供大家学习。

    1、HTML5 Canvas粒子模拟效果

    这是一款利用HTML5 Canvas模拟出来的30000个粒子动画,当你用鼠标在canvas画布上移动时,鼠标周围的一些粒子就会跟着你移...

    超级惊艳 10款HTML5动画特效推荐

    今天我们要来推荐10款超级惊艳的HTML5动画特效,有一些是基于CSS3和jQuery的,比较实用,特别是前几个HTML5动画,简直酷毙了,现在将它们分享给大家,也许你能用到这些HTML5动画和jQuery应用。1、HTML5 Canvas发光Loading动画之前我们分享过很多基于CSS3的Loading动画效果,相信大家都很喜欢。今天我们要来分享一款基于HTML5 Canvas的发光Loadi

    哈哈,又找到几个强大的html5+css3的动画效果

    一周HTML5经典回顾 31个别出心裁的HTML5动画

    40,425 人浏览

    发表回复

    13

    又是一周即将过去,我们来精心挑选这周分享的31款别出心裁的HTML5动画,很多还比较实用,一起来看看吧。

    1、HTML5迷你音乐播放器 3D翻转播放按钮

    上一篇我们分享了一款外观很酷的HTML5音乐播放器,这次分享的播放器比较小巧迷你,虽然外观没有上一个播放

    8个华丽的HTML5相册动画欣赏

    HTML5的图片动画非常丰富,我们也在网站上分享过很多关于HTML5的图片动画。相册在网络中也十分常见,本文我们要分享一些比较华丽的jQuery/HTML5相册动画,希望大家喜欢。

    1、HTML5 3D相册浏览 震撼人心

    前几天我刚刚分享过一款HTML53D图片插件HTML5 3D立体图片旋转播放展示,确实利用HTML5技术来做各种图片动画都非常炫。今天我们再来看一款HTML5 3D相册...

    HTML3D特效

    1.CSS3文字阴影效果 阴影角度可随鼠标变化

    8,593 人浏览

    发表回复

    2

    之前我们有分享过一款很酷的CSS3文字阴影插件HTML5/CSS3文字投影特效 乳白阴影文字效果,今天要分享的也是CSS3文字阴影效果,不同的是今天这款CSS3文字阴影的角度可以随着鼠标的移动而发生变化,即阴影可动态调整,非常实用。

    在线演示源码下载

    精选9款迷人的HTML5 3D动画效果及源码

    新的一周开始了,今天小编要为大家分享最新整理的9款HTML5 3D动画效果及源码下载,前端爱好者都可以来学习一下,以下就是详细的内容,一起来看看。1、HTML5 3D图片折叠特效 超炫酷图片特效我们之前介绍过很多HTML5 3D图片效果,比如HTML5/CSS3 3D环形图片墙、HTML5 3D相册浏览等等。今天我们再来分享一款HTML5 3D图片折叠特效,鼠标滑过图片时,折叠好的图片便会展开,鼠

    视觉盛宴 HTML5 3D动画应用赏析

    以下是一些很棒的HTML5 3D动画应用,值得一看。

    1、3D HTML5 Logo动画 HTML5多视角3D旋转动画

    HTML5 3D动画实现起来非常方便,之前介绍过基于jQuery的3D旋转插件是利用多张多视角图片播放来实现的,而今天分享的这款HTML5 3D旋转动画是利用纯HTML5技术实现的,该动画实现了HTML5 Logo旋转的效果。

    15个无比华丽的HTML5/CSS3动画应用

    1、HTML5/CSS3图片选择动画 可选择多张图片

    今天我们来分享一款既炫酷又实用的HTML5图片选择特效,当图片被选中时,图片上就会覆盖一个半透明的层,上面有一个勾,并且在选中的时候图片出现弹跳的动画效果。

    在线演示 源码下载

    2、纯CSS3实现图片复古效果 鼠标滑过切换

    今天我们要分享一款非常酷的图片效果,这个效果在很多P图软件中经常可以看到,就是对一张图...

    在手机上玩python编程-Pydroid3

    手机屏幕太少,写代码不方便,建议用电脑学习python有时候,就是不想正襟危坐的坐在电脑前面,想要在手机上轻量级的写点代码。安卓软件推荐 Pydroid.3 Pydroid 3免费高级版

    高并发下的Nginx性能优化实战

    【超实用课程内容】

    本课程内容包含讲解解读Nginx的基础知识,解读Nginx的核心知识、带领学员进行高并发环境下的Nginx性能优化实战,让学生能够快速将所学融合到企业应用中。

    【课程如何观看?】

    PC端:https://edu.csdn.net/course/detail/27216

    移动端:CSDN 学院APP(注意不是CSDN APP哦)

    本课程为录播课,课程永久有效观看时长,大家可以抓紧时间学习后一起讨论哦~

    【学员专享增值服务】

    源码开放

    课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

    下载方式:电脑登录https://edu.csdn.net/course/detail/27216,播放页面右侧点击课件进行资料打包下载

    Linux系统编程:入门篇视频教程

    Linux系统编程视频课程为《Linux系统编程》入门篇,主要针对零基础的Linux开发学员科普Linux系统编程的概念以及需要掌握的各种技能,掌握Linux命令编写、Linux学习路线并熟悉嵌入式设备编程的方法。为后续的Linux系统编程深入学习打下良好的基础。

    Java学习指南(Java入门与进阶)

    这是Java学习指南系列课程的第1篇,介绍Java语言的入门语法,引领希望学习Java语言编程的初学者进入Java大门。

    本课程不需要其他语言作为基础,可以直接学习。

    课程从Java开发平台的下载和安装开始,从浅到深、从易到难,循序渐进地进行语法讲解。

    为了让学员更好的掌握Java语言,本课程配套在线的Java题库及答案解析。

    相比于其他语言,Java语言更科学、更容易掌握,快来和大家一起学习Java吧。

    2020新版C语言程序设计零基础入门小白自学编程

    自学零基础入门新版C语言视频教程是2020年2月录制,分为14章72集

    【基础知识点】

    讲解C语言的发展史和C语言的快速启蒙

    快速搭建C语言开发环境和手把手教你编写第一个程序

    详细讲解C语言基础语法和多种常用数据类型

    深入理解C语言算术,关系,逻辑,位等复杂运算符

    代码实战C语言三大控制流,顺序,选择,循环结构

    手把手讲解C语言一维、二维数组的区别与用法

    【中级知识点】

    深入解读字符串的长度、复制、链接、比较等方法

    结合例子手把手教你函数的定义、使用、递归等知识

    面试必备知识点指针的深入解读,从此面对指针不再陌生

    全面讲解指针数组、数组指针、指针变量、指针的指针等难点

    掌握C语言共用体、枚举、结构体、链表等数据类型的使用

    深入浅出C语言编译预处理、理解宏、包含文件、条件编译等

    玩转C语言文件操作之文件的打开关闭、删除、读写

    【综合项目实战-学生管理系统】

    代码实战学生管理系统的管理界面

    代码实战学生管理系统录入学员信息

    代码实战学生管理系统查询学员信息

    代码实战学生管理系统显示学员信息

    代码实战学生管理系统删除学员信息

    代码实战学生管理系统修改学员信息

    H.264/AVC视频编解码技术详解

    H.264/AVC是目前业界应用为广泛的视频压缩编码标准,包含了先进而且较为成熟的视频编码技术。本课程将从原理、标准和实现等多个角度,详细讲述了H.264/AVC视频编码标准的整体架构与技术细节,不但讲解了H.264/AVC标准协议文档中的内容,还通过实际的H.264码流分析/解码程序的开发来帮助观众更深入地理解H.264编码标准的原理。

    高性能MySQL实战课

    限时福利1:原价 129 元,最后2天仅需 69 元!后天涨价至98元

    限时福利2:购课进答疑群专享柳峰(刘运强)老师答疑服务

    限时福利3:购课添加助教领取价值 800 元的编程大礼包

    为什么需要掌握高性能的MySQL实战?

    由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。

    为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点,建议收藏!

    【课程设计】

    课程分为四大篇章,将为你建立完整的 MySQL 知识体系,同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。

    一、性能优化篇:

    主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ,学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引,从而彻底掌握索引的使用和优化技巧,能够避开很多实战中遇到的“坑”。

    二、MySQL 8.0新特性篇:

    主要包括窗口函数和通用表表达式。企业中的许多报表统计需求,如果不采用窗口函数,用普通的 SQL 语句是很难实现的。

    三、高性能架构篇:

    主要包括主从复制和读写分离。在企业的生产环境中,很少采用单台MySQL节点的情况,因为一旦单个节点发生故障,整个系统都不可用,后果往往不堪设想,因此掌握高可用架构的实现是非常有必要的。

    四、面试篇:

    程序员获得工作的第一步,就是高效的准备面试,面试篇主要从知识点回顾总结的角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪的工作机会。

    Python初级入门精讲

    本课程为Python全栈开发初级入门篇-语言基础章节,学习完本篇章可对python语言有初步的掌握与理解,本课程侧重于初级学员,课程内容详细有针对性,务求各种类型的学员都可以掌握python开发。

    北京邮电大学大一C++期末考题.zip

    仅供各位交流学习使用,严禁用作商业用途,严禁发生抄袭等学术不端行为!

    非常漂亮的100个前端案例

    非常漂亮的100个前端案例,包含幻灯片切换、图片缩放、相册、放大镜、图片拖着滚动等等,只有你想不到。

    程序员因重复记录日志撑爆ELK被辞退!

    由于日志配置繁杂,很多同学喜欢直接cv其他项目或网上博客的配置文件,而不仔细研究每个配置项。最常见的就是重复记录日志,这不但给查看和统计带来不必要麻烦,还会增加磁盘和日志收集系统负担。

    下面看几个常见导致该错误的案例,大家引以为戒,避免被辞退。

    1 logger配置继承关系错误

    定义方法记录debug、info、warn、error四种日志:

    Logback配置

    配置看没啥问题

    21天通关Python(仅视频课)

    本页面购买不发书!!!仅为视频课购买!!!

    请务必到https://edu.csdn.net/bundled/detail/49下单购买课+书。

    本页面,仅为观看视频页面,如需一并购买图书,请务必到https://edu.csdn.net/bundled/detail/49下单购买课程+图书!!!

    疯狂Python精讲课程覆盖《疯狂Python讲义》全书的主体内容。

    内容包括Python基本数据类型、Python列表、元组和字典、流程控制、函数式编程、面向对象编程、文件读写、异常控制、数据库编程、并发编程与网络编程、数据可视化分析、Python爬虫等。

    全套课程从Python基础开始介绍,逐步步入当前就业热点。将会带着大家从Python基础语法开始学习,为每个知识点都提供对应的代码实操、代码练习,逐步过渡到文件IO、数据库编程、并发编程、网络编程、数据分 析和网络爬虫等内容,本课程会从小案例起,至爬虫、数据分析案例终、以Python知识体系作为内在逻辑,以Python案例作为学习方式,最终达到“知行合一”。

    更多相关内容
  • vue实现循环切换动画

    2020-11-28 05:07:58
    注意动画的钩子函数的判断逻辑,注意动画编写时类名的顺序!! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue</title> <style> .box{ ...
  • 网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的...
  • 嵩嵩图片管理系统 8.0

    2021-04-30 15:00:20
    支持智能无限级分类,后台可非常方便的添加管理图片分类,支持设置分类显示顺序,支持移动分类及分类下的图片,即时显示分类下的图片数量。前台有可点击隐藏或展示的浮动树状导航,非常直观,简单实用。 创新悦目的...
  • ​大家在小时候,课堂学习时,有没有见过文字一笔一笔绘制的动画,可以分步绘制,也可以一次绘制完,这样方便学生去学习汉字,挺不错的。在 PPT 中,这样的笔画动画该怎么制作呢?参考下面的做法,可以做出大致的...

    8f04c15ffb88cac20f9eabee42bbbb80.png

    大家在小时候,课堂学习时,有没有见过文字一笔一笔绘制的动画,可以分步绘制,也可以一次绘制完,这样方便学生去学习汉字,挺不错的。

    561d42773f7151ed54ec3f0905d99dfe.gif

    在 PPT 中,这样的笔画动画该怎么制作呢?

    参考下面的做法,可以做出大致的效果。

    一共包含 6 个步骤

    01 准备文字

    02 拆分文字

    03 绘制按钮

    04 添加动画

    05 补充动画

    06 添加格子

    工具&素材

    软件:PowerPoint 365

    插件:口袋动画 PA

    字体:楷体_GB2312,仿宋_GB2312

    01 准备文字

    首先,准备需要添加动画的文字。

    这里要用到 楷体_GB2312仿宋_GB2312 这两款字体(非免费字体,商用需授权)。

    其他字体不适用后面涉及的笔画拆分操作。

    在 Windows xp 系统下,默认自带这两款字体,在新版系统中则没有,需要我们另外安装。

    这里,我以 楷体_GB2312 为例进行说明。

    【插入】—【形状】—【文本框】,绘制文本框,输入所需文字,选择字体。

    1e79096d030082416e75796c351a8163.png

    02 拆分文字

    接下来,要拆分文字。

    拆分文字,共有两大处理。

    一是笔画拆分,二是转折拆分

    97b95785f231c9a4544297824a208b48.png

    一:笔画拆分

    4b8a5ed9e1cd32f376f3098cbfbe05fa.png

    首先是笔画拆分,选择文本框—【口袋动画 PA】—【设计】—【矢量工具】—【笔画拆分】,即可获取拆分的矢量笔画。

    2b8c3ae4f83a49aaf344fdf9330efbb2.png

    选择生成的矢量笔画—【形状格式】—【形状轮廓】—【无轮廓】,把轮廓颜色改成无轮廓,并适当调整文字大小。

    d8a174f658854b800e757c1e1d22d121.png

    这样处理后,文字大体拆分好了。

    对于笔画复杂的情况,这种做法显得尤其方便。

    二:转折拆分

    11b3fcf3969a5cc455d6ade2c329453c.png

    为了便于动画的添加,对于转折的笔画,可能需要做进一步处理,如果没有则不需要,本例中是需要再处理的。

    【插入】—【形状】—【任意多边形:形状】,根据转折的笔画绘制任意多边形并覆盖在上面。

    7801257ab544b90f00b5321dfb0286d6.png

    按住 Ctrl 键,先选择带转折的笔画,再选择绘制的多边形,【形状格式】—【合并形状】—【拆分】,完成拆分后,把多余的形状删掉。

    b2e64986933620b1d73dcb493a85c9f8.png

    这时候,会看到拆分的笔画之间有一点点的空隙,我们可以添加一点轮廓色,把这部分给补了。

    选择所有笔画—右键点击选择【设置对象格式】—【形状选项】—设置实线颜色同文字填充色及宽度为 0 磅

    d261a8638c77a1bb92a5d99b046b679a.png

    (如果裂缝看不清,可自行操作尝试)

    这样就完成了文字的拆分了。

    03 绘制按钮

    第三步,准备动画触发按钮。

    【插入】—【形状】—【矩形】,绘制一个矩形;按住 Ctrl 键,鼠标拖动矩形,复制出另一个矩形。

    两个矩形分别输入文字 连续分步,选择合适的形状、文字的填充和轮廓颜色。

    1504e0b3966d26dc2602611be0a44da9.png

    04 添加动画

    第四步,添加笔画动画。

    这里要用到擦除动画

    在添加动画前,先复制一份文字,底层的文字颜色是黑色,Ctrl+G 组合起来,并通过选择窗格隐藏起来(Alt+F10 打开选择窗格,关闭相应对象的小眼睛),顶层的设为深红。

    489044178f50a798208a407e77b1331b.png

    接下来,添加两个方面的动画,一是连续动画,二是分步动画

    081880ebec173708a96b3c5797292fe5.png

    一:连续动画

    9541305bc62e5ee67785db3c499847cd.png

    按住 Ctrl 键,根据笔画书写顺序(不清楚文字笔顺的,可自行百度),依次选择顶层文字笔画—【动画】—【添加动画】—【进入】—【擦除】,并进行如下设置。

    3331a7b5a409f6b5b63f481120d98c6a.png

    ① 动画触发:通过【动画】—【触发】—【通过单击】—选择输入了【连续】的矩形(名称可于选择窗格中看到)。

    ② 发生时间:【动画】—【计时】—【开始】—设为【上一动画之后】,让动画接连发生。

    8f624addccd150ef8babc8cd262ab26d.png

    ③ 动画方向:根据笔画书写方向,分别设置擦除动画的方向,选择笔画—【动画】—【效果选项】,选择合适的方向

    (注意:擦除动画只有四个方向的选择,不是很完善,但能做出大致的效果)

    b380a8a99acacb1448484d41b2a25f2d.png

    持续时间】和【延迟】参数可按需进行设置。

    二:分步动画

    096fa6f607051db4dee081492c87e58a.png

    按照添加连续笔画动画的做法,再给所有笔画添加一次擦除动画,这里也可以通过框选所有笔画—【口袋动画 PA】—【动画复制】,再点击【动画粘贴】,完成一次复制。

    9042f45e0a5c851034b6d609ef8d5d91.png

    通过【动画】—【动画窗格】打开窗格,按住 Shift 键,分别点击新复制的动画中位于最上面和最下面的动画,进行如下设置。

    ① 动画触发:【动画】—【触发】—【通过单击】—选择输入了【分步】的矩形(名称可于选择窗格中看到)。

    ② 发生时间:【动画】—【计时】—【开始】—设为【单击时】,让动画按需发生。

    7f81925b8671d13f35a019097389cfb8.png

    持续时间】和【延迟】参数同样可以进行调整。

    05 补充动画

    通过上述步骤,完成了笔画动画的添加及动画按钮的设置,但实际演示起来,会有一点小问题。

    下面通过两种动画的添加来解决问题。

    一是消失动画,二是出现动画。

    929b801aede729c782d80e5946c3e141.png

    一:消失动画

    05d1066509f11d6fcdfac4e3a42ff121.png

    播放一组动画后,播放另一组时,第一组播放的效果会保留

    9bbfb4eb8390727c2e8732238251751a.gif

    对于这个问题,我们通过分别给每一组动画添加每个笔画的消失动画来解决。

    操作:

    ① 添加动画:鼠标框选所有矢量笔画—【动画】—【添加动画】—【退出】—【消失】。

    ② 调整位置:打开选择动画窗格,把所有消失动画拖动至每一组动画最上方

    ③ 发生时间:设置【与上一动画同时】开始;对于分步动画组的动画,还需把第一笔动画的开始时间设为【上一动画之后】。

    6095cd25eefb0ce9699cf77c0a5d5b08.png

    连续动画组

    a985f50a485bbee61c548c98f18bcc31.png

    分步动画组

    二:出现动画

    036fd8d9a613f3139cedde39b2bfafa7.png

    不过,这样处理后,会出现第二个问题。

    刚放映幻灯片时,红色笔画提前出现了

    6980cc86f2fd559ab11c246f3b2bd882.png

    出现这个情况的原因是,排在最前面的是消失动画,没有出现动画,所以默认出现了。

    对于这个问题,我们可以在第一组消失动画前再添加一组出现动画,那就完事了。

    操作:

    ① 添加动画:鼠标框选所有矢量笔画—【动画】—【添加动画】—【进入】—【出现】。

    ② 调整位置:打开选择动画窗格,把所有出现动画拖动至第一组动画最上方

    ③ 发生时间:设置【与上一动画同时】开始。

    43ce8470ba6b27c6ac271396f7fe944b.png

    通过上述操作,动画方面基本没有问题了。

    06 添加格子

    最后一步,可以再加个格子。

    按住 Shift 键,通过【插入】—【形状】—【矩形】绘制一个矩形,设置无填充颜色有轮廓颜色。

    dd5c2a7012d4b4a6ba290d76cd1552ae.png

    再通过【插入】—【形状】—【直线】在矩形上绘制水平和垂直的直线,修改轮廓颜色、粗细及虚线类型。

    025e69e5cbde5a995363a56f96f246d1.png

    这样,就完成了。

    b7717824483ed33ab4c4c9b4b86518ee.png

    还有,记得在选择窗格把隐藏的黑色文字重新显示出来哦。

    adde266c0bd8081f5d4abd2572dd282d.png

    再来看看最终演示效果。

    356be11562f55a987b38bc636372a185.gif

    注意

    在一组动画完全放映后,再触发另一组动画哦。

    资源

    如果需要本文中的 PPT 案例文件,可在公众号【小斌PPT】后台回复 笔画动画 获取。

    (案例文件仅供参考,具体文字笔画动画需另行设计,不可直接沿用,也不可随意商用)

    希望本文对您有所帮助。

    展开全文
  • Phaser也一样,它的动画实际上就是加载了一张(或几张)png图片,然后按照固定的宽高截取图片中相应位置的内容作为动画的一帧,按照规定的顺序逐一显示,形成动画。说起来有点绕口,下面还是直接看例子吧:   1....

     游戏场景的创建是游戏开发的基础,而游戏场景又是由各种图片、模型、文字等构成的,我们本节就来学习怎么加载资源到游戏场景中。

     (注:本教程所使用的所有示例资源均来自官方实例库,如果自己想动手却又没有资源,可以到https://github.com/photonstorm/phaser-examples下载所有实例。)

           一、加载图片:

     首先,我们加载一张简单的图片,代码如下:

    var game = newPhaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload,create: create});
    function preload() {
        //  给路径所在位置的图片定义一个唯一的关键字,这个关键字在所有的图片中必须是唯一的。
        game.load.image('imageKey','assets/sprites/phaser2.png');
    }
    
    function create() {
           //参数:x坐标,y坐标,图片关键字
        game.add.sprite(0, 0, 'imageKey');
    }

     这段代码中,我们只使用了preload和create两个方法,因为我们只是加载了图片和创建场景,并没有进行其他操作,所以并没有定义其他状态。

           这里,我们需要了解下sprite的概念,sprite的翻译是精灵,它在phaser中是一个对象,具体来讲,它是一个具有结构(纹理)、可以运行动画、支持输入事件和物理学的游戏对象。所以,我们一般讲会进行操作的图片和动画对象等都定义成sprite对象。

           在上面的例子中,因为我们没有设置背景,所以自动填充为黑色,下面我们添加一张背景图片:

    var game = newPhaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload,create: create});
    function preload() {
        //  给路径所在位置的图片定义一个唯一的关键字,这个关键字在所有的图片中必须是唯一的。
        game.load.image('space','assets/pics/thalion-rain.png');
    }
    function create() {
    var bg = game.add.tileSprite(0, 0, 800, 600, 'space');
    //var bg = game.add.sprite(0, 0, 'space');
    }

     因为背景图片需要填充整个游戏区域,而sprite对象并不支持填充区域的宽高,所以我们选择了tileSprite对象,tileSprite对象可以对图片进行裁剪或平铺填充设定区域,你可以切换注释行尝试下添加两种对象的不同。

    当然,你也可以直接填充一个颜色作为背景色:

    function create() {
           //注意,这里的颜色只支持16进制的数字或者字符串
        game.stage.backgroundColor = 0xfff00;
    //  game.stage.backgroundColor = '#ff0000';
    }

    二、加载文字

           如果只是单纯的在游戏中显示文字的话,很简单,查看代码:

    var game = newPhaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { create: create });
    
    //设置文本样式:大小、字体、颜色、排列方向
    var textStyle= { font: "48px Arial", fill: "#ff0044", align:"center" };
    functioncreate() {
           //game.world.centerX:视图中心的x坐标
           //game.world.centerY:视图中心的y坐标
        var text =game.add.text(game.world.centerX, game.world.centerY, "你好,欢迎来到Phaser的世界", textStyle);
        //锚点设置
     text.anchor.set(0.5, 0.5);
     //text.scale.setTo(0.5);
     //text.angle = 90;
     //text.alpha = 0.5;
    }

     这里要介绍几个基础且常用的属性:anchor、scale、angle、alpha。

     anchor(锚点):取值范围0~1,其实就是,元素(图片、文字等)中心与放置位置(添加到的坐标)相对于自身长宽的一个比例,比如(0,0)表示元素左上角坐标和放置位置坐标重合,(1,1)表示元素右下角坐标和放置位置坐标重合,(0.5,0.5)表示元素中心和放置位置重合,其他则根据元素长宽比例来设置。

     scale(缩放比例):相对于元素原始尺寸的比例。

     angle(角度):一个有效的数字,一般取值0~360.

     alpha(透明度):也就是rgba中的a,取值范围0~1.

           可是游戏嘛,很多时候都常常使用一些类似于艺术字之类的炫酷字体,那就没办法用textStyle设置文字样式了,这个时候,我们就需要借助一个叫做BitmapText(位图文本,如果不知道什么叫位图的话,可以百度一下概念),使用BitmapText对象,我们不仅可以自定义字体,还可以定义角度、透明度、颜色等属性,先来看一个简单的例子:

    var game = newPhaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload,create: create, render: render });
    
    function preload() {
           //加载位图字体图片和配置文件
           //bitmapFont(key, textureURL, atlasURL,atlasData, xSpacing, ySpacing)
           //参数:关键字,纹理图片路径,配置文件(xml或json格式,如果不带后缀,默认解析成xml格式),atlasData,字符间距,行间距
           //atlasData:暂时没有用到,根据api翻译的理解,应该是如果配置文件有多层的话,这里可以选择其中的一层
        game.load.bitmapFont('desyrel','assets/fonts/bitmapFonts/desyrel.png', 'assets/fonts/bitmapFonts/desyrel.xml');
    }
     
    var line1;
    var line2;
    function create() {
           //顺便查看下anchor、tint、scale、alpha效果
        var text1 = game.add.bitmapText(400, 70,'desyrel', 'Anchor.x = 0', 64);
        var text2 = game.add.bitmapText(400, 270,'desyrel', 'Anchor.x = 0.5', 64);
        text2.anchor.x = 0.5;
        var text3 = game.add.bitmapText(400, 470,'desyrel', 'Anchor.x = 1', 64);
        text3.anchor.x = 1;
        //设置文本颜色
        text3.tint = 0xFF0000;
        text3.scale.set(0.8);
        text3.alpha = 0.5;
           //添加两条中心线
        line1 = new Phaser.Line(400, 0, 400, 600);
        line2 = new Phaser.Line(0, 300, 800, 300);
    } 
    function render() {
           //显示中心线
        game.debug.geom(line1);
        game.debug.geom(line2);
    }

    下面是使用到的图片:

           如果纹理图片被整合到其他图片中,和另外的图片合成了一张新图片,照样也可以设置位图字体(不过此方法为2.7版本新增方法,2.6以下不支持):

    var game = newPhaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload,create: create });
    function preload() {
        //  加载纹理图片和图片地图集数据
        game.load.atlas('atlas','assets/sprites/atlas-mixed.png', 'assets/sprites/atlas-mixed.json');
        //  加载位图字体配置文件
        game.load.xml('fontData','assets/fonts/bitmapFonts/desyrel.xml');
    }
    var bmpText;
    functioncreate() {
           // addBitmapFontFromAtlas方法为2.7版本新增的
           //参数:定义字体的关键字,图片资源关键字,图片中字体部分的关键字,字体配置文件,配置文件格式,字符间隔,行间距
        game.cache.addBitmapFontFromAtlas('myFont','atlas', 'desyrel', 'fontData', 'xml', 0, 0);
        // 添加位图字体:x,y,字体关键字,文本,字体大小
        bmpText = game.add.bitmapText(0, 100,'myFont', 'A Bitmap Font\nfrom a Texture Atlas', 64);
        bmpText.align = 'center';
        bmpText.centerX = 400;
    
        //  还可以添加同一张图片的其他元素:一个绿球
        var ball = game.add.sprite(20, 100,'atlas', 'wizball');
    }

           其实还有一种简单的导入文字资源的方式,只需要加载一张图片就行了,不过在这张图片中,每个字符或者空格都要占有相同大小的位置,还要定义好文字的位置,这样才可以使用,查看下面示例:

     这是Phaser.RetroFont已经定义好的字符:

     要使用的图片如下:

     代码如下:

    var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload,create: create, update: update });
    function preload() {
        game.load.image('goldFont','assets/fonts/retroFonts/gold_font.png');
        game.load.image('bluePink','assets/fonts/retroFonts/bluepink_font.png');
    }
    var font1;
    var font2;
    var image1;
    var image2;
    function create() {
           console.log(Phaser);
           //前缀,空格对应空格
        font1 = game.add.retroFont('goldFont', 16,16, "!     :() ,?." +Phaser.RetroFont.TEXT_SET10, 20, 0, 0);
        font1.text = "phaser brings you retrostyle bitmap fonts";
        image1 = game.add.image(game.world.centerX,48, font1);
        image1.anchor.set(0.5);
     font2 = game.add.retroFont('bluePink', 32,32, Phaser.RetroFont.TEXT_SET2, 10);
     font2.setText("phaser 2\nin thehouse", true, 0, 8, Phaser.RetroFont.ALIGN_CENTER);
     image2 = game.add.image(game.world.centerX,220, font2);
        image2.anchor.set(0.5);
    
           //每两秒钟随机变换一次颜色
        game.time.events.loop(Phaser.Timer.SECOND *2, change, this);
    }
    
    function change(){
           //代码的作用是生成一个类似0xXXXXXX这样的16进制数字
        image2.tint = Math.random() * 0xFFFFFF;
    }
    function update() {
           //game.time.physicsElapsed = 1/60
           image2.rotation += (2 *game.time.physicsElapsed);
    }

           这个时候,你可以想象一下如果游戏中的提示全部用中文特效来做,你要做多少个字的特效?

     三、加载动画

     大家都知道,动画其实就是由一帧一帧的图片组成的,所以动画的本质就是让一系列的图片按照顺序以特定的时间间隔显示出来。Phaser也一样,它的动画实际上就是加载了一张(或几张)png图片,然后按照固定的宽高截取图片中相应位置的内容作为动画的一帧,按照规定的顺序逐一显示,形成动画。说起来有点绕口,下面还是直接看例子吧:

     1.加载顺序、固定位置动画:

     http://phaser.io/docs/2.6.2/Phaser.Loader.html#spritesheet

     先来看个示例:

    var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload,create: create });
    
    function preload() {
           //39X40是每个画面的尺寸
        game.load.spritesheet('mummy', 'assets/sprites/metalslug_monster39x40.png',39, 40);
    } 
    function create() {
           //将sprite添加到场景中
        var mummy = game.add.sprite(300, 200,'mummy');
     //因为图片太小,放大为原来的两倍显示
     mummy.scale.set(2); 
        //添加一个名叫walk的动画
        //因为我们没有设置其他参数,所以它会执行mummy中所有的frame
        var walk = mummy.animations.add('walk');
        //开始动画,每秒30帧,循环执行
        mummy.animations.play('walk', 30, true);
    }

     上面的示例中,要加载的图片如下:


     这张图片一共有16个画面,图片大小156*160px,每个画面都占用了39*40px,按照顺序显示,就形成了上面的动画;可是如果画面数量不是16个呢,如果图片中有额外的空白呢?那么把代码修改下吧:

    var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload,create: create }); 
    function preload() {
           //37X45是每个frame的尺寸,画面并没有占满全部图片,所以添加一个参数:显示画面的数量
        game.load.spritesheet('mummy','assets/sprites/metalslug_mummy37x45.png', 37, 45, 18); 
    } 
    function create() {
           //将sprite添加到场景中
        var mummy = game.add.sprite(300, 200,'mummy');
        mummy.scale.set(2); 
        //添加一个名叫walk的动画
        //因为我们没有设置其他参数,所以它会执行mummy中所有的frame
        var walk = mummy.animations.add('walk');
        //开始动画,每秒30帧,循环执行
        mummy.animations.play('walk', 30, true);
    }

     这个例子中,加载的图片如下:

     这张图片中,所有的画面同样是固定宽高,同样是按顺序排列,可是并没有填满整个图片,因此就需要显示一下动画中画面的数量。

     如果你的图片中所有画面并没有紧挨,而是有着固定的间距,那么你就需要在最后再添加两个参数,margin和spacing,分别表示垂直和水平的间距(我并没有找到合适的图片,所以这里不提供代码了)。 

     2.加载无序、随机位置动画:

     事实上,我们也不能保证制作的png图片中每个画面都有固定的长度和宽度(就算可以实现,也要花费设计人员很多的时间,毕竟是要按像素调整的)。比如下面这张图片,展示了一个机器人奔跑的动画:

     

     这个时候,我们可以使用atlasJSONHash函数来加载这张图片和配合它使用的json文件,代码如下:

    var game = newPhaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload,create: create }); 
    
    function preload() {
        game.load.atlasJSONHash('bot','assets/sprites/running_bot.png', 'assets/sprites/running_bot.json');
    } 
    function create() {
    
    var bot = game.add.sprite(200, 200, 'bot');
    // 定义一个名为run的动画 // 虽然我们没有规定任何画面,但是json文件里面已经定义好了 bot.animations.add('run'); // 执行动画run,帧数15,循环播放 bot.animations.play('run', 15, true); }

     这样动画就可以播放了。

     那么问题又来了,我们怎么生成一个和png图片匹配的json的文件呢?打开上面的json文件,你可以看到它是有固定的格式的,整个对象中包含了frames和meta两个属性,frames固定了所有画面截图位置和顺序,meta属性则显示了制作工具的地址和图片名称等信息。所以,其实json文件是可以通过工具生成的。

     这个工具叫做TexturePacker,下载地址:http://www.codeandweb.com/texturepacker,网站上提供了详细的使用教程,地址在这:https://www.codeandweb.com/blog/2014/12/17/creating-spritesheets-for-phaser-with-texturepacker,这个工具的作用就是把一系列png图片整合到一张图片上,生成适合各种框架使用的配置文件,因为我们使用的是phaser2,所以这里选择的格式是jsonHash,跟上面示例中一样,具体格式等可以参考网站,或者直接下载免费版本的工具。

      OK,这一节就就到这里,下一节来讲一些简单的交互操作。

    上面的示例中,要加载的图片如下:
    这张图片一共有16个画面,图片大小156*160px,每个画面都占用了39*40px,按照顺序显示,就形成了上面的动画;
    
    可是如果画面数量不是16个呢,如果图片中有额外的空白呢?那么把代码修改下吧:
    展开全文
  • 该项目基于框架开发,后台采用腾讯云提供的Node.js SDK接收对象存储API,前端核心代码实现了图片编辑器的功能,支持图片文字的移动,旋转,缩放,生成预览图以及编辑状态的保存,动画部分采用CSS动画实现 ...
  • 在幻灯片当中,我们除了添加文字以外,图片也是幻灯...首先,选中一张图片,单击工具栏【动画】,在下方显示多种动画形式,如下图所示:单击一种动画形式,如将图片1设置为飞入效果,单击我们看到图片左上角显示一...

    在幻灯片当中,我们除了添加文字以外,图片也是幻灯片必不可少的一个组成部分,当我们为幻灯片的图片设置出现效果时,有时放映会一次性显示,那么如何将图片设置为一个一个的显示呢?今天小编就来教大家,如何设置同一幻灯片中多张图片出现顺序的方法,一起学习一下吧。

    首先,选中一张图片,单击工具栏【动画】,在下方显示多种动画形式,如下图所示:

    a989f57879738c59c78346853ea0634e.png

    单击一种动画形式,如将图片1设置为飞入效果,单击后我们看到图片左上角显示一个小1。如下图所示:

    93d4767a71170173af77c571aa7af61b.png

    选中第二张图片,将图片2设置为渐变式缩放效果,单击后我们看到图片左上角显示一个小2。如下图所示:

    9c3e41a71eb675aad3ecd3fc7212c2f8.png

    选中第三张图片,将图片3设置为下降效果,单击后我们看到图片左上角显示一个小3。如下图所示:

    5171499669748f8b729dcd91cefa9d86.png

    全部设置完成,可以看到自定义动画显示了三张动画的效果,可以拖动调整顺序,单击幻灯片放映,单击后图片就按照刚才设置的动画方式出现一张,再次单击则出现下一张,设置的图片,随点击鼠标左键依次出现,也可以设置下一张图片出现之后接着出现,不需要单击:

    d0fa01eae195982da51ab295ce99d1ab.png

    那么,在PPT演示文稿当中,如何设置同一幻灯片中多张图片出现顺序的方法,是不是非常简单呢,你学会了吗?

    9066cde4586beab42689d1ef50cbd6e0.png

    展开全文
  • 基本操作可以用两种方法来实现: 方法一、每页幻灯片插入一张图片,幻灯片默认就是单击鼠标切换幻灯片的,所以不用再做其他设置。 方法二、在一页幻灯片中...(自定义动画后可调整先后顺序,开始方式默认是单击时。)
  • JS动画 与 CSS3动画 及 回流和重绘

    千次阅读 2021-11-14 17:40:40
    文章目录JS动画CSS3动画浏览器的渲染流程回流(重排) 和 重绘 JS动画 JS动画:也被称为 逐帧动画,在时间帧上绘制内容,一帧一帧的,所以它的可再造性很高,几乎可以完成任何想要的动画形式。 缺点: 有可能造成丢帧...
  • 文字轮播与图片轮播

    千次阅读 2016-12-05 11:41:29
    图片轮播逻辑:按顺序通过@keyframes动画隐藏图片,小标签,小圆点通过定时调用函数进行变色。 具体代码: 轮播 .rotation{ width:1000px; height:500px; background:#f1f1f1; } .ro{/*为什么...
  • 3.其他更丰富的裁剪功能,请参见主页说明或程序,比如:提取图片上的文字并保存裁剪加水印一步到位忽略处理过的文件夹手动指定裁剪区域多裁剪区域裁剪打印二维码图片转Pdf 过滤小图或缩略图 AB文件夹配对拼合 ...
  • 基于 HTML5 Canvas 实现的文字动画特效

    千次阅读 2018-04-02 07:31:01
    文字淡入淡出的动画效果在项目中非常实用,如果有某些关键的文字,可以通过这种动态的效果来提醒用户阅读。动态效果图 http://www.hightopo.com/demo/GraphAnimation/index.html这个 Demo 是不断重复地设置文字的...
  • 接触css的animation 也有一段时间,经常...经过分析,其实是利用css的animation动画播放,把很多张图片素材或者文本,有顺序的贴上去,而且每张图片文字都添加了animation动画,这样就组成了一个类似视频的动态画面。
  • 提取docx中图片文字,表格元素

    千次阅读 2017-10-31 09:12:58
    话不多说,介绍下思路,我是将word中文字,表格,图片按照顺序提取出来,然后返回为一个XML的Document元素,基本上重新定义了word中xml格式,原因是xml中格式虽然采用xml元素,但是太过于复杂,对于此项目后续拓展...
  • 动画淡入淡出切换图片2.轮播滚动效果 + hover改变选中滚动状态3.文字切换展示1.动画淡入淡出切换图片(通过控制CSS来改变效果)JS代码:// 替换class达到淡入淡出的效果 fadeIn(e) { e.className = "time-...
  • 首先我们了解animation这...关于几个值,除了名字,动画时间,延时有严格顺序要求其它随意. 第一:规定动画 @keyframes 动画名称 { from{ 开始位置 } 0% to{ 结束 } 100% } 比如下面的例子用来规定一个动...
  • 如果设置了自定义动画,在开始里面就可以设置前后 了,当然这和设置自定义动画顺序也有一定的关系,这个是在一张幻灯片里的顺序。如果想让整个PPT都按照想要的顺序出现,在自定义放映里可进行设置。一、对于演示...
  • Android手机开机动画的修改工作原理Android的系统登录动画有2种:1:android自带的动画。由前景和背景两张PNG图片组成,这两张图片存在于/system/framework /framework-res.apk文件当中,对应原文件位于/frameworks/...
  • duilib制作窗体动画效果

    万次阅读 2015-10-12 10:44:08
    本文介绍了使用Duilib界面库开发窗体动画效果的方法好思路,而这个思路不单单可以用在Duilib库中!
  • 一些常用属性值的顺序

    千次阅读 2021-07-14 19:58:49
    一些属性值的顺序 1.元素边框 border:1px solid red; border:粗细尺寸 线的样式 颜色; 2.元素背景 background:#f00 url(background.gif) 0 0 no-repeat fixed top; background:颜色 图片 位置 是否重复 是否固定 ...
  • PPT制作翻书效果教程:1、打开PPT,然后用矩形工具左侧画一个矩形,选中复制再粘贴放置在刚才矩形的右侧。2、选中右边矩形,点击选择自定义动画,然后依次选择“添加效果→退出→其他效果→层叠”。3、然后设置...
  • 知识点:CSS3 transform 属性、transition属性 ...2、设置鼠标悬浮在a标签上时,添加动画属性。 3、主要用到属性:transform 属性(给图片进行变形),transition属性(过渡设置)   实现代码:...
  • 强大的js动画animejs使用

    千次阅读 2022-01-25 11:10:51
    anime.js官网_免费、灵活的轻型JavaScript动画库 | animejs 安装及引用: // 终端中安装: npm install animejs //文件中引入 import anime from "animejs" 使用: //html: <div class="w375">Hello...
  • Android 图片弹跳动画2

    千次阅读 2016-06-09 23:31:10
    在上一篇博文Android 图片弹跳动画里,我用两种方法实现了一个弹跳的动画,实现效果上篇博文里面有,这里就不再贴了,虽说是两种方法,但实现机制是大同小异,核心思想就是递归的不断启动动画,来实现View的上升和...
  • 2-5 设定动画顺序 2-6 图形超链结设定 2-7 开启网页动画 第三章 绘图工具应用 3-1 制作光晕效果 3-2 神奇的爱心 3-3 奇妙万花筒 第四章 可爱的动物篇 4-1 多场景动画的制作 4-2 设定场景播放後停止 4-3 场景切换...
  • 动画电影是如何制作的?

    千次阅读 2020-12-17 23:33:41
    本文主要聊聊国内三维动画电影公司的制作流程分工。主要从岗位名称、主要职责、技能要求、软件工具四个方面对国内主流三维动画电影公司制作流程和岗位进行介绍。文章尽量用动图来更加形象地展现制作流程,建议连好...
  • Android中画布连线的连线动画的实现

    千次阅读 2017-12-11 11:14:13
    一.实现在画布中连线的动画的效果,如图所示:
  • RecycleView的Item Animator动画

    千次阅读 2018-11-07 16:19:10
    RecyclerView能够通过mRecyclerView.setItemAnimator(ItemAnimator animator)设置添加、删除、移动、改变的动画效果。 RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。如果没有特殊的需求,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,289
精华内容 8,915
关键字:

动画顺序先图片后文字