整理SimpleAudioEngine修改记录(Android端)

Cocos2dx引擎版本:3.17.2

路径:..\cocos\audio\include\SimpleAudioEngine.h 添加方法声明

virtual void setMusicCurrentTime(int curMTime);//单位是毫秒
virtual int getMusicCurrentTime();
virtual int getMusicDuration();

 Android端

路径:..\cocos\audio\android\cddSimpleAudioEngine.cpp

void SimpleAudioEngine::setMusicCurrentTime(int curMTime) { }
int SimpleAudioEngine::getMusicCurrentTime() { }
int SimpleAudioEngine::getMusicDuration() { }

 路径:..\cocos\audio\android\jni\cddandroidAndroidJavaEngine.h

virtual void setMusicCurrentTime(int curMTime);
virtual int getMusicCurrentTime();
virtual int getMusicDuration();

路径:..\cocos\audio\android\jni\cddandroidAndroidJavaEngine.cpp

void AndroidJavaEngine::setMusicCurrentTime(int curMTime)
{
	JniHelper::callStaticVoidMethod(helperClassName, "setMusicCurrentTime", curMTime);
}

int AndroidJavaEngine::getMusicCurrentTime()
{
	return JniHelper::callStaticIntMethod(helperClassName, "getMusicCurrentTime");
}

int AndroidJavaEngine::getMusicDuration()
{
	return JniHelper::callStaticIntMethod(helperClassName, "getMusicDuration");
}

路径:..\proj.android\cocos2dx\java\src\org\cocos2dx\lib\Cocos2dxMusic.java

public void setMusicCurrentTime(int curMTime)
{
    this.mBackgroundMediaPlayer.seekTo(curMTime);
}
public long getMusicCurrentTime()
{
    return this.mBackgroundMediaPlayer.getCurrentPosition();
}
public long getMusicDuration()
{
    return this.mBackgroundMediaPlayer.getDuration();
}

路径:..\proj.android\cocos2dx\java\src\org\cocos2dx\lib\Cocos2dxHelper.java

public static void setMusicCurrentTime(int curMTime)
{
    Cocos2dxHelper.sCocos2dMusic.setMusicCurrentTime(curMTime);
}
public static int getMusicCurrentTime()
{
    return Cocos2dxHelper.sCocos2dMusic.getMusicCurrentTime();
}
public static int getMusicDuration()
{
    return Cocos2dxHelper.sCocos2dMusic.getMusicDuration();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
cocos2dx 雷电MoonWarriors_游戏源码 #include "GameLayer.h" #include "SimpleAudioEngine.h" #include "Bullet.h" #include "Resource.h" #include "Config.h" #include "Enemy.h" #include "Effect.h" #include "GameOver.h" #include "PauseLayer.h" using namespace cocos2d; using namespace CocosDenshion; bool isPaused = false; GameLayer::GameLayer():m_state(statePlaying),m_time(0),m_ship(NULL),m_backSky(NULL),m_backSkyHeight(0),m_backSkyRe(NULL),m_backTileMap(NULL),m_backTileMapHeight(0),m_backTileMapRe(NULL),m_isBackSkyReload(false),m_isBackTileReload(false),m_lbScore(NULL),m_lifeCount(NULL), m_tempScore(0) { } GameLayer::~GameLayer() { if (m_levelManager) { delete m_levelManager; } play_bullet->release(); enemy_bullet->release(); enemy_items->release(); } bool GameLayer::init() { if (!CCLayer::init()) { return false; } // 开启触摸 this->setTouchEnabled(true); // 创建数组,需要retain一下 play_bullet = CCArray::create(); play_bullet->retain(); enemy_bullet = CCArray::create(); enemy_bullet->retain(); enemy_items = CCArray::create(); enemy_items->retain(); m_state = statePlaying; Enemy::sharedEnemy(); Effect::sharedExplosion(); Config::sharedConfig()->resetConfig(); winSize = CCDirector::sharedDirector()->getWinSize(); m_levelManager = new LevelManager(this); //初始化背景 initBackground(); m_screenRec = CCRectMake(0, 0, winSize.width, winSize.height + 10); // score m_lbScore = CCLabelBMFont::create("Score:0", s_arial14_fnt); m_lbScore->setAnchorPoint(ccp(1, 0)); m_lbScore->setAlignment(kCCTextAlignmentRight); addChild(m_lbScore, 1000); m_lbScore->setPosition(winSize.width - 5, winSize.height - 30); // ship life CCTexture2D *shipTexture = CCTextureCache::sharedTextureCache()->addImage(s_ship01); CCSprite *life = CCSprite::createWithTexture(shipTexture, CCRectMake(0, 0, 60, 38)); life->setScale(0.6); life->setPosition(ccp(30,winSize.height-23)); addChild(life, 1, 5); // ship life count char lifecount[2]; sprintf(lifecount, "%d",Config::sharedConfig()->getLifeCount()); m_lifeCount = CCLabelTTF::create(lifecount, "Arial", 20); m_lifeCount->setPosition(ccp(60, winSize.height-20)); m_lifeCount->setColor(ccc3(255,0, 0)); addChild(m_lifeCount, 1000); // ship m_ship = Ship::create(); addChild(m_ship, m_ship->getZoder(), 1001); CCMenuItemImage *pause = CCMenuItemImage::create("pause.png", "pause.png", this, menu_selector(GameLayer::doPause)); pause->setAnchorPoint(ccp(1, 0)); pause->setPosition(ccp(winSize.width, 0)); CCMenu *menu = CCMenu::create(pause, NULL); menu->setAnchorPoint(ccp(0, 0)); addChild(menu, 1, 10); menu->setPosition(CCPointZero); // 调 update函数 scheduleUpdate(); // 每秒调一次 scoreCounter函数 schedule(schedule_selector(GameLayer::scoreCounter), 1); if (Config::sharedConfig()->getAudioState()) { SimpleAudioEngine::sharedEngine()->playBackgroundMusic(s_bgMusic, true); } return true; } void GameLayer::update(float dt) { if (m_state == statePlaying) { checkIsCollide(); removeInactiveUnit(dt); checkIsReborn(); updateUI(); } } void GameLayer::scoreCounter() { if (m_state == statePlaying) { m_time++; m_levelManager->loadLevelResource(m_time); } } void GameLayer::checkIsCollide() { CCObject *units; CCObject *bullets; CCObject *enemybs; CCARRAY_FOREACH(enemy_items, units) { UnitSprite *enemy = dynamic_cast<UnitSprite*>(units); CCARRAY_FOREACH(play_bullet, bullets) { UnitSprite *bullet = dynamic_cast<UnitSprite*>(bullets); if (this->collide(enemy, bullet)) { enemy->hurt(); bullet->hurt(); } if (!(m_screenRec.intersectsRect(bullet->boundingBox()))) { bullet->destroy(); } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lin&Yi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值