#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
分享到:
相关推荐
7. **事件处理**:可以为CCSprite添加触摸或键盘事件监听器,以便响应用户的输入。 8. **混合模式(Blend Function)**:通过调整混合模式,可以实现不同的视觉效果,如透明、叠加等。 9. **Z轴排序**:Cocos2d中...
CCSprite的基本处理:缩放、旋转、混色 CCSprite的Action:帧动画,move+JUMP,move+rotate,FlowAction等,对于这些了解了,然后如果还有其他需求,相对就简单很多了.
首先创建CCAnimate对象,然后将其添加到ccsprite的动作堆栈中,使用`runAction()`方法。 ```cpp CCAnimate* animateAction = CCAnimate::create(animation); sprite->runAction(animateAction); ``` 六、控制动画 ...
CCSprite 精灵动画 动画示例精灵就是将图形资源加载到内存中,并根据游戏需要将其显示到屏幕中的工具,游戏中大到背景、UI,小到NPC、道具,只要是用图片展示的,都是精灵或它的子类。从技术上讲,精灵是一个可以...
本篇我们将深入探讨一个名为"TouchSpriteDemo"的示例,该示例展示了如何在cocos2d-x环境中实现对触碰事件的响应,让精灵(ccsprite)具备互动性。 首先,让我们理解一下cocos2d-x中的"ccsprite"。ccsprite是cocos2d...
要为精灵添加触摸事件,我们首先需要创建一个自定义的精灵类,继承自`cc::Sprite`。例如,我们可以创建一个名为`SpriteNode`的类: ```cpp // SpriteNode.h #include "cocos2d.h" class SpriteNode : public cocos...
在Cocos2d-x初学者的学堂中,深入学习CCSprite的基本处理是至关重要的一步。CCSprite是Cocos2d-x引擎中一个核心的组件,它用于显示2D图像,如图片、精灵或动画帧。在这个教程中,我们将探讨如何创建、缩放、旋转以及...
例如,你可以添加以下代码来使精灵监听触摸开始事件: ```objc [self setIsTouchEnabled:YES]; [self registerWithTouchDispatcher]; [[CCDirector sharedDirector].touchDispatcher addTargetedDelegate:self ...
在Cocos2d-x 3.0中,为Sprite添加遮罩是一项常见的图形处理任务,它可以帮助我们实现各种视觉效果,比如隐藏某些区域、创建剪贴蒙版或者实现动态模糊等。下面我们将深入探讨如何使用Cocos2d-x 3.0来实现这一功能。 ...
默认情况下,CCSprite的坐标也是以左下角为原点,但锚点同样设定为(0.5, 0.5)。这表示精灵的中心点位于坐标(0,0)处。在打印日志时,你可以看到`getPosition()`返回的坐标实际上是基于锚点的,所以初始位置为(0,0)。 ...
通过继承`CCSprite`并实现触摸事件回调函数,我们可以让精灵根据触摸状态执行不同的动作。同时,通过创建场景并设置触摸监听,我们确保了精灵能够接收到触摸事件。这是一个基础的交互设计,开发者可以根据实际需求...
CCSprite* object = CCSprite::create("HelloWorld.png");object->setPosition(ccp(mask->getContentSize().width/2, mask->getContentSize().height/2));// Create a masked imageCCMask* masked = CCMask::create...
这个设置使得图层能够接收并处理触摸事件。 ```cpp // C++ with Cocos2d-x this->setIsTouchEnabled(true); // Objective-C with Cocos2d-iPhone self.isTouchEnabled=YES; ``` ##### 1.2 实现触摸响应 接下来,...
它可以添加子节点(比如CCSprite)并定义渲染规则。CCLayer还具有事件响应机制,事件从最顶层的层开始传递,直到被处理或传递到底层。 - **CCSprite** 是2D图形对象,可移动、缩放、旋转和播放动画。它是CCNode的...
你可以通过`CCSprite::createWithSpriteFrameName`或`CCSprite::createWithSpriteFrame`方法加载图片,并将其添加到场景中。 2. **设置交互性**:为了让卡牌响应触摸事件,需要确保其`isTouchEnabled`属性为`true`...
3. 事件响应:为每个精灵设置点击事件监听器,可以实现与用户的交互。 4. 渲染优化:通过调整`zOrder`,我们可以控制精灵的渲染顺序,优化性能。 总结,`addSprite`是cocos2d-x中实现游戏视觉效果和交互的核心工具...
然后将这个监听器添加到事件分发器中,并设置一个优先级。在回调函数中,使用cocos2d::EventKeyboard::KeyCode来判断被按下的是否为退格键,然后根据平台或需要进行相应的逻辑处理。 这里有一个需要注意的点是,...
可以创建一个`CCSprite`或`CCLabel`来展示帮助文本,然后添加到`CCScrollView`的内容节点中。为了实现良好的阅读体验,可能需要将文本分割成多行并用`CCLabel`显示。 2. 自定义滚动行为: 可以通过监听触摸事件来...