【获取地图中的可行区域层】

#include "HelloWorldScene.h"

USING_NS_CC;

Scene* HelloWorld::createScene()
{
    // ‘scene‘ is an autorelease object
    auto scene = Scene::create();

    // ‘layer‘ is an autorelease object
    auto layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }

    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    /////////////////////////////
    // 3. add your codes below...

    // add "HelloWorld" splash screen"
    auto sprite = Sprite::create("HelloWorld.png");

    // position the sprite on the center of the screen
    sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));

    // add the sprite as a child to this layer
    this->addChild(sprite, 0);

    float scaleFactor = CCDirector::sharedDirector()->getContentScaleFactor();
    auto listener = EventListenerTouchOneByOne::create();
    listener->onTouchBegan = [=](Touch * touch, Event* event) {
        auto pointLocation = touch->getLocation();
        if (sprite->getBoundingBox().containsPoint(pointLocation)) {
            auto point = sprite->convertToNodeSpace(touch->getLocation());
            unsigned int x = point.x * scaleFactor, y = (sprite->getContentSize().height - point.y) * scaleFactor;
            Color4B c = { 0, 0, 0, 0 };
            auto img = new Image();
            img->initWithImageFile(CCFileUtils::getInstance()->fullPathForFilename("HelloWorld.png"));
            unsigned char *data_ = img->getData();
            unsigned int *pixel = (unsigned int *)data_;
            pixel = pixel + (y *(int)(sprite->getContentSize().height*scaleFactor)) + x;
            c.r = *pixel & 0xff;
            c.g = (*pixel >> 8) & 0xff;
            c.b = (*pixel >> 16) & 0xff;
            c.a = (*pixel >> 24) & 0xff;
            if (c.a == 0) { return false; }
            else { return true; }
        }
        return true;
    };
    _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

    return true;
}
时间: 2024-10-22 06:43:29

【获取地图中的可行区域层】的相关文章

在Cocos2d-X3.0中使用瓦片地图中的对象层

在Cocos2d-X中使用瓦片地图是非常常见的,例如在跑酷和塔防游戏中通常会用到瓦片地图,在前面的博客中我也介绍了瓦片地图的使用,这篇博客主要介绍在Cocos2d-X3.0中使用瓦片地图中的对象层,因为3.0和2.0中调用瓦片地图的对象层的方式有所不同 对于瓦片地图的使用可以参考我的博客 瓦片地图编辑器的使用:http://blog.csdn.net/u010105970/article/details/41118191 在Cocos2d-X中使用瓦片地图<一>:http://blog.csd

Quick-cocos2d-x3.3 Study (十四)--------- 遍历 TiledMap 中的对象层,并取得所有坐标

遍历 TiledMap 中的对象层,并取得所有坐标 1 -- 将心心添加到背景层中 2 function BackgroundLayer:addHeart( ) 3 -- body 4 -- getObjectGroup 方法从地图中获取到指定的对象层(也就是个 ObjectGroup 对象组对象), 5 -- 对象组 ObjectGroup 中包含了多个对象, 6 -- 所以我们可以通过 getObjects 方法从 ObjectGroup 中获得所有的对象. 7 -- objects 在这里

谈谈地图中的道路绘制

GIS属于可视化领域.一所谓可视化技术是利用计算机图形学和图形处理技术,将数据转化成图形或者图像在屏幕上显示出来,并进行交互处理的理论.方法和技术.个人理解地图中也有几个关键点: 原始数据可以是图像也可以是矢量数据,如我们底图是点.线.面等矢量数据,卫片.街景是图像数据. 渲染即显示到屏幕上,现在各家手机端都是基于opengl,不论图形还是图像最终显示到屏幕都必须像素化(光栅化). 交互性 地图APP中分量最重的就是交互,背后隐藏的巨大的需求. 目前地图中各种Feature数据,楼块是真正三维的

Java非递归的方式获取目录中所有文件(包括目录)

零.思路解析 对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历. 一.代码 /** * 非递归的方式获取目录中的所有文件<br> * 此方法获取的路径未按照目录->文件方式排列 * * @param dirPath 目录路径 * @return 指定目录下所有文件和目录的集合 */ public static List<File> listAllFile(String dirPat

记录一次bug解决过程:velocity中获取url中的参数

一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-site request forgery,跨站请求伪造),在form表单提交中要加入$!csrfToken.ajaxUniqueToken 二.Bug描述:Velocity从URL中获取parameter参数 在项目IDCM中,使用webx容器进行项目的开发.前端的模板引擎采用了velocity,在项目

百度地图中热力图使用中json数据转换与构造出现了问题——记录下JSON使用的问题

问题出现的原因,参考百度地图中提供的热力图功能,并通过自己的数据进行热力图的构建,为此,在json对象的构造时,出现了问题,导致热力图一直显示不出来.由于自己的js语法了解不是很多,在问题的定位上花了不少时间,最后定位到自己构造的json对象有些问题.就开始查看解决办法. 问题的解决参考:http://blog.csdn.net/henren555/article/details/38645125 从服务器获取数据时往往不止一个对象,这就需要用到对象数组,JS中对象数组可以用 [] 来定义,如下

PHP MVC 中的MODEL层

Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封 三.实现你的Mode层 Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封,进行他的设计的时候设计到三个个概念:------Model类.是实体类.用来保存数据库表格的中一条记录的所有字段的数据.并且可以验证这条记录数据的完整性.------ModelManager类. 是实体类的管理类.通常每一个实体类(Model)都要有一个对应的管理类(ModelManager).管理类可以用来管理实体类里面的数

二叉树(9)----打印二叉树中第K层的第M个节点,非递归算法

1.二叉树定义: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struct BTreeNode_t_ *m_pLeft; struct BTreeNode_t_ *m_pRight; } BTreeNode_t; 2.求二叉树中第K层的第M个节点 (1)非递归算法 借助队列实现 首

oracle存储过程---获取数据库中到指定经纬度距离的坐标

新项目需求: 结合百度地图,在地图中指定一个地点,获取此地点周围1km范围内所有数据库中存的单位的地点和信息标记在地图上.于是初写了一把oracle的存储过程,纯靠摸索写的. 后台需要的函数如下: 首先,计算圆弧函数 CREATE OR REPLACE FUNCTION RAD(d number) RETURN NUMBER is PI number :=3.141592625; begin return  d* PI/180.0; end ; 然后,计算距离函数 CREATE OR REPLA