1、cocos2d-x的基本运行环境搭建就不介绍了,自己去网上搜索
2、本贴发表精灵监听点击事件的示例
创建精灵后,要响应自定义点击事件,最好是把监听事件加在精灵上,在层上监听也可以满足要求,不过得遍历当前层上的所有精灵,根据精灵的位置判断是不是点击的精灵。下面看代码
A 接口说明
#include "cocos2d.h"
#include "PicLayer.h"
#include <iostream>
usingnamespacecocos2d;
class SpriteClassModel : publiccocos2d::CCSprite ,publicCCTouchDelegate
{
public :static SpriteClassModel* create(const char *pszFileName);
CCRect getRect();
private :int spriteState =0;
private : PicLayer* piclayer;
private : int randomNum =0;
public : virtual void setRandomNum(int randomNum);
public : virtual void setCurrentLayer(PicLayer *layer);
virtual void playLeafAnim(CCSprite *spriteLeaf);
//virtual void create();
//添加触屏委托,重新此方法
virtual void onEnter();
//移除监听事件,防止内存溢出
virtual
void onExit()
virtual void endRotate();
//触屏响应重写这三个方法
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);//按下
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);//拖动
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);//松开
};
这是我自定义的精灵类,需要参看几个方法:
第一,加载精灵时,会自动调用此方法,需要注册监听,在实现方法里注册
//添加触屏委托,重新此方法
virtual void onEnter();
第二,响应事件,重写以下方法,一般在began中根据点击位置判断是否是当前的精灵
//触屏响应重写这三个方法
virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);//按下
virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);//拖动
virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);//松开
注意,此接口继承了CCSprite,用来声明自己的精灵类,继承了CCTouchDelegate用来注册实现监听委托,同时,自定义精灵还需要声明自己的create方法 public :static SpriteClassModel* create(const char *pszFileName);这样才能实例化自己的精灵类,接口说明到这里
B实现类
实现类中主要是实现了接口中定义的方法,重点看create方法和监听实现方法
using namespace cocos2d;
using namespace std;
//创建精灵的类,用来声明自己的精灵对象,加入层中显示
SpriteClassModel* SpriteClassModel::create(const char *pszFileName)
{
SpriteClassModel *pobSprite = new SpriteClassModel();
if (pobSprite && pobSprite->initWithFile(pszFileName))
{
pobSprite->autorelease();
return pobSprite;
}
CC_SAFE_DELETE(pobSprite);
return NULL;
}
//系统自动调用,注册监听委托
void SpriteClassModel::onEnter()
{
CCDirector* pDirector = CCDirector::sharedDirector();
//添加一个触摸委托给dispatcher的列表,委托对象this,
pDirector->getTouchDispatcher()->addTargetedDelegate(this, 0, false);
CCSprite::onEnter();
}
//获取精灵的位置
CCRect SpriteClassModel::getRect()
{
return CCRectMake(getPositionX() - getContentSize().width * getAnchorPoint().x,
getPositionY() - getContentSize().height * getAnchorPoint().y,
getContentSize().width, getContentSize().height);
// 为了能够自定义自己的位置大小采用了低效的函数而不是直接用成员变量
}
void SpriteClassModel::ccTouchEnded(CCTouch* pTouch, CCEvent* event)
{
}
//点击事件,开始点击,判断点击坐标是在精灵的区域内
bool SpriteClassModel::ccTouchBegan(CCTouch* touch, CCEvent* event)
{
CCPoint touchLocation = touch->getLocation(); // 返回GL坐标
CCPoint localPos = convertToNodeSpace(touchLocation);
CCRect rc = getRect();
rc.origin = CCPointZero;
bool isTouched = rc.containsPoint(localPos);
if(isTouched)
{
printf("我被点中了!\n");
return true;
}else{
return false;
}
}else{
printf("没有点中");
return false;
}
}
void
SpriteClassModel::onExit()
{
//移除监听
CCTouchDispatcher::sharedDispatcher()->removeDelegate(
this
);
CCSprite::onExit();
}
void SpriteClassModel::ccTouchMoved(CCTouch* touch, CCEvent* event)
{
}
相关推荐
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类,还需要实现handleEvent方法 事件发送者和事件接收者要在构造函数和析构函数中调用一下方法 事件发送者...
cocos2d-x-2.1.5
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...
cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656
cocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML文件读取与骨骼动画.rarcocos2d-x实战项目 01.cocos2d-x原理及环境配置.rar 03.cocostudio使用方法及UI控制.rar 04.XML...
资源名称:Cocos2D-X游戏开发技术精解内容简介:Cocos2D-X是一款支持多平台的 2D手机游戏引擎,支持iOS、Android、BlackBerry等众多平台。当前,很多移动平台流行的游戏,都是基于Cocos2D-X开发的。 《Cocos2D-X...
经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip
精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发
这是我重新弄的cocos2d-x-3.0的类图.之前别人兄台弄的,有些不全面,有些地方错误.我这个可以说是最新的了.每个类添加了中文的详细注解,同时也添加了中文的类名称翻译.这样对cocos2d-x-3.0的框架比较好上手. 有兴趣的...
《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如何建立跨平台的开发环境;引擎的核心模块——渲染框架;如何实现动态画面和...
Cocos2d-x 3.x游戏开发实战pdf含目录,内容详细,强烈推荐给大家。
Cocos2d-x windows vs2010 配置图文详解
Cocos2d-x游戏编程——C++篇(电子工业出版社,徐飞 著)书本配套的光盘代码,
Cocos2d-x实战 JS卷 Cocos2d-JS开发 PDF 电子书完整版本
cocos2d-x 动画工具 Flash2Cocos2d-x 1.3
cocos2d-x 3.0 人物行走 . 包里有代码和 图片资源.
Cocos2d-x-3.x游戏开发之旅-钟迪龙著 全新pdf版和附书代码(代码为工程文件,可复制) 附带目录标签
因为最近在学cocos2d-x,找了半天在网上也找不到一个离线的文档,于是自己抽空做了一个,全部内容提取自cocos2d-x中文官网的文档页http://cn.cocos2d-x.org/article 目前只提取了cocos2d-x部分内容。因为内容比较多...