cocos2d-x游戏实例(10)-塔防游戏(修改地图图素,地图整体缩放)
小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
塔防游戲在目前的智能機游戲中占據很重要的部分,本篇介紹塔防游戲的兩個功能模塊在cocos2d-x中的實現。分別是修改地圖圖素及地圖整體縮放
1.修改地圖圖素
修改地圖圖素,即我們在地圖的某一位置上新建某個東西,比如要建我們塔防游戲中的“塔”,我們其實有兩種辦法,一種是新建某個CCSprite,并使用addChild把它加入到地圖中,一種是直接在圖素上進行修改,我采取第二種做法,因為當“塔”被建好時,它其實也算是地圖的一部分了,這樣處理對于處理地圖碰撞各方面會更好。我們來看一下代碼:
可以看到,我采用的還是ccTouchesBegan處理觸摸事件,首先獲得我們觸摸屏幕的位置,然后通過之前我們實現的convertto2d函數(請參看我之前的博客文章)把屏幕的坐標轉換為地圖索引坐標,然后獲得我們的草地層,并在層中用setTileGID把我們的這個圖素設置為新的我們需要的,第一個參數為要設置的gid的值,第二個參數為我們獲得的地圖上索引的位置。這樣就完成了,設置替換圖素的功能。
然后我們要加入一些內容,因為我們的“塔”不可能憑空被建設出來,需要一個過程的渲染,我們可以通過如下代碼加入動畫。
我們先定義一個動作,然后通過tileAt獲得這個圖素的CCSprite,參數為我們獲得的地圖上索引的位置。然后我們把動作掛在這個CCSprite就可以了。
2.地圖整體縮放
在塔防游戲中,要有一個我們需要實現的功能,就是地圖視角的整體縮放,下面的代碼實現地圖縮放
map->runAction(?CCScaleBy::actionWithDuration(2,?0.5f)?)?;
直接一句話就可以實現這個功能,就是通過CCScaleby,來實現我們的地圖的縮放功能。但是我們還需要在視角處理上再處理一下,代碼如下:
由于我們通過getContentSize不能獲得地圖縮放后的大小,我們需要getScale獲得地圖的縮放比例,然后讓我們獲得的長寬乘以縮放比例獲得地圖大小,再通過我們之前的視角跟隨方法控制地圖位置即可。
如有錯誤之處,希望大家多多指正
下一篇繼續游戲實例
總結
以上是生活随笔為你收集整理的cocos2d-x游戏实例(10)-塔防游戏(修改地图图素,地图整体缩放)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2d-x游戏实例(9)-A星算
- 下一篇: cocos2d-x游戏实例(11)-触屏