cocos2d-x3.2单点触摸

前端之家收集整理的这篇文章主要介绍了cocos2d-x3.2单点触摸前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//GameScene.h@H_502_54@
#include"cocos2d.h"@H_502_54@
USING_NS_CC;@H_502_54@
class@H_502_54@ GameScene:@H_502_54@ public@H_502_54@ cocos2d::Layer@H_502_54@
{@H_502_54@
:@H_502_54@
@H_502_54@ static@H_502_54@ cocos2d::Scene*createScene();@H_502_54@
@H_502_54@
virtual@H_502_54@ bool@H_502_54@ init();@H_502_54@
onTouchBegan(Touch*touch,Event*unused_event);@H_502_54@
virtual@H_502_54@ void@H_502_54@ onTouchMoved(Touch*touch,Event*unused_event);@H_502_54@
onTouchEnded(Touch*touch,Event*unused_event);@H_502_54@
@H_502_54@
menuCallback(cocos2d::Ref*pSender);@H_502_54@
@H_502_54@
@H_502_54@ CREATE_FUNC(GameScene);@H_502_54@
};@H_502_54@



@H_404_160@
?
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//GameScene.cpp@H_502_54@
//功能:运行点击屏幕,控制台显示触点坐标,并将图标移动到触点位置@H_502_54@
#include"GameScene.h"@H_502_54@
USING_NS_CC;@H_502_54@
@H_449_301@
cocos2d::Scene*GameScene::createScene()@H_502_54@
{@H_502_54@
auto@H_502_54@ scene=Scene::create();@H_502_54@ //创建一个场景@H_502_54@
layer=GameScene::create();@H_502_54@ //创建一个图层@H_502_54@
scene->addChild(layer);@H_502_54@
return@H_502_54@ scene;@H_502_54@
}@H_502_54@
//初始化当前的图层@H_502_54@
GameScene::init()@H_502_54@
{@H_502_54@
if@H_502_54@ (!Layer::init())@H_502_54@ //初始化父类@H_502_54@
return@H_502_54@ false@H_502_54@ ;@H_502_54@
@H_502_54@
@H_502_54@ //获取屏幕大小@H_502_54@
SizevisibleSize=Director::getInstance()->getVisibleSize();@H_502_54@
//添加一个图片精灵@H_502_54@
sprite=Sprite::create(@H_502_54@ "OnePiece_1.png"@H_502_54@ );@H_502_54@
sprite->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));@H_502_54@
this@H_502_54@ ->addChild(sprite);@H_502_54@
@H_502_54@
sprite1=Sprite::create(@H_502_54@ "Flag_1.png"@H_502_54@ );@H_502_54@
sprite1->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));@H_502_54@
sprite1->setTag(12);@H_502_54@
@H_415_404@->addChild(sprite1);@H_502_54@
@H_502_54@
//1.注册监听事件对象@H_502_54@
listener=EventListenerTouchOneByOne::create();@H_502_54@ //单点触摸@H_502_54@
//autolistener=EventListenerTouchAllAtOnce::create();//多点触摸@H_502_54@
//setTouchEnabled(true);//3.0版本已经被弃用@H_502_54@
@H_502_54@
//2.定义监听对象的回调方法@H_502_54@
listener->onTouchBegan=CC_CALLBACK_2(GameScene::onTouchBegan,@H_502_54@ );@H_502_54@
listener->onTouchMoved=CC_CALLBACK_2(GameScene::onTouchMoved,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-size:1em!important; min-height:inherit!important">);@H_502_54@
listener->onTouchEnded=CC_CALLBACK_2(GameScene::onTouchEnded,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-size:1em!important; min-height:inherit!important">);@H_502_54@
@H_502_54@
//3.在事件分发器中注册@H_502_54@
_eventDispatcher->addEventListenerWithSceneGraPHPriority(listener,monospace!important; border:0px!important; bottom:auto!important; float:none!important; height:auto!important; left:auto!important; line-height:1.1em!important; outline:0px!important; overflow:visible!important; position:static!important; right:auto!important; top:auto!important; vertical-align:baseline!important; width:auto!important; font-size:1em!important; min-height:inherit!important">);@H_502_54@
@H_502_54@
true@H_502_54@ ;@H_502_54@
}@H_502_54@
//触摸事件函数(内部已创建,这里重新编写)@H_502_54@
GameScene::onTouchBegan(Touch*touch,Event*unused_event)@H_502_54@
{@H_502_54@
//touch->getLocation();//获得的是OpenGL坐标@H_502_54@
//autop1=touch->getLocationInView();//获得的是UI坐标@H_502_54@
//autop2=Dirctor::getInstance()->convertToGL(p1);//转换成OpenGL坐标@H_502_54@
CCLOG(@H_502_54@ "TouchBeganx:%lf,y:%lf"@H_502_54@ ,touch->getLocation().x,touch->getLocation().y);@H_502_54@
@H_502_54@
sprite=@H_502_54@ ->getChildByTag(12);@H_502_54@ //通过标识获取精灵@H_502_54@
//sprite->setPosition(Vec2(touch->getLocation().x,touch->getLocation().y));@H_502_54@
sprite->runAction(MoveTo::create(0.5f,Point(touch->getLocation().x,touch->getLocation().y)));@H_502_54@
;@H_502_54@
}@H_502_54@
GameScene::onTouchMoved(Touch*touch,Event*unused_event)@H_502_54@
{@H_502_54@
//图标随鼠标一起移动@H_502_54@
//autosprite=this->getChildByTag(12);//通过标识获取精灵@H_502_54@
502_54@
}@H_502_54@
GameScene::onTouchEnded(Touch*touch,Event*unused_event)@H_502_54@
{@H_502_54@
@H_502_54@

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//GameScene.h@H_502_54@
#include"cocos2d.h"@H_502_54@
USING_NS_CC;@H_502_54@
class@H_502_54@ GameScene:@H_502_54@ public@H_502_54@ cocos2d::Layer@H_502_54@
{@H_502_54@
:@H_502_54@
@H_502_54@ static@H_502_54@ cocos2d::Scene*createScene();@H_502_54@
@H_502_54@
virtual@H_502_54@ bool@H_502_54@ init();@H_502_54@
502_54@
virtual@H_502_54@ void@H_502_54@ 502_54@
502_54@
@H_502_54@
menuCallback(cocos2d::Ref*pSender);@H_502_54@
@H_502_54@
@H_502_54@ CREATE_FUNC(GameScene);@H_502_54@
};@H_502_54@



@H_404_160@
?
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//GameScene.cpp@H_502_54@
//功能:运行点击屏幕,控制台显示触点坐标,并将图标移动到触点位置@H_502_54@
#include"GameScene.h"@H_502_54@
USING_NS_CC;@H_502_54@
@H_449_301@
cocos2d::Scene*GameScene::createScene()@H_502_54@
{@H_502_54@
auto@H_502_54@ scene=Scene::create();@H_502_54@ //创建一个场景@H_502_54@
layer=GameScene::create();@H_502_54@ //创建一个图层@H_502_54@
scene->addChild(layer);@H_502_54@
return@H_502_54@ scene;@H_502_54@
}@H_502_54@
//初始化当前的图层@H_502_54@
GameScene::init()@H_502_54@
{@H_502_54@
if@H_502_54@ (!Layer::init())@H_502_54@ //初始化父类@H_502_54@
return@H_502_54@ false@H_502_54@ ;@H_502_54@
@H_502_54@
@H_502_54@ //获取屏幕大小@H_502_54@
SizevisibleSize=Director::getInstance()->getVisibleSize();@H_502_54@
//添加一个图片精灵@H_502_54@
sprite=Sprite::create(@H_502_54@ "OnePiece_1.png"@H_502_54@ );@H_502_54@
502_54@
this@H_502_54@ ->addChild(sprite);@H_502_54@
@H_502_54@
sprite1=Sprite::create(@H_502_54@ "Flag_1.png"@H_502_54@ );@H_502_54@
502_54@
sprite1->setTag(12);@H_502_54@
@H_415_404@->addChild(sprite1);@H_502_54@
@H_502_54@
//1.注册监听事件对象@H_502_54@
listener=EventListenerTouchOneByOne::create();@H_502_54@ //单点触摸@H_502_54@
//autolistener=EventListenerTouchAllAtOnce::create();//多点触摸@H_502_54@
//setTouchEnabled(true);//3.0版本已经被弃用@H_502_54@
@H_502_54@
//2.定义监听对象的回调方法@H_502_54@
502_54@ );@H_502_54@
);@H_502_54@
);@H_502_54@
@H_502_54@
//3.在事件分发器中注册@H_502_54@
);@H_502_54@
@H_502_54@
true@H_502_54@ ;@H_502_54@
}@H_502_54@
//触摸事件函数(内部已创建,这里重新编写)@H_502_54@
502_54@
{@H_502_54@
//touch->getLocation();//获得的是OpenGL坐标@H_502_54@
//autop1=touch->getLocationInView();//获得的是UI坐标@H_502_54@
//autop2=Dirctor::getInstance()->convertToGL(p1);//转换成OpenGL坐标@H_502_54@
CCLOG(@H_502_54@ 502_54@ 502_54@
@H_502_54@
sprite=@H_502_54@ ->getChildByTag(12);@H_502_54@ //通过标识获取精灵@H_502_54@
502_54@
502_54@
;@H_502_54@
}@H_502_54@
502_54@
{@H_502_54@
//图标随鼠标一起移动@H_502_54@
//autosprite=this->getChildByTag(12);//通过标识获取精灵@H_502_54@
502_54@
}@H_502_54@
502_54@
{@H_502_54@

猜你在找的Cocos2d-x相关文章