日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cocos2d-x游戏实例(25)-简易动作游戏(3)

發布時間:2024/4/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2d-x游戏实例(25)-简易动作游戏(3) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小滿(bill man)個人原創,歡迎轉載,轉載請注明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man

本篇進行垂直方向上的碰撞檢測,測試的方法就是把主角的初始高度設高,讓主角落至地面:


來看判斷垂直方向的碰撞的函數playermapvcollision:


前面幾句是獲得主角的位置和寬高以及獲得地圖,然后通過如下幾句獲得主角在地圖上的索引橫縱坐標并進一步獲得主角所在圖素塊的tilegid?:

indexx?=?(playerpoint.x)?/?map->getTileSize().width;

indexy?=?map->getMapSize().height?-?(playerpoint.y)?/?map->getTileSize().height;

CCPoint?playerindex?=?ccp(indexx,indexy);

int?tilegid?=?layer->tileGIDAt(playerindex);

當獲得縱坐標的時候需要注意的是縱坐標除以圖素高并不能直接獲得在地圖中的圖素縱坐標索引,因為地圖的索引是從左上角開始的,而坐標是從左下角開始,所以需要轉換一下,用整個地圖的縱坐標格數map->getMapSize().height減去我們縱坐標除以圖素高的值便是主角所在位置的縱坐標索引值。接下來獲得之前定義的“collion”值,如果“collion”值為1,那么停掉主角在縱坐標運動的標志vmove,否則vmove會被設置為1,也就是讓主角一直延縱坐標移動。


然后在update中調用playermapvcollision,然后在處理縱坐標的位移,這里只是簡單的讓主角作勻速直線運動

如有錯誤之處,希望大家多多指正

下一篇繼續簡易動作游戲實例

總結

以上是生活随笔為你收集整理的cocos2d-x游戏实例(25)-简易动作游戏(3)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。