基于cocos2d-x的跨平台游戏的设计与实现毕业论文(编辑修改稿)内容摘要:

到项目目录下,否则在项目进行的过程中会报错。 资源文件尽量不要用中文命名,有时会出现字符编码的错误。 游戏主欢迎页的实现 用户在进去游戏的时候,会首先进入到欢迎页面(图 )。 淄 博职业学院信息工程系毕业设计 10 图 欢迎页是为了对资源,即图片资源和音乐资源进行预加载,图片资源和音乐资源相对较大 ,进入游戏后在加载比较慢,对游戏体验会造成一定影响,所以在欢迎页面进行预加载,进入游戏后可以享受较好的体验,不会因为加载资源而造成游戏卡的问题。 加载资源代码如下: //加载音乐资源 PreloadMusic()。 void WeleLayer::PreloadMusic() { CocosDenshion::SimpleAudioEngine::sharedEngine()preloadBackgroundMusic(sound/)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/bulle)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/enemy)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/enemy)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/enemy)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/game_)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/get_b)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/get_d)。 淄 博职业学院信息工程系毕业设计 11 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/use_b)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/big_s)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/achie)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/out_p)。 CocosDenshion::SimpleAudioEngine::sharedEngine()preloadEffect(sound/butto)。 CocosDenshion::SimpleAudioEngine::sharedEngine()playBackgroundMusic(sound/,true)。 } 这是做一个检测,可以不添加,但是为了保证代码的健壮性要添加: bool bRet=false。 do { CC_BREAK_IF(!CCLayer::init())。 、、 bRet=true。 } while (0)。 return bRet。 游戏主场景 游戏主场景是为添加的精灵提供一个层,所有的精灵都是在这个层上进行添加。 游戏主角类 创建游戏主角后,然他在进入游戏后闪烁三次 ,主角在进行飞行的时候让尾巴的烟火一长一短,显示正在飞行,这里是通过两个图片不断交替显示完 成的。 //创建 CCBlink 效果 CCBlink *blink=CCBlink::create(1,3)。 // CCAnimation* animation=CCAnimation::create()。 淄 博职业学院信息工程系毕业设计 12 //通过 .png 和 .plist文件创建精灵表 //animationaddSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()spriteFrameByName())。 //animationaddSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()spriteFrameByName())。 //从本地文件系统中加载图片文件到 CCSpriteFrame中区,然后添加到 CCAnimation中 for (int i = 1。 i 3。 i++) { char szImageFileName[128] = {0}。 sprintf(szImageFileName, hero%, i)。 animationaddSpriteFrameWithFileName(szImageFileName)。 CC_BREAK_IF(!animation)。 } animationsetDelayPerUnit()。 CCAnimate* animate=CCAnimate::create(animation)。 planerunAction(blink)。 planerunAction(CCRepeatForever::create(animate))。 主角在飞行的时候会发射子弹,所 以要添加子弹,同时发射子弹的时候还有子弹的音效 CocosDenshion::SimpleAudioEngine::sharedEngine()playEffect(sound/p3)。 CCSprite* bullet=CCSprite::createWithSpriteFrameName()。 bulletBatchNodeaddChild(bullet)。 //thisaddChild(bullet)。 thism_pAllBulletaddObject(bullet)。 CCPoint planePosition=PlaneLayer::sharedPlanegetChildByTag(AIRPLANE)getPosition()。 CCPoint bulletPosition=ccp(,+PlaneLayer::sharedPlanegetChildByTag(AIRPLANE)getContentSize().height/2)。 bulletsetPosition(bulletPosition)。 float length=CCDirector::sharedDirector()getWinSize().height+bulletgetContentSize().height/。 float velocity=320/1。 //320pixel/sec float realMoveDuration=length/velocity。 淄 博职业学院信息工程系毕业设计 13 CCFiniteTimeAction* actionMove=CCMoveTo::create(realMoveDuration,ccp(,CCDirector::sharedDirector()getWinSize().height+bulletgetContentSize().height/2))。 CCFiniteTimeAction* actionDone=CCCallFuncN::create(this,callfuncN_selector(BulletLayer::bulletMoveFinished))。 CCSequence* sequence=CCSequence::create(actionMove,actionDone,NULL)。 bulletrunAction(sequence)。 由于子弹的发射是有间隔的,设置一个 schedule,有规律的调用 AddBullet函数,是子弹发射; void BulletLayer::StartShoot(float delay) { thisschedule(schedule_selector(BulletLayer::AddBullet),kCCRepeatForever,delay)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。