青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  117 Posts :: 2 Stories :: 61 Comments :: 0 Trackbacks

常用鏈接

留言簿(8)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜


    斜角地圖其實是平面地圖的一種變化,它是將拼接地圖的圖塊內容,由原先的四方形圖案改變成由45度角俯瞰四方形圖案時的菱形圖案,由這些菱形圖案所拼接完成后的地圖,就是一張由45度角俯瞰的斜角地圖了。
    斜角地圖拼接方法同樣也是使用與平面地圖一樣的行與列的方法,事實上它們的原理是一樣的。但是由于地圖拼接時只要取位圖中的菱形部分,因此在貼圖坐標的計算會有所不同,下面就來說明菱形圖塊在貼圖時的差異,如下圖所示,其中的數字式圖塊的編號。

    上圖中的左邊是四方形圖塊的拼接,而右邊的則是菱形圖塊的拼接。四方形圖塊拼接方法時:圖塊編號換算成行編號與列編號再換算成貼圖坐標。對于斜角地圖拼接來說,這些步驟都是一樣的,但是在換算貼圖坐標時,由于只要顯示圖塊中的菱形部分,因此在貼圖排列的方式上會有不同,因而貼圖坐標的計算公式也就不一樣了。
    此外,在合并兩個圖塊的菱形部分時,還需要加上一步透明的步驟,不然若直接按照求得的貼圖坐標來進行貼圖,其效果就會如下圖所示:

    接下來看看斜角地圖拼接時,各個圖塊編號與實際排列的情形,如下圖所示:

    上圖同樣是一張4×3個小圖塊所拼接而成的地圖,其中的數字式圖塊編號。對于每一圖塊首先必須算出它的行編號與列編號,然后才能計算它實際的貼圖坐標,計算行列編號的方法與隨筆“游戲地圖制作——平面地圖貼圖”所使用的公式一樣,即:

列編號 = 索引值 / 每一列的圖塊個數(行數);
行編號 = 索引值 % 每一列的圖塊個數(行數);

    求出行編號與列編號后,就可以計算出圖塊貼圖時左上點的坐標,除此之外,還需要知道圖塊中菱形部分的長度與高度,這里假設圖塊中菱形的寬與高分別是w和h,如下圖所示:

    那么圖塊左上點貼圖坐標的計算公式如下:

左上點X坐標 = xstart + 行編號 ×(w/2) - 列編號×(w/2);
左上點Y坐標 = ystart + 列編號 ×(h/2 )- 行編號×(h/2);


    公式中的xstart與ystart是代表第一張圖塊左上角貼圖坐標的位置,以下圖來說明這個公式:

    圖中以紅線框來表示圖塊真正的矩形范圍,在進行貼圖時,首先要定義第1張圖塊的貼圖位置,其他圖塊的貼圖坐標再由此圖塊向下延伸。現在假設給定圖塊0的貼圖坐標是(xstart,ystart),那么接下來考慮圖塊1的矩形范圍,它左上角貼圖的坐標則是(xstart+w/2,ystart+h/2),考慮圖塊2的矩形范圍,它左上角貼圖的坐標又變成(xstart+w/2×2,ystart+h/2×2)。依次類推,再加入行編號與列編號,可以得到下面的這個求圖塊貼圖坐標的公式:

左上點X坐標 = xstart + 行編號 ×(w/2);
左上點Y坐標 = ystart + 列編號 ×(h/2 );


    但是要注意一點,這是當圖塊都在屬于同一列的情況。考慮下一列的圖塊4,圖塊4的左上角貼圖坐標是(xstart-w/2,ystart+h/2),而圖塊5的左上角貼圖坐標是(xstart-w/2+w/2,ystart+h/2+h/2),圖塊6的左上角貼圖坐標為(xstart-w/2+w/2×2,ystart+h/2+h/2×2),依次類推,可看出同一列上坐標變化規律都是一樣的,貼圖坐標都是往右下方遞增半個圖塊的長于高單位。
    如果是在同一行(圖塊0、4、8)上的坐標變化則是往左下方遞減半個圖塊的長(X軸方向)以及遞增半個圖塊的高(Y軸方向),因此利用圖塊的行編號與列編號便得出了前面的貼圖坐標公式。
    計算出每個圖塊的坐標并完成了斜角地圖的拼接后,此時要將整塊地圖貼到窗口中,還需要知道地圖的寬度與高度,計算的方法可以通過下圖進行說明:
   

    由上面可以很容易的推導出整張地圖的寬與高計算公式如下:

地圖寬 = (列數+行數)×(w/2);
地圖高 = (列數+行數)×(h/2 );


    在了解了關于斜角地圖拼接的方法之后,接下來的這個范例將上一小節里的平面拼接地圖轉換成以45度角俯視的斜角地圖。

范例ch2_10:從文件中加載位圖,并顯示在窗口上。
下載地址:ch2_10(上傳到windows live空間,可能需要MSN賬號登陸)
說明:程序源代碼中有相關的注釋。
程序運行結果如下圖:
 


PS:如想獲得更多關于Visual C++游戲開發的內容,可點擊隨筆:《Visual C++游戲編程基礎》學習筆記——索引隨筆
posted on 2010-04-09 12:02 煙皚 閱讀(4536) 評論(3)  編輯 收藏 引用 所屬分類: 《Visual C++游戲編程基礎》學習筆記

Feedback

# re: 游戲地圖制作——斜角地圖貼圖 2010-04-10 10:23 func
其實圖片沒必要用菱形拼接,矩形塊照樣能得到斜45度效果。
遮擋的時候,有些算法,邏輯上可能用用到菱形底座對比物體的前后。
遮擋算法的漏洞,可以用障礙避免。  回復  更多評論
  

# 斜角地圖貼圖 2011-05-05 19:23 3rf
1erqwefqwrf  回復  更多評論
  

# re: 游戲地圖制作——斜角地圖貼圖 2011-08-26 17:29 3lxl3
誤人子弟,趕集改過來。  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲先锋成人| 欧美日韩在线三级| 亚洲三级性片| 午夜亚洲性色福利视频| 亚洲影院免费| 欧美有码视频| 欧美一区二区免费视频| 亚洲一区二区三区在线| 午夜精品久久99蜜桃的功能介绍| 欧美一区二区在线看| 久久看片网站| 免费欧美电影| 99成人精品| 欧美性猛交视频| 亚洲欧美国产日韩天堂区| 亚洲免费高清| 欧美诱惑福利视频| 欧美mv日韩mv国产网站app| 欧美日韩国产系列| 国产偷国产偷亚洲高清97cao| 国产自产女人91一区在线观看| 在线观看视频一区二区欧美日韩| 亚洲裸体在线观看| 欧美一区午夜视频在线观看| 免费中文字幕日韩欧美| 一区二区高清视频在线观看| 欧美在线欧美在线| 欧美日韩性生活视频| 激情综合在线| 亚洲专区一二三| 欧美激情亚洲精品| 亚洲欧美日韩国产综合精品二区| 麻豆精品视频在线观看| 国产女主播一区二区三区| 亚洲精选在线观看| 久久亚洲影音av资源网| 一本久久综合亚洲鲁鲁| 免费看av成人| 国产综合亚洲精品一区二| 这里只有精品电影| 欧美激情成人在线视频| 欧美一区二区播放| 国产精品嫩草影院一区二区| 亚洲精品欧美精品| 久热精品视频在线观看| 亚洲欧美久久| 欧美吻胸吃奶大尺度电影| 亚洲精品中文字幕在线| 久久久久国色av免费观看性色| 亚洲人人精品| 欧美黑人多人双交| 亚洲国产专区| 欧美1区2区3区| 久久成人国产精品| 国产综合网站| 牛夜精品久久久久久久99黑人| 亚欧美中日韩视频| 国产一区二区三区在线观看网站 | 久久久久久久一区二区| 国产精品稀缺呦系列在线| 一本大道av伊人久久综合| 欧美成人自拍视频| 免费成人你懂的| 91久久国产自产拍夜夜嗨| 免费观看亚洲视频大全| 久久免费偷拍视频| 亚洲国产美女久久久久| 欧美国产综合一区二区| 免费影视亚洲| 一本到高清视频免费精品| 欧美在线电影| 久久av资源网站| 国产自产精品| 女人香蕉久久**毛片精品| 久久亚洲综合色一区二区三区| 红杏aⅴ成人免费视频| 美女图片一区二区| 欧美高清不卡| 中文av字幕一区| 亚洲一区二区三区精品视频 | 在线精品国产成人综合| 巨胸喷奶水www久久久免费动漫| 久久手机免费观看| 亚洲最新视频在线| 午夜精品婷婷| 亚洲人成网站影音先锋播放| 亚洲每日更新| 国内精品久久久| 亚洲人成啪啪网站| 国产精品综合不卡av| 久热精品在线视频| 欧美日韩亚洲另类| 久久久免费精品| 欧美日韩福利视频| 西西人体一区二区| 久久伊人亚洲| 亚洲主播在线| 欧美福利电影网| 欧美伊人久久| 欧美欧美在线| 久久久久久国产精品mv| 欧美成人性网| 午夜精品福利视频| 欧美福利视频一区| 香蕉久久夜色| 欧美成年网站| 久久久国产精彩视频美女艺术照福利 | 9久re热视频在线精品| 国产一区二区三区电影在线观看| 亚洲高清免费| 国产在线欧美日韩| 夜夜精品视频| 亚洲精品国产精品国自产观看浪潮| 在线亚洲精品福利网址导航| 在线观看欧美一区| 亚洲主播在线| 一片黄亚洲嫩模| 久久嫩草精品久久久精品一| 亚洲欧美一区二区三区久久| 欧美成人免费视频| 久久久国产亚洲精品| 国产精品视频导航| 亚洲美女精品久久| 91久久精品国产91性色| 久久精品国产99精品国产亚洲性色| 亚洲午夜在线视频| 女生裸体视频一区二区三区| 久久久久久久综合狠狠综合| 国产精品成人一区二区| 亚洲激情视频网| 亚洲精品五月天| 久热精品视频在线观看一区| 久久视频精品在线| 久久尤物电影视频在线观看| 国产精品一区二区久久| 亚洲视频第一页| 亚洲欧美一区二区在线观看| 欧美亚洲不卡| 99精品久久| 亚洲欧美中日韩| 国产午夜一区二区三区| 亚洲在线成人精品| 欧美在线首页| 狠狠综合久久| 老巨人导航500精品| 久久久久一区| 亚洲高清在线观看| 欧美国产精品va在线观看| 亚洲欧洲美洲综合色网| 在线视频一区观看| 国产精品第一区| 亚洲欧美一区二区在线观看| 久久精品女人| 亚洲国产视频一区| 欧美日韩免费高清| 亚洲一区二区三区精品在线| 久久国产精品99久久久久久老狼| 国产专区欧美专区| 蜜桃av一区二区三区| 亚洲毛片在线| 久久中文字幕导航| 一区二区不卡在线视频 午夜欧美不卡'| 欧美日韩亚洲不卡| 性做久久久久久免费观看欧美| 美腿丝袜亚洲色图| 99国产精品私拍| 国产偷国产偷亚洲高清97cao| 久久久久久9| 91久久在线播放| 欧美专区在线观看一区| 亚洲精品免费电影| 国产欧美亚洲视频| 欧美成人精品| 亚洲欧洲av一区二区| 亚洲国产精品成人一区二区| 午夜精品一区二区三区电影天堂 | 欧美成人精品三级在线观看| 99热免费精品| 蜜桃av一区二区| 亚洲综合国产精品| 国内精品久久久| 国产精品视频第一区| 免费不卡在线观看| 午夜精品美女久久久久av福利| 亚洲国产精品久久| 久久午夜精品| 欧美在线综合| 亚洲一区二区三区免费在线观看| 国内一区二区在线视频观看| 欧美性做爰毛片| 欧美日本成人| 久久综合久久综合久久综合| 亚洲免费视频在线观看| 亚洲国产婷婷综合在线精品| 久久婷婷综合激情| 欧美伊久线香蕉线新在线| 亚洲婷婷国产精品电影人久久| 亚洲精品久久久久久久久| 影音先锋亚洲视频| 久久一综合视频|