接下來講解enemy的初始化和隨玩家移動的生命條:
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設、成都網(wǎng)站設計與策劃設計,昆玉網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:昆玉等地區(qū)。昆玉做網(wǎng)站價格咨詢:18982081108#ifndef _ENEMY_H_
#define _ENEMY_H_
#include"cocos2d.h"
#include"core/Weapon.h"
#define MaxBuf 20
using namespace cocos2d;
class Enemy:public CCNode
{
public:
Enemy(void);
~Enemy(void);
CCPoint position;
int startGID;
int index;
bool isRemoveTileEnemy;
bool isRemoveTile;
bool removeTile();
CCPoint getEnemyPosition();
void setEnemyPosition(CCPoint initEnemyPosition);
Behaviour getBehaviour();
void setBehaviour (Behaviour be);
void setRemoveTile(bool isRemoveTile);
CCSprite* tempEnemy;
CCSprite* getEnemy();
static Enemy * setEnemy();
private:
bool initT();
Behaviour be;
CCPoint initPosition;
};
class EnemyHPBar:public CCNode
{
public:
EnemyHPBar(void);
static EnemyHPBar* setHP(CCPoint spritePosition,CCTMXTiledMap* map,int i);
CCSprite* uiSprite;
CCSprite* getHPBar();
int enemyLife[MaxBuf];
void setEnemyLife(int life,int i);
int getEnemyLife(int i);
void printHP(int i);
private:
bool initHP(CCPoint spritePosition,CCTMXTiledMap* map,int i);
void updateEnemy(ccTime dt);
};
#endif
以上分兩個類
分別是enemy和enemyHP的處理
#include"enemy.h"
#include"cocos2d.h"
Enemy::Enemy(void)
{
isRemoveTile=false;
}
Enemy::~Enemy(void)
{
}
Enemy* Enemy::setEnemy()
{
Enemy * t = new Enemy();
if(t && t->initT())
return t;
return NULL;
}
bool Enemy::initT()
{
bool bRet = false;
do
{
CCTexture2D* enemy=CCTextureCache::sharedTextureCache()->addImage("buouguai.png");
tempEnemy=CCSprite::spriteWithTexture(enemy,CCRectMake(0,0,81,81));
//tempEnemy->setPosition(CCPointZero);
tempEnemy->setScale(0.7f);
//tempEnemy->setAnchorPoint(CCPointZero);
bRet = true;
} while (0);
return bRet;
}
CCSprite* Enemy::getEnemy()
{
return this->tempEnemy;
}
bool Enemy::removeTile()
{
return this->isRemoveTile;
}
void Enemy::setRemoveTile(bool isRemoveTile)
{
this->isRemoveTile=isRemoveTile;
}
Behaviour Enemy::getBehaviour()
{
return this->be;
}
void Enemy::setBehaviour(Behaviour be)
{
this->be = be;
}
CCPoint Enemy::getEnemyPosition()
{
return this->initPosition;
}
void Enemy::setEnemyPosition(CCPoint initPosition)
{
this->initPosition=initPosition;
}
//==========================================class EnemyHPBar=============================================
EnemyHPBar::EnemyHPBar(void)
{
for(int i=0;i { enemyLife[i]=100; //CCLOG("~%d:%d",i,enemyLife[i]); } } EnemyHPBar* EnemyHPBar::setHP(CCPoint spritePosition,CCTMXTiledMap* map,int i) { EnemyHPBar * t = new EnemyHPBar(); if(t && t->initHP(spritePosition,map,i)) return t; return NULL; } bool EnemyHPBar::initHP(CCPoint spritePosition,CCTMXTiledMap* map,int i) { bool bRet = false; do { CCTexture2D* ui=CCTextureCache::sharedTextureCache()->addImage("boss_hpbar.png"); uiSprite=CCSprite::spriteWithTexture(ui,CCRectMake(0,0,i/2,5)); CCPoint uiPosition=ccpAdd(spritePosition,ccp(0,50)); uiSprite->setPosition(uiPosition); bRet = true; } while (0); return bRet; } CCSprite* EnemyHPBar::getHPBar() { return this->uiSprite; } int EnemyHPBar::getEnemyLife(int i) { return this->enemyLife[i];// } void EnemyHPBar::setEnemyLife(int life,int i) { this->enemyLife[i]=life; } void EnemyHPBar::printHP(int i) { //CCLOG("enemyLife[%d]=%d",i,enemyLife[i]); } void EnemyHPBar::updateEnemy(ccTime dt) { CCLOG("updateEnemy"); } 基本上實現(xiàn)了,隨敵人移動的生命條的功能,利用數(shù)組保存每個敵人的生命值,通過編號對指定的enemy進行處理,比如說敵人要***5下,玩家先***了三下,再打了其他敵人幾下,及回過來只要打兩下就行了。具體的實現(xiàn)下一篇將會處理,有問題歡迎留言。 另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享題目:Cocos2D-X系列之RPG橫版過關游戲完整版實例5-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/jpjop.html