先上效果图:
images/loading.gif' data-original="data:image/png;base64,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**t2rv+G+Obep36w7Ja2lu1+GpQRZUSHHIYnCE8vcYQo0xlMBpMynTiD8Pbarc0xgc2B+ye+8DuRv3zrmo6tLXyHgiiDASkCdxCeXjiDlEcYTIYoowZxhODrhRKe+5EvZBbduvyB7Dx4ZviJocHO2zscvX7oKmIMJrgONUzUEOMRCVEFcRkxTk2qhIkSJtRgNnOFFJHW7Vz/gPjGw4d+1P2xDk9vK8Iq4lJzMUoNQwtRKSIRU0FcQVwiUSZHiBayW5tjAptb7p/4/C/F2MXbLwhsbychB+IyooQYUCLQQkQOc2IoiCmIy4gySaeOIJhO53zkC5mujfPD0Tv37vTf2SWHA4hp6OeIg0RBDUJ1jqiChIp+FX0y4owalBkUMclmrmCG0nT0g4f+vfW2LjXcDsOBARkJIAZqEKYzYsqIq+hX0a8gwYlJuU7mfOQLHP+WwP0T9z8qxtf2rnMGO4nuRL+CBEEMxCRMp8Q41Zo601qEIMrnfOQLmc7bVswLR/ftu8u9ZRHXW5DQMMjRB8SBKEGUIS6jX8WgigEZCYYoIVGKuGQzV7CocuHOCx8QD/zw0H/47lgkRdoR1bBTQj+QAKIEJkVMRp+KQRWDCvo4YpSYZM5HvsDxb/F/buL+MbF/ZWi9Eu4kphODCvoJEkCMwKSISuhTMahhUEG/3dq8YL44emDfoHdLhxTxI6ZggDXvyIhJiEkRk9CnYEDGAEeCEhPUJIgzm7mCmdKFOy/8uvj6vx/6kX9TpxJphame+mUlURCTIsZnW5PQx0iUUANzPvIFjn+L/3MTn9svxlaFLtRC7cRwYEBC/2xrBkGUISFjQMGAhH6GmN3a3NN52/xY67h3b1/7HW1a0AODI0ERAzUgRyBFCDUp4gx9DAlKo5AjkCNNfdvMDVxnTUf/5NC/dt7W5g4GEJGarRETkg45AmpQxJqtMRIjXIcatlubY5qO/rkoru9d49vRSkIKEqy5za7ZGtMJiTIkGPoY4oQZ0MKgxtyPfCEzX9ajPzMU79nY4t3uomFGTEJ1KGG4g3AFoYQJNejM3jt95h9KEZs5QwnPOHroqe8vu6WldZuXBjmJEtLcIRCCOwgtRKhOEaXkjL13cz7yBU7T0b8Vucu2rerc6uc7JGJSGOARuELw9MIRIkynJErP3Hsnz/WwFziLbl02vxzNwoxESXPv3cxW6DBhBiVRSk2iRGYc3bybPmcwOaLIES5HiKxD0aFEoIahhpkaktWQpoQccliVI1zWIRuQDSJH6Aw6lQ0qm0w2mWxS2cBz0CHrkCNMDrnkkKaEmRKBqs+gRaBFmrtZJCWkKCFFCStyWJYj/Bz/+/5xqGF2wV3r/kE8sPepHyy7paV1m48HOY0SYsxsYPcEoc3MdkaiRJp19DkeGJEjihyR5Ag93VoEapiqIanZmhJS5bAkR8hMHWe2drq4P9CaDjnklkMOJcyf01qzuDDUEFdDihJSZ1oLS3Pe1PPwbfF/ZuL+34n85VtXdW4JyDukZmvNgpqOliKUmIxEKZ91tDLXw17gzJe9d/fu7e/Y1O4IemFKSNCZVwojkCOEGgyx5vI5IyaRIpAjgEnOIYYMwwNDg8lIFNQEM4gUYVJY5SE/D7bTYAcJ+6GriBIkgDghpkRMCSZHlCPOkZDQJ6GPo4+gj6APSABxkFhzv4pCQx007GMRmRtEMphsSrIpKbqkRLgclnjIycJuGvEQ3U10Jwz13P77/pFQna+5a/1XxDd/euiHXRvbPb0tiMjoY821DjkCJQymU0Q54jISvPkai3quWzMpdC8MB0yO6MyZAZJOpbDMQ14ebKfBThpqhe5ElCAOJECMM1qLcSQkJCT0n9Fa3xmtmYSGumi4hUZUNtMal01JMZqtMSnk4CE3DXtIxE10JzEcc97U8/BsDXxq4vNPiNENO9b6t7eRsIIEQwwwIUWghsGf2xqbXaGa85EvZDrnyVrHvHI0MSjXKdMJNZpQYnBiyERXiaERw0EMDYYMk5Jo8xEZWIQwg5xeuTMIMQgxKUlwEqcwCdFBI2AR8DCkCHgMPApuEBZReNDHg+28t4MHW1nYQ3WFmLT5Pi4Ss8z1hXIm89XRhOuM62S2uGZrEtGV2dYcxFBOtxZ9QWsmIQaBQUiCkzhDlDSPgmIR8AjkMJltDSzCedDLg228t4MH21jISyMqMRg5s7W++dUabEefn9iOPgvcIM4QtBDkCGE6J4YEU0aMI05n7q0SOLWDm+mMRRiNgEZADTCDMJNRndEIoxGJ6wqPKCwk816Z98pyr6L0qkpY5vHmbKc0rNFQOwn2kGAPwh0wPIhyJIB+YGCW/vk12+eno4lJnGE4QlDChEcY1SWYMqIS4gyJ0zfFiIGaYDrjEU5Ot4ZTrZEw57rCdYWFZTbbmtyrqEGVJ8Bj4CZoRKahVhJcTIJLSagLuh9RGXGg74zWBuZXa7AdfX5iO/oscJ26d3BnL1dDXIowYtLT028nsBMYQPNUMGpwGnZS3dG0NmLNezFKIpSEOQ1LUliVIk4p4pYjHinik8N+OeSXwm5qcmpSYhKYDFEFUQ1xFXEJidmfgT6gjyLBkOCIszm/UM5knjraIJ4d3NXL1RCXw4waDDHynNYGgf7mGU+URhws7HlOayYhOiURRmZac8y25pXDfjnsl0M+anJqsub/GKaMqIaYhriMBDujNTLTWoLPeVPPw3b0+Yjt6LPAdK72OpWQKoc51wmNgsRB+kDOvLFtbvuPyjBciDtxD3AXMHjGzVoMzATVCTUYM2VqKjBV6CoiKiIKTAVRCXEyc8s8+FyP9AExiqhMDCeNeKjunPML5Uzmq6Op1utUg5oclrhOqAkSA+kD6T+jtZl3ozgMF0wP7gF2ATtn/zZqthYF1QnVGTMkasowVRgaIirCCkwVURkxcvoPnVOtNX+24wRRiRgOGnHTiGfOm3oetqPPR2xHnxVKohKJzj4wNAk3KDcZNxk1GYlSxAhiBHGCOEdCRj/HXacNSxJgMShRaAYcOjQdqg5ZJ8yg1KDUZDRKESdIECQI+ij6GQb4DP0cCYYYIyanEUUKOdSgWw7Zjv5fQaISiXISJcQEM8ENykzGTcZMRqOMRJutNV/KkJGQsQszxfWD9IHGIUehmTOtaToUvblgTalJmcn+YGsDHH0McQaTUV3hYU0JutRe29E2/wfYjj4bcTKzoJEATEojmhT0Kr1+tdcnB91SWKO6BJMiRptbOGhMlXWPEnErQaeyRZVvZdJNkG6EcgOc74HjRmg3Qn43pPdD+hCVPibJd2os4mW6mxpOYjoQdSDmQMyJmAtRF0wnMR
主要的类:
#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);
}
}
原标题:分享一个《打地鼠》的小游戏,cocos2dx版本
关键词: