`
codeone
  • 浏览: 46262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为CCSprite添加touch事件

 
阅读更多

 

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface SpTouchable : CCSprite <CCTargetedTouchDelegate>{

}
- (BOOL)containsTouchLocation:(UITouch *)touch;
@end

 实现类:

   #import "SpTouchable.h"

@implementation SpTouchable
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event  
{  
	
	if ( ![self containsTouchLocation:touch] )   
    {  
        return NO;  
    }  
	NSLog(@"tag : %d",self.tag);
	return YES;  
}  
- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event  
{  
	//  CGPoint touchPoint = [touch locationInView:[touch view]];  
	
	//  touchPoint = [[CCDirector sharedDirector] convertToUI:CGPointMake(touchPoint.x, touchPoint.y)];  
	
	
	
	// self.position = CGPointMake(touchPoint.x, touchPoint.y);  
} 

- (void) onEnter  
{  
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];  
    [super onEnter];  
}  
- (void) onExit  
{  
    [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];  
    [super onExit];  
} 

- (CGRect)rect  
{  
    CGSize s = [self.texture contentSize];  
    return CGRectMake(-s.width / 2, -s.height / 2, s.width, s.height);  
}  


- (BOOL)containsTouchLocation:(UITouch *)touch  
{  
	//NSLog(@"location");
    return CGRectContainsPoint(self.rect, [self convertTouchToNodeSpaceAR:touch]);  
}  

@end
分享到:
评论

相关推荐

    cocos2d 总结:三 CCSprite

    7. **事件处理**:可以为CCSprite添加触摸或键盘事件监听器,以便响应用户的输入。 8. **混合模式(Blend Function)**:通过调整混合模式,可以实现不同的视觉效果,如透明、叠加等。 9. **Z轴排序**:Cocos2d中...

    CCSprite基本处理和动画工程

    CCSprite的基本处理:缩放、旋转、混色 CCSprite的Action:帧动画,move+JUMP,move+rotate,FlowAction等,对于这些了解了,然后如果还有其他需求,相对就简单很多了.

    ccsprite播放动画的源代码

    首先创建CCAnimate对象,然后将其添加到ccsprite的动作堆栈中,使用`runAction()`方法。 ```cpp CCAnimate* animateAction = CCAnimate::create(animation); sprite-&gt;runAction(animateAction); ``` 六、控制动画 ...

    CCSprite 精灵动画

    CCSprite 精灵动画 动画示例精灵就是将图形资源加载到内存中,并根据游戏需要将其显示到屏幕中的工具,游戏中大到背景、UI,小到NPC、道具,只要是用图片展示的,都是精灵或它的子类。从技术上讲,精灵是一个可以...

    TouchSpriteDemo.zip

    本篇我们将深入探讨一个名为"TouchSpriteDemo"的示例,该示例展示了如何在cocos2d-x环境中实现对触碰事件的响应,让精灵(ccsprite)具备互动性。 首先,让我们理解一下cocos2d-x中的"ccsprite"。ccsprite是cocos2d...

    cocos2dx 精灵触摸事件的实现

    要为精灵添加触摸事件,我们首先需要创建一个自定义的精灵类,继承自`cc::Sprite`。例如,我们可以创建一个名为`SpriteNode`的类: ```cpp // SpriteNode.h #include "cocos2d.h" class SpriteNode : public cocos...

    Cocos2d-x初入学堂--&gt;CCSprite基本处理(2)工程

    在Cocos2d-x初学者的学堂中,深入学习CCSprite的基本处理是至关重要的一步。CCSprite是Cocos2d-x引擎中一个核心的组件,它用于显示2D图像,如图片、精灵或动画帧。在这个教程中,我们将探讨如何创建、缩放、旋转以及...

    【iOS-Cocos2d游戏开发】触屏事件处理机制

    例如,你可以添加以下代码来使精灵监听触摸开始事件: ```objc [self setIsTouchEnabled:YES]; [self registerWithTouchDispatcher]; [[CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self ...

    使用cocos2d-x3.0来给Sprite添加遮罩

    在Cocos2d-x 3.0中,为Sprite添加遮罩是一项常见的图形处理任务,它可以帮助我们实现各种视觉效果,比如隐藏某些区域、创建剪贴蒙版或者实现动态模糊等。下面我们将深入探讨如何使用Cocos2d-x 3.0来实现这一功能。 ...

    Cocos2d-x学习笔记之CCScene、CCLayer、CCSprite的默认坐标和默认锚点实验

    默认情况下,CCSprite的坐标也是以左下角为原点,但锚点同样设定为(0.5, 0.5)。这表示精灵的中心点位于坐标(0,0)处。在打印日志时,你可以看到`getPosition()`返回的坐标实际上是基于锚点的,所以初始位置为(0,0)。 ...

    Cocos2d-x 自定义可接受处理触摸信息精灵类

    通过继承`CCSprite`并实现触摸事件回调函数,我们可以让精灵根据触摸状态执行不同的动作。同时,通过创建场景并设置触摸监听,我们确保了精灵能够接收到触摸事件。这是一个基础的交互设计,开发者可以根据实际需求...

    CCMask:使用 cocos2d-x v2.0 屏蔽 CCSprite

    CCSprite* object = CCSprite::create("HelloWorld.png");object-&gt;setPosition(ccp(mask-&gt;getContentSize().width/2, mask-&gt;getContentSize().height/2));// Create a masked imageCCMask* masked = CCMask::create...

    如何用cocos2d-x来开发简单的Uphone游戏:(三)

    这个设置使得图层能够接收并处理触摸事件。 ```cpp // C++ with Cocos2d-x this-&gt;setIsTouchEnabled(true); // Objective-C with Cocos2d-iPhone self.isTouchEnabled=YES; ``` ##### 1.2 实现触摸响应 接下来,...

    coco2d-x面试题(无脑码农).pdf,这是一份不错的文件

    它可以添加子节点(比如CCSprite)并定义渲染规则。CCLayer还具有事件响应机制,事件从最顶层的层开始传递,直到被处理或传递到底层。 - **CCSprite** 是2D图形对象,可移动、缩放、旋转和播放动画。它是CCNode的...

    Cocos2D游戏之旅(三):卡牌翻转效果2(只有当鼠标点中卡牌才翻转)

    你可以通过`CCSprite::createWithSpriteFrameName`或`CCSprite::createWithSpriteFrame`方法加载图片,并将其添加到场景中。 2. **设置交互性**:为了让卡牌响应触摸事件,需要确保其`isTouchEnabled`属性为`true`...

    cocos2d-x学习笔记(2)--addSprite.rar

    3. 事件响应:为每个精灵设置点击事件监听器,可以实现与用户的交互。 4. 渲染优化:通过调整`zOrder`,我们可以控制精灵的渲染顺序,优化性能。 总结,`addSprite`是cocos2d-x中实现游戏视觉效果和交互的核心工具...

    cocos2d-x自学个人笔记.pdf

    然后将这个监听器添加到事件分发器中,并设置一个优先级。在回调函数中,使用cocos2d::EventKeyboard::KeyCode来判断被按下的是否为退格键,然后根据平台或需要进行相应的逻辑处理。 这里有一个需要注意的点是,...

    CCScrollView实现帮助界面、关卡选择

    可以创建一个`CCSprite`或`CCLabel`来展示帮助文本,然后添加到`CCScrollView`的内容节点中。为了实现良好的阅读体验,可能需要将文本分割成多行并用`CCLabel`显示。 2. 自定义滚动行为: 可以通过监听触摸事件来...

Global site tag (gtag.js) - Google Analytics