Cocos2d-x人物動(dòng)作類(lèi)實(shí)例
我們玩的游戲一般都可以看到精靈的運(yùn)動(dòng),游戲的世界就是一個(gè)運(yùn)動(dòng)的世界,而所有的這些動(dòng)作都可以分為一些基本的動(dòng)作和動(dòng)作的組合,今天就來(lái)學(xué)習(xí)一下動(dòng)作類(lèi)CCAction,首先看一下類(lèi)之間的繼承關(guān)系。
CCAction類(lèi)下派生了三個(gè)動(dòng)作類(lèi),執(zhí)行動(dòng)作的類(lèi)是CCNode以及它的子類(lèi),通過(guò)函數(shù)runAction()來(lái)執(zhí)行動(dòng)作,其中CCFiniteTimeAction之下是常用的瞬時(shí)動(dòng)作和延時(shí)動(dòng)作。動(dòng)作從本質(zhì)上來(lái)說(shuō)就是改變節(jié)點(diǎn)的屬性,瞬時(shí)動(dòng)作就是改變這些屬性不需要時(shí)間,瞬時(shí)就完成了,而延時(shí)動(dòng)作改變這些屬性需要一些時(shí)間,可以通過(guò)參數(shù)來(lái)設(shè)置這個(gè)時(shí)間,下面是瞬時(shí)動(dòng)作和延時(shí)動(dòng)作的例子,解釋看源代碼。點(diǎn)擊下圖查看效果。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //創(chuàng)建一個(gè)精靈 CCSprite * sprite = CCSprite::create("image.png"); sprite->setPosition(ccp(240,160)); //最后一個(gè)參數(shù)是精靈的tag,以便在眾多的子節(jié)點(diǎn)中,通過(guò)getChildByTag()找到該節(jié)點(diǎn) this->addChild(sprite,0,0); //創(chuàng)建菜單 CCMenuItemFont * fontMenu1 = CCMenuItemFont::create("start"); CCMenuItemFont * fontMenu2 = CCMenuItemFont::create("stop"); //和move函數(shù)相互綁定 CCMenuItemToggle * toggleMenu = CCMenuItemToggle::createWithTarget(this,menu_selector(HelloWorld::move), fontMenu1,fontMenu2,NULL); CCMenu * menu = CCMenu::create(toggleMenu,NULL); menu->setPosition(ccp(420,40)); this->addChild(menu); bRet = true; } while (0); return bRet; } void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //瞬時(shí)動(dòng)作CCPlace,改變了精靈的坐標(biāo),可以用sprite->setPosition(ccp(60,160))代替,但寫(xiě)成動(dòng)作可以加入到動(dòng)作序列中 CCPlace * action1 = CCPlace::create(ccp(60,160)); //瞬時(shí)動(dòng)作,使精靈做X軸的翻轉(zhuǎn) CCFlipX * action2 = CCFlipX::create(true); if(toggleMenu->getSelectedIndex() == 1) { //通過(guò)runAction精靈執(zhí)行動(dòng)作 sprite->runAction(action2); } else if(toggleMenu->getSelectedIndex() == 0) { } }
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //延時(shí)動(dòng)作,第一個(gè)參數(shù)是執(zhí)行動(dòng)作所需要的時(shí)間,moveTo是絕對(duì)的,就是移動(dòng)到哪個(gè)坐標(biāo),而moveBy是相對(duì)的 //傳入的ccp(10,0)是一個(gè)向量,精靈沿著x軸移動(dòng)了10個(gè)像素 CCMoveTo * moveTo = CCMoveTo::create(2.0,ccp(240,180)); CCMoveBy * moveBy = CCMoveBy::create(2.0,ccp(10,0)); //rotate按照一定的角度旋轉(zhuǎn),to強(qiáng)調(diào)的是結(jié)果,現(xiàn)在是0度,會(huì)旋轉(zhuǎn)到90度,如果現(xiàn)在是90度,還是會(huì)在90度 CCRotateTo * rotateTo = CCRotateTo::create(2.0,90); //by強(qiáng)調(diào)旋轉(zhuǎn)的相對(duì)角度,不論現(xiàn)在多少度都會(huì)旋轉(zhuǎn)90度,以to和by結(jié)尾的動(dòng)作類(lèi)都是相同的道理 CCRotateBy * rotateBy = CCRotateBy::create(2.0,90); if(toggleMenu->getSelectedIndex() == 1) { //通過(guò)runAction精靈執(zhí)行動(dòng)作 //sprite->runAction(moveTo); //sprite->runAction(moveBy); sprite->runAction(rotateBy); } else if(toggleMenu->getSelectedIndex() == 0) { } }
以by結(jié)尾的延時(shí)動(dòng)作都可以通過(guò)reverse()獲得它的反動(dòng)作。
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //第二個(gè)參數(shù)是跳躍的向量,第三個(gè)參數(shù)是跳躍的高度,第四個(gè)參數(shù)是跳躍的次數(shù) CCJumpBy * jumpBy = CCJumpBy::create(2.0,ccp(100,30),50,4); //以by結(jié)尾的延時(shí)動(dòng)作都可以通過(guò)reverse()獲得它的反動(dòng)作 CCActionInterval * jumpBack = jumpBy->reverse(); if(toggleMenu->getSelectedIndex() == 1) { //通過(guò)runAction精靈執(zhí)行動(dòng)作 sprite->runAction(jumpBy); } else if(toggleMenu->getSelectedIndex() == 0) { sprite->runAction(jumpBack); } }
延時(shí)動(dòng)作中還有倆個(gè)重復(fù)動(dòng)作的函數(shù),就是重復(fù)不斷的執(zhí)行某一個(gè)動(dòng)作,看下他們的繼承關(guān)系。
下面是實(shí)現(xiàn)的源代碼。
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //第一個(gè)參數(shù)傳入重復(fù)的動(dòng)作,第二個(gè)參數(shù)傳入重復(fù)的次數(shù) CCRepeat * repeat = CCRepeat::create(rotateBy,4); //永遠(yuǎn)重復(fù)執(zhí)行一個(gè)動(dòng)作 CCRepeatForever * repeatForever = CCRepeatForever::create(rotateBy); if(toggleMenu->getSelectedIndex() == 1) { //通過(guò)runAction精靈執(zhí)行動(dòng)作 sprite->runAction(repeatForever); } else if(toggleMenu->getSelectedIndex() == 0) { } }
下面再列舉一下基本常用的瞬時(shí)動(dòng)作和延續(xù)動(dòng)作。
瞬時(shí)動(dòng)作:
放置Place:效果類(lèi)似于 setPosition = ccp(x, y)。
隱藏Hide:效果類(lèi)似于setVisible:false。
顯示Show:效果類(lèi)似于setVisible:true。
可見(jiàn)切換:ToggleVisibility。
延時(shí)動(dòng)作:
移動(dòng)到CCMoveTo
移動(dòng)CCMoveBy
跳躍到CCJumpTo設(shè)置終點(diǎn)位置和跳躍的高度和次數(shù)。
跳躍CCJumpBy設(shè)置終點(diǎn)位置和跳躍的高度和次數(shù)。
貝塞爾CCBezierBy支持 3 次貝塞爾曲線(xiàn):P0-起點(diǎn),P1-起點(diǎn)切線(xiàn)方向,P2-終點(diǎn)切線(xiàn)方向,P3-終點(diǎn)。
放大到CCScaleTo設(shè)置放大倍數(shù),是浮點(diǎn)型。
放大CCScaleBy
旋轉(zhuǎn)到CCRotateTo
旋轉(zhuǎn)CCRotateBy
閃爍CCBlink設(shè)定閃爍次數(shù)
色調(diào)變化到CCTintTo
色調(diào)變換CCTintBy
變暗到CCFadeTo
由無(wú)變亮CCFadeIn
由亮變無(wú)CCFadeOut
每個(gè)函數(shù)的具體用法請(qǐng)大家自行試驗(yàn)。
接下來(lái)說(shuō)一下同步動(dòng)作序列和順序動(dòng)作序列。同步動(dòng)作序列,就是幾個(gè)動(dòng)作同時(shí)執(zhí)行,順序動(dòng)作序列,就是傳入的幾個(gè)動(dòng)作按照順序順序執(zhí)行。以下是他們的繼承關(guān)系圖。
接下來(lái)看一下實(shí)現(xiàn)的源代碼
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //創(chuàng)建如下幾個(gè)動(dòng)作 CCMoveBy * move = CCMoveBy::create(2.0,ccp(100,0)); CCRotateBy * rotate = CCRotateBy::create(2.0,720); CCFiniteTimeAction * moveBack = move->reverse(); CCFiniteTimeAction * rotateBack = rotate->reverse(); CCFlipY * flip = CCFlipY::create(true); //同步動(dòng)作序列,傳入的幾個(gè)動(dòng)作同時(shí)執(zhí)行,執(zhí)行的整個(gè)時(shí)間是最長(zhǎng)的一個(gè)動(dòng)作的執(zhí)行時(shí)間,參數(shù)類(lèi)型是CCFiniteTimeAction //傳入的動(dòng)作(動(dòng)作的實(shí)質(zhì)就是改變節(jié)點(diǎn)的屬性)所影響的屬性不要有沖突 CCSpawn * spawn = CCSpawn::create(move,rotate,NULL); CCSpawn * spawnBack = CCSpawn::create(moveBack,rotateBack,NULL); //順序動(dòng)作序列,傳入的幾個(gè)動(dòng)作按照傳入的順序順序執(zhí)行,執(zhí)行的整體時(shí)間是所有動(dòng)作的時(shí)間之和 CCSequence * sequence = CCSequence::create(move,rotate,flip,NULL); CCSequence * sequenceBack = CCSequence::create(moveBack,rotateBack,flip->reverse(),NULL); if(toggleMenu->getSelectedIndex() == 1) { sprite->runAction(spawn); //sprite->runAction(sequence); } else if(toggleMenu->getSelectedIndex() == 0) { sprite->runAction(spawnBack); //sprite->runAction(sequenceBack); } }
接下來(lái)介紹CCAction的另外來(lái)個(gè)子類(lèi),CCFollow實(shí)現(xiàn)鏡頭跟隨的效果,類(lèi)似于我們?cè)跈M版過(guò)關(guān)游戲中看到的人物永遠(yuǎn)在屏幕中間,而背景在移動(dòng),不過(guò)它們的實(shí)現(xiàn)具體是不是靠這個(gè)類(lèi)就不知道了。CCSpeed可以實(shí)現(xiàn)快進(jìn)和慢放的效果,就是改變了執(zhí)行的速度。以下是源代碼。
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //創(chuàng)建如下幾個(gè)動(dòng)作 CCMoveBy * move = CCMoveBy::create(2.0,ccp(100,0)); CCRotateBy * rotate = CCRotateBy::create(2.0,720); CCFiniteTimeAction * moveBack = move->reverse(); CCFiniteTimeAction * rotateBack = rotate->reverse(); CCFlipY * flip = CCFlipY::create(true); //同步動(dòng)作序列,傳入的幾個(gè)動(dòng)作同時(shí)執(zhí)行,執(zhí)行的整個(gè)時(shí)間是最長(zhǎng)的一個(gè)動(dòng)作的執(zhí)行時(shí)間,參數(shù)類(lèi)型是CCFiniteTimeAction //傳入的動(dòng)作(動(dòng)作的實(shí)質(zhì)就是改變節(jié)點(diǎn)的屬性)所影響的屬性不要有沖突 CCSpawn * spawn = CCSpawn::create(move,rotate,NULL); CCSpawn * spawnBack = CCSpawn::create(moveBack,rotateBack,NULL); //順序動(dòng)作序列,傳入的幾個(gè)動(dòng)作按照傳入的順序順序執(zhí)行,執(zhí)行的整體時(shí)間是所有動(dòng)作的時(shí)間之和 CCSequence * sequence = CCSequence::create(move,rotate,flip,NULL); CCSequence * sequenceBack = CCSequence::create(moveBack,rotateBack,flip->reverse(),NULL); //CCFollow實(shí)現(xiàn)一個(gè)節(jié)點(diǎn)跟隨一個(gè)節(jié)點(diǎn)運(yùn)動(dòng),傳入的參數(shù)是要跟隨的節(jié)點(diǎn) CCFollow * follow = CCFollow::create(sprite); //執(zhí)行這個(gè)動(dòng)作的是要跟隨的節(jié)點(diǎn),一般是層,效果累世于橫版過(guò)關(guān)游戲中的場(chǎng)景 this->runAction(follow); if(toggleMenu->getSelectedIndex() == 1) { sprite->runAction(spawn); //sprite->runAction(sequence); } else if(toggleMenu->getSelectedIndex() == 0) { sprite->runAction(spawnBack); //sprite->runAction(sequenceBack); } }
以下是CCSpeed的實(shí)現(xiàn),在上述代碼的基礎(chǔ)上做了一點(diǎn)修改。
void HelloWorld::move(CCObject* pSender) { //通過(guò)tag獲得添加的精靈 CCSprite * sprite = (CCSprite *)this->getChildByTag(0); CCMenuItemToggle * toggleMenu = (CCMenuItemToggle *)pSender; //創(chuàng)建如下幾個(gè)動(dòng)作 CCMoveBy * move = CCMoveBy::create(2.0,ccp(100,0)); CCRotateBy * rotate = CCRotateBy::create(2.0,720); CCFiniteTimeAction * moveBack = move->reverse(); CCFiniteTimeAction * rotateBack = rotate->reverse(); CCFlipY * flip = CCFlipY::create(true); //同步動(dòng)作序列,傳入的幾個(gè)動(dòng)作同時(shí)執(zhí)行,執(zhí)行的整個(gè)時(shí)間是最長(zhǎng)的一個(gè)動(dòng)作的執(zhí)行時(shí)間,參數(shù)類(lèi)型是CCFiniteTimeAction //傳入的動(dòng)作(動(dòng)作的實(shí)質(zhì)就是改變節(jié)點(diǎn)的屬性)所影響的屬性不要有沖突 CCSpawn * spawn = CCSpawn::create(move,rotate,NULL); CCSpawn * spawnBack = CCSpawn::create(moveBack,rotateBack,NULL); //順序動(dòng)作序列,傳入的幾個(gè)動(dòng)作按照傳入的順序順序執(zhí)行,執(zhí)行的整體時(shí)間是所有動(dòng)作的時(shí)間之和 CCSequence * sequence = CCSequence::create(move,rotate,flip,NULL); CCSequence * sequenceBack = CCSequence::create(moveBack,rotateBack,flip->reverse(),NULL); //CCFollow實(shí)現(xiàn)一個(gè)節(jié)點(diǎn)跟隨一個(gè)節(jié)點(diǎn)運(yùn)動(dòng),傳入的參數(shù)是要跟隨的節(jié)點(diǎn) CCFollow * follow = CCFollow::create(sprite); //執(zhí)行這個(gè)動(dòng)作的是要跟隨的節(jié)點(diǎn),一般是層,效果累世于橫版過(guò)關(guān)游戲中的場(chǎng)景 this->runAction(follow); //CCSpeed分裝了一個(gè)動(dòng)作類(lèi),第二個(gè)參數(shù)是要改變的速度的倍數(shù) CCSpeed * speed1 = CCSpeed::create(spawn,2.0); CCSpeed * speed2 = CCSpeed::create(spawnBack,2.0); if(toggleMenu->getSelectedIndex() == 1) { sprite->runAction(speed1); //sprite->runAction(sequence); } else if(toggleMenu->getSelectedIndex() == 0) { sprite->runAction(speed2); //sprite->runAction(sequenceBack); } }
以下再來(lái)介紹一下CCCallFunc家族類(lèi)的使用方法,它們也是一個(gè)動(dòng)作類(lèi),一般用在順序動(dòng)作序列中執(zhí)行的最后一個(gè)動(dòng)作,目的是調(diào)用一個(gè)函數(shù),來(lái)完成一些功能。以下是這些類(lèi)的繼承關(guān)系。
接下來(lái)貼上源代碼,注釋是對(duì)各個(gè)類(lèi)的使用的詳細(xì)講解。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSprite * sprite = CCSprite::create("image.png"); sprite->setPosition(ccp(240,160)); this->addChild(sprite,0,0); //創(chuàng)建一個(gè)菜單,添加一個(gè)run事件 CCMenuItemFont * fontMenu = CCMenuItemFont::create("begin",this,menu_selector(HelloWorld::run)); CCMenu * menu = CCMenu::create(fontMenu,NULL); menu->setPosition(ccp(400,40)); this->addChild(menu); bRet = true; } while (0); return bRet; } void HelloWorld::run(CCObject* pSender) { CCSprite * sprite = (CCSprite *)this->getChildByTag(0); //創(chuàng)建延時(shí)動(dòng)作 CCRotateBy * rotate = CCRotateBy::create(2.0,3*360); //CCCallFunc,為這個(gè)動(dòng)作綁定一個(gè)函數(shù),執(zhí)行這個(gè)動(dòng)作的時(shí)候會(huì)調(diào)用這個(gè)函數(shù),創(chuàng)建以下四個(gè)動(dòng)作的時(shí)候使用了不同的選擇器,但名字和各個(gè)動(dòng)作有關(guān) CCCallFunc * func = CCCallFunc::create(this,callfunc_selector(HelloWorld::show)); //CCCallFuncN(N就是node的意思),與上邊不同的是,綁定的函數(shù)需要一個(gè)參數(shù),這個(gè)傳入的參數(shù)就是執(zhí)行這個(gè)動(dòng)作的節(jié)點(diǎn) CCCallFuncN * funcN = CCCallFuncN::create(this,callfuncN_selector(HelloWorld::remove)); int num = 10; //CCCallFuncND(D就是data的意思),這次綁定的函數(shù),不僅需要綁定動(dòng)作的節(jié)點(diǎn)作為參數(shù)傳遞,還帶了一個(gè)void *類(lèi)型的參數(shù),代表可以是任何類(lèi)型 CCCallFuncND *funcND = CCCallFuncND::create(this,callfuncND_selector(HelloWorld::showData),(void *)num); CCSprite * sprite2 = CCSprite::create("image2.png"); //CCCallFuncO(O就是object的意思)這次需要傳入的參數(shù)是CCObject *類(lèi)型的 CCCallFuncO * funcO = CCCallFuncO::create(this,callfuncO_selector(HelloWorld::showSprite),sprite2); //創(chuàng)建順序動(dòng)作序列 //CCSequence * sequence = CCSequence::create(rotate,func,funcND,NULL); //CCSequence * sequence = CCSequence::create(rotate,func,funcN,NULL); CCSequence * sequence = CCSequence::create(rotate,func,funcN,funcO,NULL); sprite->runAction(sequence); } //以下函數(shù)不要忘記在頭文件中聲明,注意每個(gè)函數(shù)的參數(shù) void HelloWorld::show() { CCLabelTTF * ttf = CCLabelTTF::create("action end","Arial",32); ttf->setPosition(ccp(240,260)); this->addChild(ttf); } void HelloWorld::remove(CCNode * node) { //沒(méi)有通過(guò)getChildByTag()函數(shù)獲得執(zhí)行動(dòng)作的精靈,而是使用remove傳來(lái)的參數(shù) CCSprite * sprite = (CCSprite *)node; //true表示sprite不僅會(huì)移除,而且這個(gè)節(jié)點(diǎn)上的所有操作和回調(diào)都將刪除 sprite->removeFromParentAndCleanup(true); //通過(guò)以下的方法可以實(shí)現(xiàn)相同的效果,只是函數(shù)執(zhí)行的對(duì)象不同 //this->removeChild(sprite,true); } void HelloWorld::showData(CCNode * node,void * data) { CCSprite * sprite = (CCSprite *)node; this->removeChild(sprite,true); CCLog("num = %d",data); } void HelloWorld::showSprite(CCObject * sender) { CCSprite * sprite = (CCSprite *)sender; sprite->setPosition(ccp(240,160)); this->addChild(sprite); }
上一篇:Cocos2d-x中實(shí)現(xiàn)彈出對(duì)話(huà)框示例
欄 目:C語(yǔ)言
下一篇:Cocos2d-x保存用戶(hù)游戲數(shù)據(jù)CCUserDefault類(lèi)使用實(shí)例
本文標(biāo)題:Cocos2d-x人物動(dòng)作類(lèi)實(shí)例
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3383.html
您可能感興趣的文章
- 01-10VC++角色游戲中的人物初始化模塊代碼實(shí)例
- 01-10Cocos2d-x學(xué)習(xí)入門(mén)之HelloWorld程序
- 01-10Cocos2d-x學(xué)習(xí)筆記之Hello World!
- 01-10Cocos2d-x UI開(kāi)發(fā)之場(chǎng)景切換代碼實(shí)例
- 01-10Cocos2d-x學(xué)習(xí)筆記之Hello World源碼分析
- 01-10Cocos2d-x UI開(kāi)發(fā)之CCControlSlider控件類(lèi)使用實(shí)例
- 01-10Cocos2d-x學(xué)習(xí)筆記之CCLayerColor層的使用實(shí)例
- 01-10cocos2d-x學(xué)習(xí)筆記之CCLayer、CCLayerColor、CCLayerGradient、CCLayerMu
- 01-10Cocos2d-x UI開(kāi)發(fā)之CCControlSwitch控件類(lèi)使用實(shí)例
- 01-10Cocos2d-x學(xué)習(xí)筆記之CCScene、CCLayer、CCSprite的默認(rèn)坐標(biāo)和默認(rèn)錨點(diǎn)實(shí)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫(xiě)分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫(xiě)函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒(méi)有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10delphi制作wav文件的方法