展会信息港展会大全

分享一个《打地鼠》的小游戏,cocos2dx版本,《打地鼠》cocos2dx
来源:互联网   发布日期:2015-09-28 11:30:37   浏览:2555次  

导读: 分享一个《打地鼠》的小游戏,cocos2dx版本,《打地鼠》cocos2dx 先上效果图: 主要的类: #include "Hole.h" #include <stdli...

分享一个《打地鼠》的小游戏,cocos2dx版本,《打地鼠》cocos2dx

先上效果图:

主要的类:

#include "Hole.h"

#include <stdlib.h>

#include "ccMacros.h"

Hole::Hole(void)

{

this->image = NULL;

this->animation = NULL;

this->hit = NULL;

this->state = 0;

}

Hole::~Hole(void)

{

}

void Hole::onEnter()

{//监听触摸事件

CCDirector* pDirector = CCDirector::sharedDirector();

pDirector->getTouchDispatcher()->addTargetedDelegate(this, -128, false);

CCNode::onEnter();

}

void Hole::onExit()

{

CCDirector* pDirector = CCDirector::sharedDirector();

pDirector->getTouchDispatcher()->removeDelegate(this);

CCNode::onExit();

}

CCRect Hole::rect()

{

CCSize size = this->image->getContentSize();

return CCRectMake(-size.width / 2, -size.height / 2, size.width, size.height);

}

bool Hole::init()

{//初始化图片

CCSprite::init();

this->image = CCSprite::create("emptyhole.JPG");

CCSize size = this->image->getContentSize();

this->setContentSize(size);

this->image->setPosition(CCSize(size.width/2,size.height/2));

this->addChild(this->image);

return true;

}

void Hole::update(float tick)

{

if( rand()%100 > 60)

{//地鼠随机出洞,

this->out();

}

}

void Hole::out()

{

this->animation = CCAnimation::create();

this->animation->addSpriteFrameWithFileName("show1.JPG");

this->animation->addSpriteFrameWithFileName("show2.JPG");

this->animation->addSpriteFrameWithFileName("show3.JPG");

this->animation->addSpriteFrameWithFileName("show4.JPG");

this->animation->addSpriteFrameWithFileName("show5.JPG");

this->animation->addSpriteFrameWithFileName("show6.JPG");

this->animation->addSpriteFrameWithFileName("show5.JPG");

this->animation->addSpriteFrameWithFileName("show4.JPG");

this->animation->addSpriteFrameWithFileName("show3.JPG");

this->animation->addSpriteFrameWithFileName("show2.JPG");

this->animation->addSpriteFrameWithFileName("show1.JPG");

this->animation->setDelayPerUnit(0.1f);

this->animation->setRestoreOriginalFrame(true);

//CCAction* action = CCRepeat::create(CCAnimate::create(animation),1);

//设置 地鼠的出洞动画,和动画完成之后的回调函数

CCFiniteTimeAction * action = CCSequence::create(CCAnimate::create(animation),CCCallFuncND::create(this,callfuncND_selector(Hole::call_back),NULL),NULL);

this->image->runAction(action);

this->state = 1;

}

void Hole::call_back(CCNode* sender,void* ref)

{

this->state = 0;

}

bool Hole::isInSprite(CCTouch* touch)

{

CCPoint touchPoint = touch->getLocation();

CCPoint reallyPoint = this->convertToNodeSpace(touchPoint);

CCRect rect = this->boundingBox();

if(rect.containsPoint(touchPoint))

{

return true;

}

return false;

}

bool Hole::ccTouchBegan(CCTouch* touch, CCEvent* event)

{

if(this->isInSprite(touch) && this->state == 1)

{

//this->image->stopAllActions();

CCSprite* sp = CCSprite::create("hit.JPG");

CCTexture2D* hit = sp->getTexture();

this->image->setTexture(hit);

this->state = 0;

return true;

}

return false;

}

void Hole::ccTouchMoved(CCTouch* touch, CCEvent* event)

{

}

void Hole::ccTouchEnded(CCTouch* touch, CCEvent* event)

{

this->image->stopAllActions();

CCSprite* sp = CCSprite::create("emptyhole.JPG");

CCTexture2D* hit = sp->getTexture();

this->image->setTexture(hit);

}for(int i=0;i<3;i++){for(int j=0;j<3;j++){//初始化九宫格的精灵Hole* hole = new Hole();hole->init();hole->setPosition(CCSize(i*hole->getContentSize().width +hole->getContentSize().width/2, j*hole->getContentSize().height + hole->getContentSize().height/2));this->vect.push_back(hole);this->addChild(hole);}}//设置回调函数this->schedule(schedule_selector(HelloWorld::update),3.0);return true;}void HelloWorld::update(float tick){for(vector<Hole*>::iterator iter = this->vect.begin();iter != this->vect.end();iter++){//定时触发每个精灵的触发函数(*iter)->update(tick);}}

http://www.bkjia.com/Androidjc/981680.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/981680.htmlTechArticle分享一个《打地鼠》的小游戏,cocos2dx版本,《打地鼠》cocos2dx 先上效果图: 主要的类: #include " Hole.h " #include stdlib.h #include " ccMacros.h "...

赞助本站

人工智能实验室

相关热词: android开发 android教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港