Cocos2dx 3.2 之实现精灵图片放大功能
原文地址 http://blog.csdn.net/jhonlight/article/details/38408351
今天一个群友问我:
我Scene里放置一个Layer,Layer盛放一张图片,即背景图片,我想更换这张图片,而且要求带有系统提供的切换Scene 淡入淡出的效果,于是我用Director类的切换用系统提供的切换动画包装的scene,但是效果是整个scene都被切换了,而我想要的是只有背景变化,其余的不变。
大家都知道,这样做当然不可以,Director(导演)的切换会把制定的scene切换掉,随即而来的scene的会取代之前的scene容器,那面对这个需求,我们该怎么办呢?这时候我想到了网格效果,既然你想要淡入淡出的效果,网格效果中正好也有啊。于是他按照我说的去做了,后来发现网格效果种只有淡出FadeOutBLTiles,这可怎么办?可别忘了cocos2dx 有这样一个动作,reverse();即反转,淡出反转之后,我们可不可理解为淡出呢?是吧 没错,基本符合需求。
以上只是一个小插曲,下面通过一个小小的例子,来简要说明网格特效的使用。
首先来一段官网的介绍吧。
网格动作类似于特效,可以实现翻转、抖动、震荡、水波纹等效果。Cocos2D-x中,网格类的基类CCGridBase有两个子类,即CCGrid3D和CCTiledGrid3D。这两个类的共同点是,网格的每个子块都可以分离出来,CCGridBase的继承关系如下:
CCGrid3D、CCTiledGrid3D-->CCGridBase-->CCObject。
网格没有什么直接应用的场合,只要明白CCGrid3D和CCTiledGrid3D,并且网格动作是基于网格的即可。运行网格动作的节点好像被分成了大小相同的很多矩形,通过这些矩形的动作形成整体动作,这些矩形就好像形成了一个矩阵。16x12的网格将会运行的非常快,但是效果并不是非常好。32x24的网格看起来非常棒,但是在有些时候运行起来不会太快。
注:使用网格特效之前需要关闭OPenGL种的深度测试
至于为什么要关闭深度测试,个人觉得网格特效是把节点以及节点的子类所在的平面拆分成各个网格,进而来进行特定的特效,既然是平面的,就没有不需要有深度的检测了,1是会影响效果,2开启深度测试会额外消耗性能。 此是个人的理解,如有错误望大神更正。
ok,来上代码。上代码之前先看下效果。
通过做一个放大触摸点位置的图片局部来展示特效的使用。
1 首先再头文件种,定义触摸开始,触摸移动,触摸结束三个方法和一个网格实例的私有变量。
初始化网格特效实例,并添加到当前层中,接下来放置一个精灵到网格实例中,我们可以把网格特效实例看作是一个容器,它会让缩成装的对象都产生制定的特效效果。
2 初始化触摸监听以及回调方法,我使用的是cocos2dx3.2,与3.0之前的触摸有所变化,有不了解的同学可以去查阅官方文档。
3 首先通过pEvent获取触摸的目标,以此目标定义一个矩形区域,接下来判断当前的点是否在此矩形区域中,返回false代表触摸了是精灵,反之则触摸点在精灵之外。
4 定义一个方法的效果,让之前初始化的网格实例来运行此特效动作。
5 触摸移动和触摸结束方法差不多,就不做解释。
6 运行ok 就是开头的效果。
7 如果对别的特效有兴趣可以一一试之。效果蛮不错的。
Cocos2dx 3.2 之实现精灵图片放大功能相关推荐
- jQuery插件Magnify放大镜实现javascript图片放大功能
jQuery插件Magnify放大镜实现javascript图片放大功能 博客所有文章均属原创作品,如有转载,请注明作者:biuuu,来源:http://www.biuuu.com/?p=459 有时 ...
- h5 - PhotoSwipe图片放大功能集成和使用
说明: PhotoSwipe图片放大功能的简单demo. 重要代码: 1.html中引入js和css文件,和一段固定的代码 <!-- PhotoSwipe styles --& ...
- 使用react完成图片放大功能(淘宝放大镜)
文章目录 效果 引用组件 实现原理 CSS部分 React JS部分 参考文章 Github源码 效果 引用组件 import React from 'react'; import ImageMagn ...
- angular仿微信图片放大功能
近期要写一个移动端两个手指图片放大的功能,由于我们项目是angular框架.一时间没有思路只能百度找一些angualr的文档,果然一下就出来了,而且非常实用.我用根据自己的需求改动了一下,最后完成的效 ...
- 小程序富文本图片放大功能
// 富文本图片放大 function richImg(txt) {//txt 指的是接口返回的富文本// 主要代码let imgarr = [];let regex = new RegExp(/&l ...
- winform窗体上图片放大功能
今天遇到点击图片,所点部位实现放大的功能,网上也有很多资料,记录下自己写的. 窗体上放置两个pictureBox控件,第一个添加image,属性SizeMode设置为StretchImage.可以开始 ...
- css图片放大功能,且不溢出包裹盒子
要实现图片在不溢出包裹的盒子内放大的效果,可以使用CSS3中的transform属性.具体方法如下: 将需要放大的图片放入一个容器中: <div class="img-containe ...
- 手机微信浏览器调用图片放大功能
1. 引用微信的JS <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixi ...
- easyui图片放大功能(取巧)
先定义一个会话框里面隐藏一个div标签 <div id="dlgdiv" class="easyui-dialog"style="width: ...
最新文章
- Github工程师为MySQL高可用性采用了新架构
- 2017202110104-高级软件工程2017第8次作业—个人总结
- Linux 系统审计操作行为的 5 种解决方案
- api过滤器_了解播放过滤器API
- 天池 在线编程 部门统计(哈希)
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
- java自带函数_java8中内置的四大核心函数式接口
- JSP基础(5)-JSP标准动作
- JS中的变量和输入输出
- 非计算机专业考研软件工程,#考研报名#计算机类、软件工程类考生报名前必看...
- win10显示隐藏文件_u盘内隐藏文件怎么显示 u盘内隐藏文件显示方法【详细步骤】...
- 如何录屏?电脑屏幕录制软件哪个好?
- 机器人(自动化)课程的持续学习-2022-
- 数通 | 某些基本知识梳理
- php 五子棋算法,AI智能五子棋算法——假如我是计算机
- 来自一位搞算法的本科生的学习感想
- [转]“子不语怪力乱神”新解
- 一文了解市面上的N种物理锁架构
- 模拟ATM机存取款管理系统C语言课程设计
- linux系统有pe盘么,原来如此,Linux系统也有PE,不过它叫...
热门文章
- 微信小程序滑动日历实现思路
- CAM是利用计算机,CAM
- python 科学计数法转字符_转换科学计数法的数值字符串为decimal类型的方法
- ARM JTAG 调试原理
- 使用keil下载芯唐固件报错
- 大数据助推新型智库建设
- 【论文笔记】Integrate Point-Cloud Segmentation with 3D LiDAR Scan-Matching for Mobile Robot Localization a
- GD32 RT-Thread RTC驱动函数
- RegEx (15) - 使用字符 \D 不包含数字
- xshell用无线网远程连接linux失败_Linux基础入门 | 服务器集群使用指南