⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grid.cpp

📁 这是symbian s60下的俄罗斯方块的源代码。对开发symbian游戏的可以参考参考。
💻 CPP
字号:
#include "grid.h"
#include "s60test.pan"

TGrid::TGrid()
{
  Clear();
}

void TGrid::Clear()
{
  for (int i=0; i<KGridY; i++)
  {
    iMask[i]=0x003f;
    for (int j=0; j<KGridX; j++)
      iContent[i][j]=0;
  }
}

bool TGrid::DoesCollide(const TBlock &b, const TPoint &p) const
{
  int i;
  for (i=p.iY; i<p.iY+4; i++)
  {
    if (i<0)
    {
      if ((static_cast<TUint32>(b.RowMask(i-p.iY))<<(12-p.iX))&0xf003f)
        return true;
    } else
    if (i>=KGridY)
    {
      if (b.RowMask(i-p.iY)) return true;
    } else
    {
      if (iMask[i]&(b.RowMask(i-p.iY)<<(12-p.iX))) return true;
      if (p.iX<0 && ((b.RowMask(i-p.iY)>>(4+p.iX)))) return true;
    }
  }
  return false;
}

void TGrid::PutBlock(const TBlock &b, const TPoint &p)
{
  int i, j;
  int c=b.Color();
  for (i=p.iY; i<p.iY+4; i++)
  {
    if (i<0) continue;
    if (i>=KGridY) break;
    TUint16 mask=b.RowMask(i-p.iY);
    iMask[i]|=mask<<(12-p.iX);
    for (j=p.iX; j<p.iX+4; j++)
      if (mask&(1<<(3-j+p.iX)))
        iContent[i][j]=c;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -