Touch Handling in Cocos2D 3.x(二)
接受触摸
在Cocos2d 3.0中每一个CCNode和每一个CCNode的子类都可以接收触摸.你只需要开启一个选项.让我们在定制的初始化器里完成它.替换MainScene.m中init方法的代码:
- (id)init
{
    if (self = [super init])
    {
        // activate touches on this scene
        self.userInteractionEnabled = TRUE;
    }
    return self;
}
现在Cocos2d 将会知道我们想要在这个场景中处理触摸
处理触摸 
Cocos2d 会通知我们4种不同的触摸事件:
- 当触摸开始时
 - 当触摸移动时
 - 当触摸结束时
 - 当触摸被取消时
 
这些不同的方法使得你可以在屏幕上跟踪触摸,对于我们第一个例子来说,我们只需要被通知触摸开始的事件.
增加下面代码到MainScene.m中:
- (void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
    CCLOG(@"Received a touch");
}
当用户开启一个Node的交互时,所有实现的触摸处理方法将会被调用.我们现在实现了touchBegan方法,它将在不管任何时候一个触摸开始时被调用.当触摸发生时我们使用CCLOG往console上打印调试信息.
现在运行app,每一次你触摸屏幕,一条”Received a touch”消息将显示在控制台中.现在你知道在你的游戏中如何接收任何节点的触摸了-这将是非常强大的功能.
Touch Handling in Cocos2D 3.x(二)的更多相关文章
- Touch Handling in Cocos2D 3.x(六)
		
使英雄变成可触碰的对象 这是另一个非常有用的特性.很多用户需要捡起已经存在的英雄然后满屏幕移动它们.让我们按以下步骤实现该功能: 如果用户触摸屏幕空白位置,一个新的英雄将被创建 如果用户触摸一个已经存 ...
 - Touch Handling in Cocos2D 3.x(五)
		
实现新英雄的放置功能 首先我们需要一个变量来保持我们当前移动英雄的引用,因此我们将添加一个私有实例变量.修改MainScene.m中的代码. 用: @implementation MainScene ...
 - Touch Handling in Cocos2D 3.x(七)
		
在touchMoved方法中寻找触摸在父节点(CCScene)中的位置并且移动CCDragSprite到其父节点的相应位置中去. 在我们在动作中观赏拖放机制之前,我们需要使用这个新实现的类.打开Mai ...
 - Touch Handling in Cocos2D 3.x(四)
		
创建触摸生命周期 让我们改善我们的应用程序.如果玩家可以触摸屏幕并且拖放英雄到指定位置不是更好吗? 为了完成这个功能我们必须使用Cocos2d 3.0提供的所有的触摸事件: touchBegan:在用 ...
 - Touch Handling in Cocos2D 3.x(三)
		
取得触摸位置 最有趣的部分是触摸的位置.接下来我们将使用触摸位置在玩家每次点击的屏幕位置上添加精灵.为了完成这项功能我们需要修改touchBegan的实现,替换旧的代码如下: - (void)touc ...
 - Touch Handling in Cocos2D 3.x(一)
		
原帖地址 Cocos2d 3.0 带来经过完全修正后的触摸处理系统.本篇博文将提供所有触摸相关的信息: 接收触摸 取得触摸位置 处理不同个触摸生命周期中的事件 实现一个拖放机制 让我们开始吧 ;) 通 ...
 - 解读sencha touch移动框架的核心架构(二)
		
本来这行要详解Ext.extend的,但是发现网站有很详细的,那么就跳过去吧 为保持一个系列的分析,还是先搬过来吧,下章开始分析Ext4.0的新架构 在Java中,我们在实现继承的时候存在下面几个事实 ...
 - 【Cocos2d入门教程二】Cocos2d-x基础篇
		
上一章已经学习了环境的搭建.这一章对基础概念进行掌握.内容大概有: 1.导演 2.场景 3.节点 4.层 4.精灵 1.导演(Director) 导演存在的主要作用: a.环境设定(帧率 初始化ope ...
 - Cocos2D v2.0至v3.x简洁转换指南(二)
		
触摸处理 我们在稍后将完成Cocos2d 3.0中触摸处理的完整教程.而现在最重要的是知道如何去启用触摸处理在你的CCNode中: self.userInteractionEnabled = TRUE ...
 
随机推荐
- ERP中的地区管理
			
地区管理 地区管理主要实现地区数据的添加.编辑.查看.启用.禁用等功能,另外还包含地区选择控件封装. 业务功能点: 地区数据查看:地区列表树状展现,列表增加省.市.区.县.乡图标. 地区选择控件:选择 ...
 - ajax跨域请求问题及解决办法总结
			
1.浏览器的同源策略及规避方法 目前,所有浏览器都实行同源政策.即协议.域名.端口都相同的URI称为"同源".不同源的url之间: a.无法读取cookie.localstorag ...
 - --save-dev 和 --save的区别
			
1. 我们在使用npm install xx --save-dev / --save安装模块或插件的时候,会将他们写入到 package.json 文件,那到底有什么区别呢? --save-dev:会 ...
 - 深入理解Lambda函数及其用法
			
Lambda函数又称匿名函数,匿名函数就是没有名字的函数,函数没有名字也行?当然可以啦.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要非给它取个名字不可. 先来看个简单lambda函数 ...
 - 当我们在谈论JMM(Java memory model)的时候,我们在谈论些什么
			
前面几篇中,我们谈论了synchronized.final以及voilate的用法和底层实现,都绕不开一个话题-Java内存模型(java memory model,简称JMM).Java内存模型是保 ...
 - ACM Least Common Multiple
			
The least common multiple (LCM) of a set of positive integers is the smallest positive integer which ...
 - 存出和载入Docker镜像
			
存出镜像 如果要导出镜像到本地文件,可以使用 docker save 命令. $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL ...
 - 在web应用中使用Log4j 2
			
Using Log4j 2 inWeb Applications (在web应用中使用Log4j 2) 来源:http://logging.apache.org/log4j/2.x/manual/we ...
 - C实战:项目构建Make,Automake,CMake
			
C实战:项目构建Make,Automake,CMake 在本系列文章<C实战:强大的程序调试工具GDB>中我们简要学习了流行的调试工具GDB的使用方法.本文继续"C实战" ...
 - git > 2.3 实现同步盘的功能
			
话不多说,简单粗暴 http://stackoverflow.com/questions/35643201/how-to-set-up-a-sychronous-directory-in-remote ...