<span style="font-size:18px;">     在开发游戏过程中通常会用到一个经常编写的重复的代码,比如加载游戏地图,从地图中加载指定点的集合,序列帧的播放等等,下面的这个类就可以完全实现,而不需要重复的编写。</span>
/*** 通用工具* * @author Administrator* */
public class CommonUtil {/*** 加载游戏地图* @param tmxFile* @return*/public static CCTMXTiledMap loadMap(String tmxFile){CCTMXTiledMap gameMap = CCTMXTiledMap.tiledMap(tmxFile);//便于手动平移地图gameMap.setAnchorPoint(0.5f, 0.5f);CGSize contentSize = gameMap.getContentSize();gameMap.setPosition(contentSize.width / 2, contentSize.height / 2);return gameMap;}/*** 从地图中加载指定名称的点集合* @param map* @param name* @return*/public static List<CGPoint> loadPoint(CCTMXTiledMap map,String name){CCTMXObjectGroup objectGroup = map.objectGroupNamed(name);// 获取僵尸位置信息ArrayList<HashMap<String, String>> objects = objectGroup.objects;// 分别以x和y为键,获取坐标值信息---->封装到点集合中List<CGPoint> points = new ArrayList<CGPoint>();for (HashMap<String, String> item : objects) {float x = Float.parseFloat(item.get("x"));float y = Float.parseFloat(item.get("y"));points.add(CGPoint.ccp(x, y));}return points;}/*** 序列帧播放(永不停止)* * @param frames* @param num*            当前加载的图片数量* @param filepath*            路径(通用)* @return*/public static CCAction getRepeatForeverAnimate(ArrayList<CCSpriteFrame> frames, int num, String filepath) {if (frames == null) {frames = new ArrayList<CCSpriteFrame>();for (int i = 1; i <= num; i++) {frames.add(CCSprite.sprite(String.format(filepath, i)).displayedFrame());}}CCAnimation anim = CCAnimation.animation("", 0.2f, frames);CCAnimate animate = CCAnimate.action(anim);return CCRepeatForever.action(animate);}/*** 播放一次的序列帧*/public static CCAnimate getAnimate(ArrayList<CCSpriteFrame> frames, int num, String filepath) {if (frames == null) {frames = new ArrayList<CCSpriteFrame>();// frames信息加载for (int i = 1; i <= num; i++) {frames.add(CCSprite.sprite(String.format(filepath, i)).displayedFrame());}}CCAnimation animation = CCAnimation.animation("", 0.2f, frames);return CCAnimate.action(animation, false);// 只播放一次}/*** 判断是否被点击* * @param event* @param node* @return*/public static boolean isClicke(MotionEvent event, CCLayer layer, CCNode node) {CGPoint point = layer.convertTouchToNodeSpace(event);return CGRect.containsPoint(node.getBoundingBox(), point);}//// /**// * 判断是否被点击// *// * @param touchPoint// * @param node// * @return// */// public static boolean isClicke(CGPoint touchPoint, CCNode node) {// return CGRect.containsPoint(node.getBoundingBox(), touchPoint);// }/*** 切换场景* @param targetLayer*/public static void changeLayer(CCLayer targetLayer){CCScene scene = CCScene.node();scene.addChild(targetLayer);CCFadeTransition transition = CCFadeTransition.transition(1, scene);CCDirector.sharedDirector().replaceScene(transition);}}

Cocos2d—android 中常用的工具类相关推荐

  1. android 开发工具类,Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

  2. Android项目中常用的工具类集(史上最全整理)

    如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础.如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单. 下面介绍一个在GitHu ...

  3. Android中对话框的工具类

    Android中对话框的工具类,里面总结了比较好用的方法,直接调用即可 public class DialogUtils {private DialogUtils() {}private static ...

  4. java中常用的工具类

    1. 常用零散工具类 1.1[DateUtil.java]日期处理的工具类 /*** 时间日期处理工具* String -> Date* Date -> String* 以及生成含有日期的 ...

  5. java并发编程中常用的工具类 Executor

    /***************************************************  * TODO: description .  * @author: gao_chun  * ...

  6. 多线程总结-JUC中常用的工具类

    本文只记录JUC中较常用到的一些工具类,只是列举其常见的使用方法,至于其实现原理,此处不做说明. CountDownLatch 一个同步工具类,允许一个或多个线程一直等待,直到其他线程运行完成后再执行 ...

  7. Android中怎样在工具类中获取Context对象

    场景 Android程序中访问资源时需要提供Context,一般来说只有在各种component中(Activity, Provider等等)才能方便的使用api来获取Context对象, 如果在编写 ...

  8. java中常用的工具类(二)FtpUtil, 汉字转拼音,zip工具类,CollectionUtil,MathUtil,

    下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java package com.itjh.javaUtil;import java.io.File; import ...

  9. Hutool中 常用的工具类和方法

    文章目录 一.Hutool是什么? 二.安装 三.常用工具类 日期时间工具类 DateUtil 日期时间对象-DateTime 类型转换工具类 Convert 字符串工具类 StrUtil 数字处理工 ...

最新文章

  1. 什么?拼命栽培员工,让他强大到足以离开
  2. jyphon 环境变量配置
  3. 软件测试第4周小组作业:WordCount优化
  4. Python 函数 -next()
  5. Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题
  6. SharePoint2007文档的点击率统计
  7. Java获取程序或项目路径的常用方法
  8. 安装appach时出现没有安装gcc的错误,用yum安装gcc时yum出现错误(修改yum配置)...
  9. JAVA程序员工作常用英语
  10. 阿里云的ACA认证到底是个啥?有用吗?
  11. c语言 结构体 ppt,第8章C语言的结构体和共同体.ppt
  12. 腾讯网页登陆的加密机制
  13. 经常失眠怎么办?失眠最快入睡的方法
  14. This must be due to duplicate classes or playing wrongly with class loaders 1
  15. SRGAN超分辨率网络
  16. spring boot: Whitelabel Error Page(小白的终极解决方案)
  17. 五种企业家,一定不要建自己的网站
  18. MMD4Max(MMD4Maya)
  19. Python如何实现将四位数字组合成一个不重复的三位数,for循环暴力解法
  20. Unity基础笔记(6)—— Unity导航系统

热门文章

  1. Http / Put 和 Post 区别
  2. 测试 / 单元测试的重要性
  3. 启明云端分享|SSD201_自动升级固件与烧录MAC地址
  4. java聚合excel_java操作excel
  5. Springmvc的服务端数据验证-----Hibernate Validator
  6. git之一: 在windows下安装git和使用总结
  7. 过滤脚本(C#,script,iframe,html)
  8. [转]获取xml节点值和属性值(兼容ie和firefox)
  9. 修改ONET.XML自定义SPS站点
  10. 修改图片背景_用P图软件将图片背景更改