#ifndef
__HELLOWORLD_SCENE_H__
#define
__HELLOWORLD_SCENE_H__
#include
"cocos2d.h"
#include
"Hello.h"
using
namespace
cocos2d
;
class
HelloWorld
:
public
cocos2d
::
CCLayer
{
public
:
// 初始化
virtual
bool
init
();
static
cocos2d
::
CCScene
*
scene
();
CREATE_FUNC
(
HelloWorld
);
// 重写触屏回调函数
virtual
bool
ccTouchBegan
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
);
virtual
void
ccTouchMoved
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
);
virtual
void
ccTouchEnded
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
);
// 重写生命周期函数
virtual
void
onEnter
();
virtual
void
onExit
();
};
#endif
#include
"HelloWorldScene.h"
#include
"../CocosDenshion/win32/MciPlayer.h"
#include
"sprite_nodes/CCAnimation.h"
#include
"AppMacros.h"
#include
"Hello.h"
#include
"menu_nodes/CCMenuItem.h"
using
namespace
cocos2d
;
using
namespace
CocosDenshion
;
USING_NS_CC
;
// 以上是Hello 场景 以下是HelloWorld的场景
// 返回一个特定的场景
CCScene
*
HelloWorld
::
scene
()
{
// 创建一个场景
CCScene
*
scene
=
CCScene
::
create
();
// 将 HelloWorld 层加到场景 之中
HelloWorld
*
layer
=
HelloWorld
::
create
();
scene
->
addChild
(
layer
);
return
scene
;
}
// 对HelloWorld的场景进行初始化
bool
HelloWorld
::
init
()
{
bool
bInitSucceed
=
false
;
if
(!
CCLayer
::
init
())
{
return
bInitSucceed
;
}
CCSprite
*
pSprite
=
CCSprite
::
create
(
"CloseNormal.png"
);
pSprite
->
setPosition
(
ccp
(
150
,
150
));
addChild
(
pSprite
,
0
,
922
);
return
true
;
}
void
HelloWorld
::
onEnter
()
{
CCDirector
::
sharedDirector
()->
getTouchDispatcher
()->
addTargetedDelegate
(
this
,
0
,
false
);
CCLayer
::
onEnter
();
}
void
HelloWorld
::
onExit
()
{
CCDirector
::
sharedDirector
()->
getTouchDispatcher
()->
removeDelegate
(
this
);
CCLayer
::
onExit
();
}
bool
HelloWorld
::
ccTouchBegan
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
)
{
CCLOG
(
"ccTouchBegan"
);
return
true
;
}
void
HelloWorld
::
ccTouchMoved
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
)
{
CCLOG
(
"ccTouchMoved"
);
}
void
HelloWorld
::
ccTouchEnded
(
CCTouch
*
pTouch
,
CCEvent
*
pEvent
)
{
CCLOG
(
"ccTouchEnded"
);
if
(!
pTouch
)
{
CCLOG
(
"HelloWorld::ccTouchesEnded pTouch Null"
);
return
;
}
// 获取离开时的坐标
CCPoint
point
=
pTouch
->
getLocation
();
// 获取tag=922的精灵
CCSprite
*
pSprite
=
(
CCSprite
*)
this
->
getChildByTag
(
922
);
if
(!
pSprite
)
{
CCLOG
(
"HelloWorld::ccTouchesEnded pSprite Null"
);
return
;
}
// 暂停所有动作
pSprite
->
stopAllActions
();
pSprite
->
runAction
(
CCMoveTo
::
create
(
1
,
point
));
}