真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

[cocos2d-x]地圖的應(yīng)用-創(chuàng)新互聯(lián)

前言:

cocos2d-x地圖的應(yīng)用最典型的例子就是塔防類游戲,下面我們就來簡單學(xué)習(xí)一下地圖的應(yīng)用吧!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供萬榮企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、做網(wǎng)站、H5建站、小程序制作等業(yè)務(wù)。10年已為萬榮眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

工具應(yīng)用介紹:

我們應(yīng)用的地圖編輯軟件是Tiled,一款免費(fèi)的軟件,首先是文件->新文件,然后地圖->新圖塊導(dǎo)入圖片資源,然后就可以在地圖上繪制。

Tiled有四種方式可以編輯瓷磚地圖,菜單位于軟件界面的右上角。 
Stamp Brush(快捷鍵 B),可以把當(dāng)前從瓷磚集中選擇的瓷磚畫在地圖上; 
Bucket Fill(快捷鍵 F),可以填充空白區(qū)域或者由相同瓷磚連接起來的區(qū) 域; 
Eraser(快捷鍵 E),用于擦掉瓷磚; 
Rectangular Select(快捷鍵 R), 你可以選擇一個(gè)區(qū)域,然后用Ctrl+c或者菜單項(xiàng)Edit > Copy來復(fù)制選中的區(qū)域, 接著Ctrl+v或者菜單項(xiàng)Edit > Paste粘貼到當(dāng)前鼠標(biāo)在地圖上所處的位置 – 在實(shí)際使用中你會看到,其實(shí)在粘貼時(shí),軟件是自動(dòng)卻換到了Stamp Brush模式 進(jìn)行粘貼的。還有個(gè)小技巧,如果想清除當(dāng)前的瓷磚選擇,只要鼠標(biāo)右鍵點(diǎn)擊一下就可以了。 

友情提醒:

一個(gè)圖層上面不得使用兩個(gè)圖片上的資源,不然后面調(diào)用的代碼編譯會報(bào)錯(cuò);

其次就是將圖片資源和生成的tmx文件要保持在同級路徑下,不然后面代碼也會報(bào)錯(cuò),當(dāng)然也可以修改tmx下的圖片資源路徑來解決問題。

簡單應(yīng)用:

1.點(diǎn)擊屏幕獲取坐標(biāo)點(diǎn)

bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent) {     CCPoint point = this->tilePosFromLocation(pTouch->getLocation(), (CCTMXTiledMap *)this->getChildByTag(1));     CCLog("%f,%f",point.x,point.y);     return true; }  CCPoint HelloWorld:: tilePosFromLocation(CCPoint location,CCTMXTiledMap *tileMap) {     //pos是地圖上的坐標(biāo),當(dāng)前屏幕的坐標(biāo)+地圖的偏移量     CCPoint pos = ccpSub(location, tileMap->getPosition());     pos.x = (int)(pos.x / tileMap->getTileSize().width);     //(地圖總塊數(shù)*每塊的像素 - 現(xiàn)在的y坐標(biāo))/ 每塊的像素     //getMapSize().height是地圖高度的瓷磚數(shù)     pos.y = (int)(((tileMap->getMapSize().height * tileMap->getTileSize().height - pos.y)) / tileMap->getTileSize().height);     CCLog("%f,%f",pos.x,pos.y);     return pos; }

2.鼠標(biāo)點(diǎn)擊地圖,會顯示對應(yīng)的瓷磚塊的屬性

//獲取瓷磚的屬性     CCPoint playerindex = ccp(a,b);     //根據(jù)坐標(biāo)點(diǎn)獲取GID     int tiledid = layer->tileGIDAt(playerindex);     if (tiledid > 0) {   //根據(jù)GID獲取指定瓷磚塊的屬性         CCDictionary *tiledic = (CCDictionary *)tileMap->propertiesForGID(tiledid);         //判斷瓷磚塊是否有屬性,如果有就用它的屬性,如果沒有         if (tiledic) {             CCString * value = (CCString *)tiledic->objectForKey("isTree");             int va = value->intValue();             if (va == 1) {                 CCLog("這是一棵樹");             }         }         else         {             CCLog("該瓷磚快沒有屬性");         }     }

[cocos2d-x]地圖的應(yīng)用

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


標(biāo)題名稱:[cocos2d-x]地圖的應(yīng)用-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://weahome.cn/article/doggci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部