Cocos2d技巧之用户交互-触碰,按住和拖曳操作
触碰,按住和拖曳操作是应用和游戏中最常使用的交互技术。这三种操作是用户界面交互的基石,同时也是和游戏中物体交互的基础。
在这个示例中,我们创建了一个CCSprite的分类,从而可以让精灵对象处理触摸事件,并维持某种特定的状态。此外还添加了部分逻辑让用户可以触碰,按住和拖曳该精灵对象。
示例项目请参考附件(Xcode4.6+iOS6.1.2+cocos2dv2.1 rc0a)
http://vdisk.weibo.com/s/tlzvl
Step1.在Xcode中创建一个新项目,命名为TapHoldDrag
Step2.将resources文件夹中的文件拖到项目中,确保选中”copy….into…”,并勾选项目名称。
Step3.在Xcode中切换到HelloWorld.m,在文件顶部添加以下代码:
#import "ColorTouchSprite.h"
#import "Helpers.h"
然后在@implementationHelloWorldLayer后添加实例变量:
@implementation HelloWorldLayer{
ColorTouchSprite *colorTouchSprite;
CCLabelBMFont *message;
}
注意,这是iOS5之后的编码新规范,也即实例变量声明不需要再放在@interface部分,而是放在@implementation部分。
在init方法前添加以下方法:
-(void) step {
//Changecolor and message depending on ColorTouchSprite state
if(colorTouchSprite.touchedState ==TS_NONE){
[message setColor:ccc3(255,255,255)];
[message setString:@"Tap, hold or drag the square."];
[colorTouchSprite setColor:c