博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cocos2d-x for xna 基于地图的碰撞检测和信息提示
阅读量:4926 次
发布时间:2019-06-11

本文共 1594 字,大约阅读时间需要 5 分钟。

在上一篇里基本上已经实现了人物的行走,但是,人物的行走需要一定的规划,而不是漫游在地图之上。

这个规划就是碰撞检测。

上一篇里,我们用了titled这个编辑器来编辑地图。这个编辑器把地图分了不同的层,所以我们可以根据不同的层的名字来做为碰撞检测的条件。

///         /// 根据目的位置判断是否碰撞类型        ///         ///         /// 
public int checkCollision(CCPoint p) { //tmxMap.MapSize.width和tmxMap.MapSize.height是定义在tmx地图上的坐标,而不是UI界面上的坐标 //即是(2,3)=(120,180) if (p.x < 0 || p.x > tmxMap.MapSize.width || p.x < 0 || p.y > tmxMap.MapSize.height) return (int)Dtype.KWall; int titleGid = tmxMap.layerNamed("floor").tileGIDAt(p); if (titleGid != 0) return (int)Dtype.TNone; return (int)Dtype.KWall; }

代码如上,由于检测的是floor层,所以tmxMap.layerNamed("floor").tileGIDAt(p);返回的值只有两种情况。当检测到非零,则表明在floor层这里有“地图块”,说明可以行走,反之亦反。

接下来,介绍cocos2d-x for xna 的信息提示:

首先,显示信息也是一个“精灵”。所以我们可以理解为,我们把显示信息这个动作(CCAction)交给一个“精灵”(CCLabelTTF)去执行。

所以,代码的构建如下:

1.显示信息的位置:CCPoint

2.信息精灵:CCLabelTTF

3.动作:CCAction

CCPoint tagPoint=new CCPoint(startPosition.x+0,startPosition.y+60);            CCLabelTTF tipLabel = CCLabelTTF.labelWithString(tip, "Arial", 10);            tipLabel.position = tagPoint;            addChild(tipLabel, 2, 1);            CCAction action = CCSequence.actions(                CCMoveBy.actionWithDuration(0.5f, new CCPoint(0, 60)),                CCDelayTime.actionWithDuration(0.5f),                CCFadeOut.actionWithDuration(0.2f),                 CCCallFuncN.actionWithTarget(this, onShowTipDone)                );            tipLabel.runAction(action);

 

转载于:https://www.cnblogs.com/dieaz5/archive/2013/03/12/2955201.html

你可能感兴趣的文章
在虚拟机中的Linux系统搭建ftp服务器,使用nginx代理,实现外网访问ftp服务器的文件——centos6.5系统中的nginx安装及配置...
查看>>
css3媒体查询简单实例
查看>>
java-properties配置文件
查看>>
算法学习-哈希表
查看>>
python操作mysql
查看>>
javascript 学习1
查看>>
Angular应用架构设计-3:Ngrx Store
查看>>
<a>标签文件下载文件名乱码问题
查看>>
HTTP抓包
查看>>
numpy array分割-【老鱼学numpy】
查看>>
第五篇Python基本数据类型
查看>>
[WCF]WCF起航
查看>>
工作中常用的js、jquery自定义扩展函数代码片段
查看>>
JavaBean学习--练习示例
查看>>
【codeforces】【比赛题解】#915 Educational CF Round 36
查看>>
第二阶段团队冲刺10
查看>>
海量分页的简单分析
查看>>
ES6入门教程---变量和常量
查看>>
Python项目中使用配置文件
查看>>
html5的学习日志
查看>>