亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tile.cpp

?? 3D游戲引擎 Programming Role-Playing Games with DirectX, 2nd Edition by Jim Adams
?? CPP
字號:
#include "Core_Global.h"
#include "Tile.h"

cTiles::cTiles()
{
  m_Graphics = NULL;
  m_NumTextures = 0;
  m_Textures = NULL;
  m_Widths = m_Heights = m_Columns = 0;
}

cTiles::~cTiles()
{
  Free();
}

BOOL cTiles::Create(cGraphics *Graphics, long NumTextures)
{
  // Free in case of existing data
  Free();

  // Error checking
  if((m_Graphics = Graphics) == NULL)
    return FALSE;
  if((m_NumTextures = NumTextures) == NULL)
    return FALSE;

  // Allocate texture objects
  if((m_Textures = new cTexture[m_NumTextures]) == NULL)
    return FALSE;

  // Allocate width, height, and column count arrays
  m_Widths  = new long[m_NumTextures];
  m_Heights = new long[m_NumTextures];
  m_Columns = new long[m_NumTextures];

  return TRUE;
}

BOOL cTiles::Free()
{
  short i;

  m_Graphics = NULL;

  // Free all textures
  if(m_NumTextures) {
    for(i=0;i<m_NumTextures;i++)
      m_Textures[i].Free();
  }
  delete [] m_Textures;
  m_Textures = NULL;

  // Free width, height, and column arrays
  delete [] m_Widths;
  delete [] m_Heights;
  delete [] m_Columns;
  m_Widths = m_Heights = m_Columns = NULL;
  m_NumTextures = 0;

  return TRUE;
}

BOOL cTiles::Load(long TextureNum, char *Filename,
          short TileWidth, short TileHeight,
          D3DCOLOR Transparent, D3DFORMAT Format)
{
  // Error checking
  if(TextureNum >= m_NumTextures || m_Textures == NULL)
    return FALSE;

  Free(TextureNum);

  // Load the texture
  if(m_Textures[TextureNum].Load(m_Graphics, Filename, Transparent, Format) == FALSE)
    return FALSE;

  // Store height value (get width of texture if
  // no TileWidth was specified).
  if(!TileWidth)
    m_Widths[TextureNum] = m_Textures[TextureNum].GetWidth();
  else
    m_Widths[TextureNum] = TileWidth;

  // Store height value (get height of texture if
  // no TileHeight was specified).
  if(!TileHeight)
    m_Heights[TextureNum] = m_Textures[TextureNum].GetHeight();
  else
    m_Heights[TextureNum] = TileHeight;

  // Calculate how many columns of tiles there are
  // in the texture. This is used to speed up calculations
  // when drawing tiles.
  m_Columns[TextureNum] = m_Textures[TextureNum].GetWidth() / m_Widths[TextureNum];

  return TRUE;
}

BOOL cTiles::Free(long TextureNum)
{
  // Error checking
  if(TextureNum >= m_NumTextures || m_Textures == NULL)
    return FALSE;

  // Free a single texture resource
  m_Textures[TextureNum].Free();

  return TRUE;
}

long cTiles::GetWidth(long TextureNum)
{
  // Error checking
  if(TextureNum >= m_NumTextures || m_Widths == NULL)
   return 0;

  return m_Widths[TextureNum];
}

long cTiles::GetHeight(long TextureNum)
{
  // Error checking
  if(TextureNum >= m_NumTextures || m_Heights == NULL)
   return 0;

  return m_Heights[TextureNum];
}

long cTiles::GetNum(long TextureNum)
{
  // Error checking
  if(TextureNum >= m_NumTextures || m_Textures == NULL ||
     m_Columns == NULL || m_Widths == NULL || m_Heights == NULL)
   return 0;

  return m_Columns[TextureNum] + m_Textures[TextureNum].GetHeight() / m_Heights[TextureNum];
}

BOOL cTiles::SetTransparent(BOOL Enabled)
{
  // Error checking
  if(m_Graphics == NULL)
    return FALSE;
  return m_Graphics->EnableAlphaTesting(Enabled);
}

BOOL cTiles::Draw(long TextureNum, long TileNum,
          long ScreenX, long ScreenY,
          D3DCOLOR Color, float XScale, float YScale)
{
  long SrcX, SrcY;

  // Error checking
  if(m_Graphics == NULL)
    return FALSE;
  if(TextureNum >= m_NumTextures || m_Textures == NULL)
    return FALSE;

  // Calculate the source tile coordinates from texture
  SrcX = (TileNum % m_Columns[TextureNum]) * m_Widths[TextureNum];
  SrcY = (TileNum / m_Columns[TextureNum]) * m_Heights[TextureNum];

  return m_Textures[TextureNum].Blit(ScreenX, ScreenY,
                 SrcX, SrcY,
                 m_Widths[TextureNum], m_Heights[TextureNum],
                 XScale, YScale);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品欧美精品| 这里只有精品99re| 欧美国产成人精品| 91精品国产综合久久蜜臀| 99在线精品观看| 亚洲高清免费观看高清完整版在线观看 | 亚洲国产精品成人久久综合一区| 欧美日韩一区二区三区在线看| 成人黄色777网| 国产精品资源在线观看| 日韩**一区毛片| 日韩精品一级中文字幕精品视频免费观看 | 国产一区二区三区美女| 视频在线在亚洲| 亚洲成人黄色小说| 亚洲一区二区三区四区在线| 国产精品久线在线观看| 国产欧美精品一区| 久久九九久久九九| 国产午夜精品美女毛片视频| 日韩一区二区在线免费观看| 欧美丰满少妇xxxxx高潮对白 | 国产女人18水真多18精品一级做| 欧美一区二区女人| 7777精品伊人久久久大香线蕉超级流畅 | 2023国产精品| 欧美国产成人精品| 亚洲国产精品久久不卡毛片| 日本v片在线高清不卡在线观看| 麻豆精品久久精品色综合| 国产一区二区在线观看免费| 成人福利视频网站| 欧美精品日韩综合在线| 久久精品在线观看| 亚洲国产精品久久不卡毛片| 久久成人免费网| 91麻豆免费视频| 日韩欧美区一区二| 亚洲欧洲成人精品av97| 秋霞av亚洲一区二区三| 不卡视频一二三| 日韩精品一区二区三区在线播放| 中文字幕一区二区三区四区不卡| 午夜成人免费电影| 91香蕉视频污| 国产三级三级三级精品8ⅰ区| 亚洲专区一二三| 成人在线视频一区| 欧美mv日韩mv国产网站app| 亚洲欧美在线aaa| 国产福利一区二区三区视频 | 国产亚洲精品免费| 亚洲一区二区成人在线观看| 国内精品国产成人| 国产欧美一区视频| 秋霞电影一区二区| 欧美日韩精品一区二区| 日本一区二区三区四区| 国产一区二区不卡| 日韩欧美一区二区三区在线| 亚洲成av人片一区二区三区| 99久久精品免费精品国产| 久久精品一区八戒影视| 捆绑调教一区二区三区| 欧美日韩国产高清一区二区 | 欧美性受xxxx黑人xyx性爽| 国产精品久久久久aaaa樱花 | 亚洲天堂福利av| 成人黄色在线视频| 欧美激情自拍偷拍| 国产馆精品极品| 国产日韩精品一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 精品伦理精品一区| 久久精品国产亚洲高清剧情介绍| 5月丁香婷婷综合| 日韩avvvv在线播放| 欧美久久久久久久久久| 视频在线观看国产精品| 欧美一区二区三区白人| 久久精品免费观看| 久久综合九色综合97婷婷女人| 精品在线播放免费| 久久一区二区视频| 成人开心网精品视频| 亚洲欧洲成人自拍| 欧美性受极品xxxx喷水| 日韩中文字幕麻豆| 久久综合九色综合97婷婷女人 | 国产精品自拍一区| 国产精品视频你懂的| 91一区二区三区在线观看| 亚洲欧美电影院| 欧美日韩国产首页在线观看| 另类小说一区二区三区| 久久精品在线观看| 91国偷自产一区二区使用方法| 午夜天堂影视香蕉久久| 精品国精品自拍自在线| 成人一区二区三区视频在线观看| 亚洲欧美在线视频| 欧美伦理电影网| 国产精品一区三区| 亚洲美女精品一区| 欧美一级在线视频| 成人午夜视频网站| 午夜精品视频在线观看| 精品美女一区二区| 91在线视频免费观看| 日韩福利电影在线| 国产精品乱码久久久久久| 在线免费观看成人短视频| 蜜桃视频免费观看一区| 中文字幕一区二区日韩精品绯色| 欧美日韩一级二级| 粉嫩欧美一区二区三区高清影视| 亚洲成人免费看| 中文一区在线播放| 欧美电影一区二区三区| caoporn国产一区二区| 日精品一区二区三区| 免费成人结看片| 亚洲桃色在线一区| 26uuu久久综合| 欧美日本免费一区二区三区| 国产精品亚洲а∨天堂免在线| 亚洲第一成人在线| 国产精品毛片高清在线完整版| 91精品国产综合久久福利软件| eeuss影院一区二区三区| 激情成人综合网| 图片区小说区区亚洲影院| 亚洲人被黑人高潮完整版| 久久一留热品黄| 日韩精品影音先锋| 欧美日韩国产系列| 欧美午夜不卡视频| 色综合久久久久网| caoporn国产一区二区| 国产乱子伦一区二区三区国色天香| 亚洲第一主播视频| 亚洲高清一区二区三区| 亚洲免费在线观看| 国产精品剧情在线亚洲| 国产欧美一区二区三区在线老狼 | 久久综合九色综合久久久精品综合| 欧美日韩在线综合| 在线一区二区三区四区五区| 91亚洲男人天堂| 99久久伊人久久99| 99久久伊人精品| 一本一道综合狠狠老| 91在线国产观看| 日韩欧美国产电影| 日韩午夜精品电影| 精品裸体舞一区二区三区| 日韩欧美一级片| 久久综合一区二区| 久久久国产午夜精品| 久久精品人人做人人爽人人| 日本一区二区免费在线| 国产精品色婷婷久久58| 亚洲欧洲日本在线| 亚洲影院免费观看| 日本网站在线观看一区二区三区| 日本特黄久久久高潮| 国产在线精品一区在线观看麻豆| 国产在线视频精品一区| 成人国产免费视频| 色狠狠一区二区三区香蕉| 欧美日韩一区在线| 欧美一级精品在线| 国产亚洲成av人在线观看导航| 中文字幕高清一区| 一区2区3区在线看| 免费看欧美美女黄的网站| 国产一区二区91| 欧亚洲嫩模精品一区三区| 欧美一区二区视频在线观看| 久久综合九色综合97_久久久| 国产精品伦一区| 日日夜夜精品免费视频| 国产美女视频91| 色哟哟国产精品免费观看| 在线不卡欧美精品一区二区三区| 日韩精品一区二区在线观看| 国产精品毛片大码女人| 亚洲成av人影院| 成人免费三级在线| 欧美日韩高清一区二区不卡 | 欧美成人aa大片| 中文字幕日韩av资源站| 日韩精品欧美成人高清一区二区| 国产成人精品综合在线观看| 日本精品一级二级| 久久久久久久久久久99999| 亚洲1区2区3区4区| 成人午夜电影小说| 欧美一级高清片| 亚洲免费观看在线观看|