资源简介
此版本为 参照 泰然网 cocos2d html5 王者之剑 改编C++ 版
此版本实现了简单的游戏打斗场景,一个英雄,一个怪物,可以控制英雄来回走动并且攻击,怪物实现简单 AI 并且自动攻击,有着不同的血量槽,控制系统,可以使用触摸,键盘映射 暂时还未实现,实现一个普通攻击和两个特效攻击
代码片段和文件信息
#include “ActionButton.h“
#include “Hudlayer.h“
CActionButton::CActionButton()
{
m_pSprite = NULL;
m_pHudlayer = NULL;
}
CActionButton::~CActionButton()
{
}
bool CActionButton::init(const char *szImage)
{
bool bRet = false;
do
{
CC_BREAK_IF(!CCNode::init());
m_pSprite = CCSprite::create(szImage);
addChild(m_pSprite);
bRet = true;
} while (0);
return bRet;
}
void CActionButton::click()
{
if (IsCanClick() && m_pHudlayer)
{
m_pHudlayer->attackButtonclick(GetAttackType());
beganAnimation();
}
}
void CActionButton::clickUp()
{
endedAnimation();
}
cocos2d::CCRect CActionButton::GetRect()
{
CCSize size = m_pSprite->getContentSize();
return CCRect(-size.width/2 -size.height/2 size.width size.height);
}
void CActionButton::onEnter()
{
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this 0 false);
CCNode::onEnter();
}
void CActionButton::onExit()
{
CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
CCNode::onExit();
}
bool CActionButton::containsTouchLocation( CCTouch* touch )
{
return GetRect().containsPoint(convertTouchToNodeSpaceAR(touch));
}
bool CActionButton::ccTouchBegan( CCTouch* touch CCEvent* event )
{
// 区域判断
if (!this->containsTouchLocation(touch))
return false;
// 播放点击动画
click();
return true;
}
void CActionButton::ccTouchMoved( CCTouch* touch CCEvent* event )
{
}
void CActionButton::ccTouchEnded( CCTouch* touch CCEvent* event )
{
endedAnimation();
}
CAttackButton::CAttackButton()
{
m_fDefaultScale = 0.35;
m_fMaxScale = 0.5;
m_pNormal = CCSprite::create(“AttackO.png“);
m_pNormal->retain();
CCFiniteTimeAction *pScale = CCScaleTo::create(0.1 m_fDefaultScale);
CCFiniteTimeAction *pFadeIn = CCFadeIn::create(0.1);
m_pInAction = CCSpawn::create(pScale pFadeIn NULL);
m_pInAction->retain();
pScale = CCScaleTo::create(0.2f m_fMaxScale);
CCFiniteTimeAction *pFade = CCFadeOut::create(0.2);
m_pOutAction = CCSpawn::create(pScale pFade NULL);
m_pOutAction->retain();
m_fClickTime = 0.0f;
}
CAttackButton::~CAttackButton()
{
CC_SAFE_RELEASE(m_pNormal);
CC_SAFE_RELEASE(m_pInAction);
CC_SAFE_RELEASE(m_pOutAction);
}
bool CAttackButton::init( const char *szImage )
{
bool bRet = CActionButton::init(szImage);
if (m_pNormal)
m_pNormal->setScale(m_fMaxScale);
return bRet;
}
CAttackButton* CAttackButton::create( const char *szImage )
{
CAttackButton *pAttackButton = new CAttackButton();
if (pAttackButton && pAttackButton->init(szImage))
{
pAttackButton->autorelease();
return pAttackButton;
}
else
{
delete pAttackButton;
return NULL;
}
}
void CAttackButton::beganAnimation()
{
removeChild(m_pNormal);
addChild(m_pNormal);
m_pNormal->runAction((CCAction*)m_pInAction->copy());
cc_timeval timeVal;
CCTime::gettimeofdayCocos2d(&timeVal 0);
m_fClickTime = timeVal.tv_sec * 1000 + timeVal.tv_usec / 1000;
}
void CAttackButton::endedAnimation()
{
m_pNormal->stopAllActions();
m_pNormal->runAction((CCAction*)m_p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 176 2014-01-26 14:37 Resources\names.xm
目录 0 2013-12-28 20:09 Classes\
文件 4549 2013-12-28 19:45 Classes\ActionButton.cpp
文件 2029 2013-12-28 18:40 Classes\ActionButton.h
文件 1318 2013-12-26 22:07 Classes\AppDelegate.cpp
文件 960 2013-12-26 22:07 Classes\AppDelegate.h
文件 10254 2013-12-28 19:51 Classes\Characters.cpp
文件 2588 2013-12-28 19:37 Classes\Characters.h
文件 1410 2013-12-28 18:37 Classes\Gamela
文件 555 2013-12-28 18:35 Classes\Gamela
文件 1338 2013-12-28 14:43 Classes\HelloWorldScene.cpp
文件 657 2013-12-26 22:07 Classes\HelloWorldScene.h
文件 5286 2013-12-28 19:59 Classes\Hudla
文件 1406 2013-12-28 16:03 Classes\Hudla
文件 2748 2013-12-28 12:48 Classes\JoyPad.cpp
文件 1191 2013-12-28 12:45 Classes\JoyPad.h
目录 0 2013-12-28 20:09 Resources\
文件 23144 2013-09-25 20:12 Resources\Attack.png
文件 15428 2013-09-25 20:12 Resources\AttackA.png
文件 14164 2013-09-25 20:12 Resources\AttackB.png
文件 5554 2013-09-25 20:12 Resources\AttackFreeze.png
文件 84571 2013-09-25 20:12 Resources\AttackO.png
文件 818824 2013-09-25 20:12 Resources\BackGround.png
文件 6311 2013-09-25 20:12 Resources\CloseNormal.png
文件 5499 2013-09-25 20:12 Resources\CloseSelected.png
文件 324064 2013-09-25 20:12 Resources\HelloWorld.png
文件 30447 2013-09-25 20:12 Resources\Hero1.png
文件 30633 2013-09-25 20:12 Resources\Hero2.png
文件 30977 2013-09-25 20:12 Resources\Hero3.png
文件 39443 2013-09-25 20:12 Resources\HeroAttack1.png
文件 42261 2013-09-25 20:12 Resources\HeroAttack2.png
............此处省略140个文件信息
- 上一篇:使用C++来实现KNN算法
- 下一篇:html tidy c++库
评论
共有 条评论